indentation
[oweals/gnunet.git] / src / include / gnunet_mesh_service.h
index 0c90f2105ebd523ed3a5330aa1a34b4b360369dc..507b766d12cc444ea7da0b5d7a314127764df3cf 100644 (file)
@@ -67,13 +67,16 @@ struct GNUNET_MESH_Tunnel;
  * @return GNUNET_OK to keep the connection open,
  *         GNUNET_SYSERR to close it (signal serious error)
  */
-typedef int
-  (*GNUNET_MESH_MessageCallback) (void *cls,
-                                  struct GNUNET_MESH_Tunnel *tunnel,
-                                 void **tunnel_ctx,
-                                 const struct GNUNET_PeerIdentity *sender,
-                                  const struct GNUNET_MessageHeader *message,
-                                 const struct GNUNET_TRANSPORT_ATS_Information *atsi);
+typedef int (*GNUNET_MESH_MessageCallback) (void *cls,
+                                            struct GNUNET_MESH_Tunnel * tunnel,
+                                            void **tunnel_ctx,
+                                            const struct GNUNET_PeerIdentity *
+                                            sender,
+                                            const struct GNUNET_MessageHeader *
+                                            message,
+                                            const struct
+                                            GNUNET_TRANSPORT_ATS_Information *
+                                            atsi);
 
 
 /**
@@ -110,9 +113,9 @@ struct GNUNET_MESH_MessageHandler
  * @param tunnel connection to the other end (henceforth invalid)
  * @param tunnel_ctx place where local state associated with the tunnel is stored
  */
-typedef void (GNUNET_MESH_TunnelEndHandler)(void *cls,
-                                           const struct GNUNET_MESH_Tunnel *tunnel,
-                                           void **tunnel_ctx);
+typedef void (GNUNET_MESH_TunnelEndHandler) (void *cls,
+                                             const struct GNUNET_MESH_Tunnel *
+                                             tunnel, void **tunnel_ctx);
 
 
 /**
@@ -131,15 +134,21 @@ typedef uint32_t GNUNET_MESH_ApplicationType;
  *                note that the mesh is allowed to drop notifications about inbound
  *                messages if the client does not process them fast enough (for this
  *                notification type, a bounded queue is used)
+ * @param stypes Application Types the client claims to offer
  * @return handle to the mesh service 
  *           NULL on error (in this case, init is never called)
  */
-struct GNUNET_MESH_Handle *
-GNUNET_MESH_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
-                     void *cls,
-                    GNUNET_MESH_TunnelEndHandler cleaner,
-                     const struct GNUNET_MESH_MessageHandler *handlers, 
-                    const GNUNET_MESH_ServiceType *stypes);
+struct GNUNET_MESH_Handle *GNUNET_MESH_connect (const struct
+                                                GNUNET_CONFIGURATION_Handle
+                                                *cfg, void *cls,
+                                                GNUNET_MESH_TunnelEndHandler
+                                                cleaner,
+                                                const struct
+                                                GNUNET_MESH_MessageHandler
+                                                *handlers,
+                                                const
+                                                GNUNET_MESH_ApplicationType
+                                                *stypes);
 
 /**
  * Get the peer on the other side of this tunnel if it is just one. Return NULL otherwise
@@ -147,8 +156,9 @@ GNUNET_MESH_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
  * @param tunnel the tunnel
  * @return the peer or NULL
  */
-const struct GNUNET_PeerIdentity*
-GNUNET_MESH_get_peer(const struct GNUNET_MESH_Tunnel* tunnel);
+const struct GNUNET_PeerIdentity *GNUNET_MESH_get_peer (const struct
+                                                        GNUNET_MESH_Tunnel
+                                                        *tunnel);
 
 
 /**
@@ -169,7 +179,9 @@ void GNUNET_MESH_disconnect (struct GNUNET_MESH_Handle *handle);
  * @param peer peer identity the tunnel stopped working with
  */
 typedef void (*GNUNET_MESH_TunnelDisconnectHandler) (void *cls,
-                                                    const struct GNUNET_PeerIdentity *peer);
+                                                     const struct
+                                                     GNUNET_PeerIdentity *
+                                                     peer);
 
 
 /**
@@ -180,8 +192,11 @@ typedef void (*GNUNET_MESH_TunnelDisconnectHandler) (void *cls,
  * @param atsi performance data for the connection
  */
 typedef void (*GNUNET_MESH_TunnelConnectHandler) (void *cls,
-                                                 const struct GNUNET_PeerIdentity *peer,
-                                                 const struct GNUNET_TRANSPORT_ATS_Information *atsi);
+                                                  const struct
+                                                  GNUNET_PeerIdentity * peer,
+                                                  const struct
+                                                  GNUNET_TRANSPORT_ATS_Information
+                                                  * atsi);
 
 
 
@@ -205,14 +220,23 @@ struct GNUNET_MESH_PeerRequestHandle;
  * @param handler_cls closure for handler
  * @return NULL on error (handler will not be called), otherwise handle for cancellation
  */
-struct GNUNET_MESH_Tunnel *
-GNUNET_MESH_peer_request_connect_any (struct GNUNET_MESH_Handle *h,
-                                     struct GNUNET_TIME_Relative timeout,
-                                     unsigned int num_peers,
-                                     const struct GNUNET_PeerIdentity *peers,
-                                     GNUNET_MESH_TunnelConnectHandler connect_handler,
-                                     GNUNET_MESH_TunnelDisconnectHandler disconnect_handler,
-                                     void *handler_cls);
+struct GNUNET_MESH_Tunnel *GNUNET_MESH_peer_request_connect_any (struct
+                                                                 GNUNET_MESH_Handle
+                                                                 *h,
+                                                                 struct
+                                                                 GNUNET_TIME_Relative
+                                                                 timeout,
+                                                                 unsigned int
+                                                                 num_peers,
+                                                                 const struct
+                                                                 GNUNET_PeerIdentity
+                                                                 *peers,
+                                                                 GNUNET_MESH_TunnelConnectHandler
+                                                                 connect_handler,
+                                                                 GNUNET_MESH_TunnelDisconnectHandler
+                                                                 disconnect_handler,
+                                                                 void
+                                                                 *handler_cls);
 
 
 /**
@@ -232,14 +256,23 @@ GNUNET_MESH_peer_request_connect_any (struct GNUNET_MESH_Handle *h,
  * @param handler_cls closure for handler
  * @return NULL on error (handler will not be called), otherwise handle for cancellation
  */
-struct GNUNET_MESH_Tunnel *
-GNUNET_MESH_peer_request_connect_all (struct GNUNET_MESH_Handle *h,
-                                     struct GNUNET_TIME_Relative timeout,
-                                     unsigned int num_peers,
-                                     const struct GNUNET_PeerIdentity *peers,
-                                     GNUNET_MESH_TunnelConnectHandler connect_handler,
-                                     GNUNET_MESH_TunnelDisconnectHandler disconnect_handler,
-                                     void *handler_cls);
+struct GNUNET_MESH_Tunnel *GNUNET_MESH_peer_request_connect_all (struct
+                                                                 GNUNET_MESH_Handle
+                                                                 *h,
+                                                                 struct
+                                                                 GNUNET_TIME_Relative
+                                                                 timeout,
+                                                                 unsigned int
+                                                                 num_peers,
+                                                                 const struct
+                                                                 GNUNET_PeerIdentity
+                                                                 *peers,
+                                                                 GNUNET_MESH_TunnelConnectHandler
+                                                                 connect_handler,
+                                                                 GNUNET_MESH_TunnelDisconnectHandler
+                                                                 disconnect_handler,
+                                                                 void
+                                                                 *handler_cls);
 
 
 /**
@@ -250,10 +283,10 @@ GNUNET_MESH_peer_request_connect_all (struct GNUNET_MESH_Handle *h,
  * @param timeout how long to try to establish a connection
  * @param peer peer to add
  */
-void
-GNUNET_MESH_peer_request_connect_add (struct GNUNET_MESH_Tunnel *tunnel,
-                                     struct GNUNET_TIME_Relative timeout,
-                                     const struct GNUNET_PeerIdentity *peer);
+void GNUNET_MESH_peer_request_connect_add (struct GNUNET_MESH_Tunnel *tunnel,
+                                           struct GNUNET_TIME_Relative timeout,
+                                           const struct GNUNET_PeerIdentity
+                                           *peer);
 
 
 /**
@@ -263,9 +296,9 @@ GNUNET_MESH_peer_request_connect_add (struct GNUNET_MESH_Tunnel *tunnel,
  * @param tunnel handle to existing tunnel
  * @param peer peer to remove
  */
-void
-GNUNET_MESH_peer_request_connect_del (struct GNUNET_MESH_Tunnel *tunnel,
-                                     const struct GNUNET_PeerIdentity *peer);
+void GNUNET_MESH_peer_request_connect_del (struct GNUNET_MESH_Tunnel *tunnel,
+                                           const struct GNUNET_PeerIdentity
+                                           *peer);
 
 
 /**
@@ -285,13 +318,20 @@ GNUNET_MESH_peer_request_connect_del (struct GNUNET_MESH_Tunnel *tunnel,
  * @param handler_cls closure for handler
  * @return NULL on error (handler will not be called), otherwise handle for cancellation
  */
-struct GNUNET_MESH_Tunnel *
-GNUNET_MESH_peer_request_connect_by_type (struct GNUNET_MESH_Handle *h,
-                                         struct GNUNET_TIME_Relative timeout,
-                                         GNUNET_MESH_ApplicationType app_type,
-                                         GNUNET_MESH_TunnelConnectHandler connect_handler,
-                                         GNUNET_MESH_TunnelDisconnectHandler disconnect_handler,
-                                         void *handler_cls);
+struct GNUNET_MESH_Tunnel *GNUNET_MESH_peer_request_connect_by_type (struct
+                                                                     GNUNET_MESH_Handle
+                                                                     *h,
+                                                                     struct
+                                                                     GNUNET_TIME_Relative
+                                                                     timeout,
+                                                                     GNUNET_MESH_ApplicationType
+                                                                     app_type,
+                                                                     GNUNET_MESH_TunnelConnectHandler
+                                                                     connect_handler,
+                                                                     GNUNET_MESH_TunnelDisconnectHandler
+                                                                     disconnect_handler,
+                                                                     void
+                                                                     *handler_cls);
 
 
 /**
@@ -300,8 +340,7 @@ GNUNET_MESH_peer_request_connect_by_type (struct GNUNET_MESH_Handle *h,
  *
  * @param req request handle that was returned for the original request
  */
-void
-GNUNET_MESH_peer_request_connect_cancel (struct GNUNET_MESH_Tunnel *req);
+void GNUNET_MESH_peer_request_connect_cancel (struct GNUNET_MESH_Tunnel *req);
 
 
 /**
@@ -331,22 +370,25 @@ struct GNUNET_MESH_TransmitHandle;
  *         NULL if we can not even queue the request (insufficient
  *         memory); if NULL is returned, "notify" will NOT be called.
  */
-struct GNUNET_MESH_TransmitHandle *
-GNUNET_MESH_notify_transmit_ready (struct
-                                  GNUNET_MESH_Tunnel
-                                  *tunnel,
-                                  int cork,
-                                  uint32_t priority,
-                                  struct
-                                  GNUNET_TIME_Relative
-                                  maxdelay,
-                                  const struct GNUNET_PeerIdentity *target,
-                                  size_t
-                                  notify_size,
-                                  GNUNET_CONNECTION_TransmitReadyNotify
-                                  notify,
-                                  void
-                                  *notify_cls);
+struct GNUNET_MESH_TransmitHandle *GNUNET_MESH_notify_transmit_ready (struct
+                                                                      GNUNET_MESH_Tunnel
+                                                                      *tunnel,
+                                                                      int cork,
+                                                                      uint32_t
+                                                                      priority,
+                                                                      struct
+                                                                      GNUNET_TIME_Relative
+                                                                      maxdelay,
+                                                                      const
+                                                                      struct
+                                                                      GNUNET_PeerIdentity
+                                                                      *target,
+                                                                      size_t
+                                                                      notify_size,
+                                                                      GNUNET_CONNECTION_TransmitReadyNotify
+                                                                      notify,
+                                                                      void
+                                                                      *notify_cls);
 
 
 /**
@@ -354,10 +396,19 @@ GNUNET_MESH_notify_transmit_ready (struct
  *
  * @param th handle that was returned by "notify_transmit_ready".
  */
-void
-GNUNET_MESH_notify_transmit_ready_cancel (struct GNUNET_MESH_TransmitHandle
-                                          *th);
-
+void GNUNET_MESH_notify_transmit_ready_cancel (struct GNUNET_MESH_TransmitHandle
+                                               *th);
+
+void GNUNET_MESH_tunnel_set_head (struct GNUNET_MESH_Tunnel *tunnel,
+                                  void *head);
+void GNUNET_MESH_tunnel_set_tail (struct GNUNET_MESH_Tunnel *tunnel,
+                                  void *tail);
+void *GNUNET_MESH_tunnel_get_head (struct GNUNET_MESH_Tunnel *tunnel);
+void *GNUNET_MESH_tunnel_get_tail (struct GNUNET_MESH_Tunnel *tunnel);
+
+void GNUNET_MESH_tunnel_set_data (struct GNUNET_MESH_Tunnel *tunnel,
+                                  void *data);
+void *GNUNET_MESH_tunnel_get_data (struct GNUNET_MESH_Tunnel *tunnel);
 
 #if 0                           /* keep Emacsens' auto-indent happy */
 {