uncrustify as demanded.
[oweals/gnunet.git] / src / core / gnunet-service-core_sessions.h
index 034026bb88fa9218007421d01094f56b49826362..ba0f0a0db64c0800f167ecfbda48c165b2b2cf0a 100644 (file)
@@ -1,22 +1,22 @@
 /*
      This file is part of GNUnet.
-     (C) 2009-2014 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009-2014 GNUnet e.V.
 
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
+     Affero General Public License for more details.
 
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
+     You should have received a copy of the GNU Affero General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
+ */
 
 /**
  * @file core/gnunet-service-core_neighbours.h
  * @param kx key exchange that completed
  */
 void
-GSC_SESSIONS_create (const struct GNUNET_PeerIdentity *peer,
-                     struct GSC_KeyExchangeInfo *kx);
+GSC_SESSIONS_create(const struct GNUNET_PeerIdentity *peer,
+                    struct GSC_KeyExchangeInfo *kx);
+
+
+/**
+ * The other peer has indicated that it 'lost' the session
+ * (KX down), reinitialize the session on our end, in particular
+ * this means to restart the typemap transmission.
+ *
+ * @param peer peer that is now connected
+ */
+void
+GSC_SESSIONS_reinit(const struct GNUNET_PeerIdentity *peer);
+
+
+/**
+ * The other peer has confirmed receiving our type map,
+ * check if it is current and if so, stop retransmitting it.
+ *
+ * @param peer peer that confirmed the type map
+ * @param msg confirmation message we received
+ */
+void
+GSC_SESSIONS_confirm_typemap(const struct GNUNET_PeerIdentity *peer,
+                             const struct GNUNET_MessageHeader *msg);
 
 
 /**
@@ -48,7 +71,7 @@ GSC_SESSIONS_create (const struct GNUNET_PeerIdentity *peer,
  * @param pid identity of peer to kill session with
  */
 void
-GSC_SESSIONS_end (const struct GNUNET_PeerIdentity *pid);
+GSC_SESSIONS_end(const struct GNUNET_PeerIdentity *pid);
 
 
 /**
@@ -59,7 +82,7 @@ GSC_SESSIONS_end (const struct GNUNET_PeerIdentity *pid);
  * @param pid identity of peer ready to receive data
  */
 void
-GSC_SESSIONS_solicit (const struct GNUNET_PeerIdentity *pid);
+GSC_SESSIONS_solicit(const struct GNUNET_PeerIdentity *pid);
 
 
 /**
@@ -72,7 +95,7 @@ GSC_SESSIONS_solicit (const struct GNUNET_PeerIdentity *pid);
  *         have been invoked on it
  */
 void
-GSC_SESSIONS_queue_request (struct GSC_ClientActiveRequest *car);
+GSC_SESSIONS_queue_request(struct GSC_ClientActiveRequest *car);
 
 
 /**
@@ -82,7 +105,7 @@ GSC_SESSIONS_queue_request (struct GSC_ClientActiveRequest *car);
  *        the caller (CLIENTS sysbsystem)
  */
 void
-GSC_SESSIONS_dequeue_request (struct GSC_ClientActiveRequest *car);
+GSC_SESSIONS_dequeue_request(struct GSC_ClientActiveRequest *car);
 
 
 /**
@@ -91,23 +114,22 @@ GSC_SESSIONS_dequeue_request (struct GSC_ClientActiveRequest *car);
  * @param car original request that was queued and then solicited,
  *            ownership does not change (dequeue will be called soon).
  * @param msg message to transmit
- * @param cork is corking allowed?
  * @param priority how important is this message
  */
 void
-GSC_SESSIONS_transmit (struct GSC_ClientActiveRequest *car,
-                       const struct GNUNET_MessageHeader *msg,
-                       int cork,
-                       enum GNUNET_CORE_Priority priority);
+GSC_SESSIONS_transmit(struct GSC_ClientActiveRequest *car,
+                      const struct GNUNET_MessageHeader *msg,
+                      enum GNUNET_MQ_PriorityPreferences priority);
 
 
 /**
- * Broadcast a message to all neighbours.
+ * Broadcast an updated typemap message to all neighbours.
+ * Restarts the retransmissions until the typemaps are confirmed.
  *
  * @param msg message to transmit
  */
 void
-GSC_SESSIONS_broadcast (const struct GNUNET_MessageHeader *msg);
+GSC_SESSIONS_broadcast_typemap(const struct GNUNET_MessageHeader *msg);
 
 
 /**
@@ -116,7 +138,8 @@ GSC_SESSIONS_broadcast (const struct GNUNET_MessageHeader *msg);
  * @param client the new client
  */
 void
-GSC_SESSIONS_notify_client_about_sessions (struct GSC_Client *client);
+GSC_SESSIONS_notify_client_about_sessions(struct GSC_Client *client);
+
 
 /**
  * We've received a typemap message from a peer, update ours.
@@ -126,8 +149,8 @@ GSC_SESSIONS_notify_client_about_sessions (struct GSC_Client *client);
  * @param msg typemap update message
  */
 void
-GSC_SESSIONS_set_typemap (const struct GNUNET_PeerIdentity *peer,
-                          const struct GNUNET_MessageHeader *msg);
+GSC_SESSIONS_set_typemap(const struct GNUNET_PeerIdentity *peer,
+                         const struct GNUNET_MessageHeader *msg);
 
 
 /**
@@ -139,39 +162,22 @@ GSC_SESSIONS_set_typemap (const struct GNUNET_PeerIdentity *peer,
  * @param type type of the message
  */
 void
-GSC_SESSIONS_add_to_typemap (const struct GNUNET_PeerIdentity *peer,
-                             uint16_t type);
-
-
-/**
- * Handle CORE_ITERATE_PEERS request.  For this request type, the client
- * does not have to have transmitted an INIT request.  All current peers
- * are returned, regardless of which message types they accept.
- *
- * @param cls unused
- * @param client client sending the iteration request
- * @param message iteration request message
- */
-void
-GSC_SESSIONS_handle_client_iterate_peers (void *cls,
-                                          struct GNUNET_SERVER_Client *client,
-                                          const struct GNUNET_MessageHeader
-                                          *message);
+GSC_SESSIONS_add_to_typemap(const struct GNUNET_PeerIdentity *peer,
+                            uint16_t type);
 
 
 /**
  * Initialize sessions subsystem.
  */
 void
-GSC_SESSIONS_init (void);
+GSC_SESSIONS_init(void);
 
 
 /**
  * Shutdown sessions subsystem.
  */
 void
-GSC_SESSIONS_done (void);
-
+GSC_SESSIONS_done(void);
 
 
 #endif