include element type in hash
[oweals/gnunet.git] / src / core / gnunet-service-core_neighbours.h
index 8dad1aafef173032be2038bff82a64532d0441cf..42b4e5fda3fa95e466aa6b58038f22ce1c9a44b9 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009, 2010, 2011 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009-2014 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      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.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
 /**
  * Transmit the given message to the given target.  Note that a
  * non-control messages should only be transmitted after a
- * 'GSC_SESSION_solicit' call was made (that call is always invoked
+ * #GSC_SESSION_solicit() call was made (that call is always invoked
  * when the message queue is empty).  Outbound quotas and memory
- * bounds will then be enfoced (as GSC_SESSION_solicit is only called
- * if sufficient banwdith is available).
- * 
+ * bounds will then be enfoced (as #GSC_SESSION_solicit() is only called
+ * if sufficient bandwidth is available).
+ *
  * @param target peer that should receive the message (must be connected)
  * @param msg message to transmit
  * @param timeout by when should the transmission be done?
  */
 void
-GDS_NEIGHBOURS_transmit (const struct GNUNET_PeerIdentity *target,
-                        const struct GNUNET_MessageHeader *msg,
-                        struct GNUNET_TIME_Relative timeout);
+GSC_NEIGHBOURS_transmit (const struct GNUNET_PeerIdentity *target,
+                         const struct GNUNET_MessageHeader *msg,
+                         struct GNUNET_TIME_Relative timeout);
+
+
+/**
+ * Check if the given neighbour has excess bandwidth available.
+ *
+ * @param target neighbour to check
+ * @return #GNUNET_YES if excess bandwidth is available, #GNUNET_NO if not
+ */
+int
+GSC_NEIGHBOURS_check_excess_bandwidth (const struct GNUNET_PeerIdentity *target);
+
+
+/**
+ * Check how many messages are queued for the given neighbour.
+ *
+ * @param target neighbour to check
+ * @return number of items in the message queue
+ */
+unsigned int
+GSC_NEIGHBOURS_get_queue_size (const struct GNUNET_PeerIdentity *target);
 
 
 /**