gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] branch master updated: revise communicator API


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: revise communicator API
Date: Thu, 18 Oct 2018 16:43:43 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new d66b89ea3 revise communicator API
d66b89ea3 is described below

commit d66b89ea37c9885f3ea8c42a6735b2c805c00618
Author: Christian Grothoff <address@hidden>
AuthorDate: Thu Oct 18 16:43:40 2018 +0200

    revise communicator API
---
 .../gnunet_transport_communication_service.h       | 53 +++++++++++++---------
 1 file changed, 31 insertions(+), 22 deletions(-)

diff --git a/src/include/gnunet_transport_communication_service.h 
b/src/include/gnunet_transport_communication_service.h
index 62822ddc3..94d15af22 100644
--- a/src/include/gnunet_transport_communication_service.h
+++ b/src/include/gnunet_transport_communication_service.h
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     Copyright (C) 2009-2016 GNUnet e.V.
+     Copyright (C) 2009-2018 GNUnet e.V.
 
      GNUnet is free software: you can redistribute it and/or modify it
      under the terms of the GNU Affero General Public License as published
@@ -52,15 +52,21 @@ extern "C"
 /**
  * Function called by the transport service to initialize a
  * message queue given address information about another peer.
+ * If and when the communication channel is established, the
+ * communicator must call #GNUNET_TRANSPORT_communicator_mq_add()
+ * to notify the service that the channel is now up.  It is
+ * the responsibility of the communicator to manage sane
+ * retries and timeouts for any @a peer/@a address combination
+ * provided by the transport service.  Timeouts and retries
+ * do not need to be signalled to the transport service.
  *
  * @param cls closure
  * @param peer identity of the other peer
  * @param address where to send the message, human-readable
  *        communicator-specific format, 0-terminated, UTF-8
- * @return NULL if the provided address is invalid, otherwise an MQ to
- *         send messages to that peer
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR if the provided address is 
invalid
  */
-typedef struct GNUNET_MQ_Handle *
+typedef int
 (*GNUNET_TRANSPORT_CommunicatorMqInit) (void *cls,
                                         const struct GNUNET_PeerIdentity *peer,
                                         const void *address);
@@ -78,7 +84,7 @@ struct GNUNET_TRANSPORT_CommunicatorHandle;
  * @param cfg configuration to use
  * @param name name of the communicator that is connecting
  * @param mtu maximum message size supported by communicator, 0 if
- *            sending is not supported
+ *            sending is not supported, SIZE_MAX for no MTU
  * @param mq_init function to call to initialize a message queue given
  *                the address of another peer, can be NULL if the
  *                communicator only supports receiving messages
@@ -144,6 +150,12 @@ GNUNET_TRANSPORT_communicator_receive (struct 
GNUNET_TRANSPORT_CommunicatorHandl
 
 /* ************************* Discovery *************************** */
 
+/**
+ * Handle returned to identify the internal data structure the transport
+ * API has created to manage a message queue to a particular peer.
+ */
+struct GNUNET_TRANSPORT_QueueHandle;
+
 
 /**
  * Notify transport service that an MQ became available due to an
@@ -155,8 +167,9 @@ GNUNET_TRANSPORT_communicator_receive (struct 
GNUNET_TRANSPORT_CommunicatorHandl
  * @param address address in human-readable format, 0-terminated, UTF-8
  * @param nt which network type does the @a address belong to?
  * @param mq message queue of the @a peer
+ * @return API handle identifying the new MQ
  */
-void
+struct GNUNET_TRANSPORT_QueueHandle *
 GNUNET_TRANSPORT_communicator_mq_add (struct 
GNUNET_TRANSPORT_CommunicatorHandle *handle,
                                       const struct GNUNET_PeerIdentity *peer,
                                       const char *address,
@@ -168,18 +181,17 @@ GNUNET_TRANSPORT_communicator_mq_add (struct 
GNUNET_TRANSPORT_CommunicatorHandle
  * Notify transport service that an MQ became unavailable due to a
  * disconnect or timeout.
  *
- * @param handle connection to transport service
- * @param peer peer with which we can no longer communicate via the given mq
- * @param address address in human-readable format, 0-terminated, UTF-8
- * @param nt which network type does the @a address belong to?
- * @param mq message queue of the @a peer
+ * @param qh handle for the queue that must be invalidated
  */
 void
-GNUNET_TRANSPORT_communicator_mq_remove (struct 
GNUNET_TRANSPORT_CommunicatorHandle *handle,
-                                         const struct GNUNET_PeerIdentity 
*peer,
-                                         const char *address,
-                                         enum GNUNET_ATS_Network_Type nt,
-                                         struct GNUNET_MQ_Handle *mq);
+GNUNET_TRANSPORT_communicator_mq_del (struct GNUNET_TRANSPORT_QueueHandle *qh);
+
+
+/**
+ * Internal representation of an address a communicator is
+ * currently providing for the transport service.
+ */
+struct GNUNET_TRANSPORT_AddressIdentifier;
 
 
 /**
@@ -191,7 +203,7 @@ GNUNET_TRANSPORT_communicator_mq_remove (struct 
GNUNET_TRANSPORT_CommunicatorHan
  * @param nt which network type does the address belong to?
  * @param expiration when does the communicator forsee this address expiring?
  */
-void
+struct GNUNET_TRANSPORT_AddressIdentifier *
 GNUNET_TRANSPORT_communicator_address_add (struct 
GNUNET_TRANSPORT_CommunicatorHandle *handle,
                                            const char *address,
                                            enum GNUNET_ATS_Network_Type nt,
@@ -202,13 +214,10 @@ GNUNET_TRANSPORT_communicator_address_add (struct 
GNUNET_TRANSPORT_CommunicatorH
  * Notify transport service about an address that this communicator
  * no longer provides for this peer.
  *
- * @param handle connection to transport service
- * @param address our former address in human-readable format,
- *        0-terminated, in UTF-8
+ * @param ai address that is no longer provided
  */
 void
-GNUNET_TRANSPORT_communicator_address_remove (struct 
GNUNET_TRANSPORT_CommunicatorHandle *handle,
-                                              const char *address);
+GNUNET_TRANSPORT_communicator_address_remove (struct 
GNUNET_TRANSPORT_AddressIdentifier *ai);
 
 
 #if 0                           /* keep Emacsens' auto-indent happy */

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]