From de952b871bfe79a7f2b79d9ab04dc37933d49bf1 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 7 Feb 2011 21:53:52 +0000 Subject: stuff --- src/fs/gnunet-service-fs_pe.h | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'src/fs/gnunet-service-fs_pe.h') diff --git a/src/fs/gnunet-service-fs_pe.h b/src/fs/gnunet-service-fs_pe.h index 24fbcbb7a..09baebc1a 100644 --- a/src/fs/gnunet-service-fs_pe.h +++ b/src/fs/gnunet-service-fs_pe.h @@ -34,45 +34,54 @@ * * @param cp peer with the entry * @param pr request with the entry - * @param position position of the entry in the cp queue - * @return handle for the new plan entry + * @param weight determines position of the entry in the cp queue, + * lower weights are earlier in the queue */ -struct GSF_PlanEntry * -GSF_plan_entry_create_ (struct GSF_ConnectedPeer *cp, - struct GSF_PendingRequest *pr, - unsigned int position); +void +GSF_plan_add_ (struct GSF_ConnectedPeer *cp, + struct GSF_PendingRequest *pr, + double weight); /** - * Notify the plan about a new peer to use. + * Notify the plan about a peer being no longer available; + * destroy all entries associated with this peer. * * @param cp connected peer */ void -GSF_plan_notify_new_peer_ (struct GSF_ConnectedPeer *cp); +GSF_plan_notify_peer_disconnect_ (struct GSF_ConnectedPeer *cp); /** - * Notify the plan about a peer being no longer available. + * Notify the plan about a request being done; + * destroy all entries associated with this request. * - * @param cp connected peer + * @param pr request that is done */ void -GSF_plan_notify_peer_disconnect_ (struct GSF_ConnectedPeer *cp); - +GSF_plan_notify_request_done_ (struct GSF_PendingRequest *pr); /** - * Get the first plan entry for the given connected peer. - * FIXME... + * Get the lowest-weight entry for the respective peer + * from the plan. Removes the entry from the plan's queue. * - * @param cp connected peer - * @return NULL if there is no request planned for this peer + * @param cp connected peer to query for the next request + * @return NULL if the queue for this peer is empty */ struct GSF_PendingRequest * GSF_plan_get_ (struct GSF_ConnectedPeer *cp); +/** + * Get the size of the request queue for the given peer. + * + * @param cp connected peer to query + * @return number of entries in this peer's request queue + */ +unsigned int +GSF_plan_size_ (struct GSF_ConnectedPeer *cp); #endif /* end of gnunet-service-fs_pe.h */ -- cgit v1.2.3