/*
This file is part of GNUnet.
- (C) 2011 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2011 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
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.
*/
/**
* @file fs/gnunet-service-fs_lc.h
- * @brief API to handle 'connected peers'
+ * @brief API to handle 'local clients'
* @author Christian Grothoff
*/
#ifndef GNUNET_SERVICE_FS_LC_H
/**
* Handle START_SEARCH-message (search request from local client).
+ * Only responsible for creating the request entry itself and setting
+ * up reply callback and cancellation on client disconnect. Does NOT
+ * execute the actual request strategy (planning).
*
- * @param cls closure
* @param client identification of the client
* @param message the actual message
+ * @param prptr where to store the pending request handle for the request
+ * @return GNUNET_YES to start local processing,
+ * GNUNET_NO to not (yet) start local processing,
+ * GNUNET_SYSERR on error
*/
-void
-GSF_local_client_start_search_handler_ (void *cls,
- struct GNUNET_SERVER_Client *client,
- const struct GNUNET_MessageHeader *message);
+int
+GSF_local_client_start_search_handler_ (struct GNUNET_SERVER_Client *client,
+ const struct GNUNET_MessageHeader
+ *message,
+ struct GSF_PendingRequest **prptr);
/**
*/
void
GSF_local_client_transmit_ (struct GSF_LocalClient *lc,
- const struct GNUNET_MessageHeader *msg);
+ const struct GNUNET_MessageHeader *msg);
/**
- * A local client disconnected from us. Tear down the local client
- * record.
+ * A client disconnected from us. Tear down the local client record.
*
* @param cls unused
* @param client handle of the client
*/
void
-GSF_local_client_disconnect_handler_ (void *cls,
- const struct GNUNET_SERVER_Client *client);
-
-
-
-/**
- * Signature of function called on a local client
- *
- * @param cls closure
- * @param lc local client handle
- */
-typedef int (*GSF_LocalClientIterator)(void *cls,
- struct GSF_LocalClient *lc);
-
+GSF_client_disconnect_handler_ (void *cls, struct GNUNET_SERVER_Client *client);
-/**
- * Register callback to invoke on local client disconnect.
- *
- * @param lc client to monitor
- * @param it function to call on disconnect
- * @param it_cls closure for it
- */
-void
-GSF_local_client_register_disconnect_callback_ (struct GSF_LocalClient *lc,
- GSF_LocalClientIterator it,
- void *it_cls);
-
-
-/**
- * Register callback to invoke on local client disconnect.
- *
- * @param lc client to stop monitoring
- * @param it function to no longer call on disconnect
- * @param it_cls closure for it
- */
-void
-GSF_connected_peer_unregister_disconnect_callback_ (struct GSF_ConnectedPeer *cp,
- GSF_PendingRequestIterator it,
- void *it_cls);
-
#endif
/* end of gnunet-service-fs_lc.h */