/*
This file is part of GNUnet.
- (C) 2008--2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2008--2013 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.
*/
/**
/**
* Task ID for the timeout task
*/
- GNUNET_SCHEDULER_TaskIdentifier timeout_task;
+ struct GNUNET_SCHEDULER_Task * timeout_task;
/**
* The id of the operation that has been forwarded
/**
* Our configuration
*/
-extern struct GNUNET_CONFIGURATION_Handle *our_config;
+extern struct GNUNET_CONFIGURATION_Handle *GST_config;
/**
* The master context; generated with the first INIT message
*/
extern unsigned int GST_peer_list_size;
+/**
+ * The current number of peers running locally under this controller
+ */
+extern unsigned int GST_num_local_peers;
+
/**
* The size of the host list
*/
* @param tc the task context from scheduler
*/
void
-GST_forwarded_operation_timeout (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc);
+GST_forwarded_operation_timeout (void *cls);
/**
const struct GNUNET_MessageHeader *hello);
-/**
- * Functions of this type are called when the needed handle is available for
- * usage. These functions are to be registered with either of the functions
- * GST_cache_get_handle_transport() or GST_cache_get_handle_core(). The
- * corresponding handles will be set and if they are not, then it signals an
- * error while opening the handles.
- *
- * @param cls the closure passed to GST_cache_get_handle_transport() or
- * GST_cache_get_handle_core()
- * @param ch the handle to CORE. Can be NULL if it is not requested
- * @param th the handle to TRANSPORT. Can be NULL if it is not requested
- * @param peer_id the identity of the peer. Will be NULL if ch is NULL. In other
- * cases, its value being NULL means that CORE connection has failed.
- */
-typedef void (*GST_cache_handle_ready_cb) (void *cls,
- struct GNUNET_CORE_Handle * ch,
- struct GNUNET_TRANSPORT_Handle * th,
- const struct GNUNET_PeerIdentity *
- peer_id);
-
-
-/**
- * Callback to notify when the target peer given to
- * GST_cache_get_handle_transport() is connected. Note that this callback may
- * not be called if the target peer is already connected. Use
- * GNUNET_TRANSPORT_check_neighbour_connected() to check if the target peer is
- * already connected or not. This callback will be called only once or never (in
- * case the target cannot be connected).
- *
- * @param cls the closure given to GST_cache_get_handle_done() for this callback
- * @param target the peer identity of the target peer. The pointer should be
- * valid until GST_cache_get_handle_done() is called.
- */
-typedef void (*GST_cache_peer_connect_notify) (void *cls,
- const struct GNUNET_PeerIdentity
- * target);
-
-
-/**
- * Get a transport handle with the given configuration. If the handle is already
- * cached before, it will be retured in the given callback; the peer_id is used to lookup in the
- * cache. If not a new operation is started to open the transport handle and
- * will be given in the callback when it is available.
- *
- * @param peer_id the index of the peer
- * @param cfg the configuration with which the transport handle has to be
- * created if it was not present in the cache
- * @param cb the callback to notify when the transport handle is available
- * @param cb_cls the closure for the above callback
- * @param target the peer identify of the peer whose connection to our TRANSPORT
- * subsystem will be notified through the connect_notify_cb. Can be NULL
- * @param connect_notify_cb the callback to call when the given target peer is
- * connected. This callback will only be called once or never again (in
- * case the target peer cannot be connected). Can be NULL
- * @param connect_notify_cb_cls the closure for the above callback
- * @return the handle which can be used cancel or mark that the handle is no
- * longer being used
- */
-struct GSTCacheGetHandle *
-GST_cache_get_handle_transport (unsigned int peer_id,
- const struct GNUNET_CONFIGURATION_Handle *cfg,
- GST_cache_handle_ready_cb cb, void *cb_cls,
- const struct GNUNET_PeerIdentity *target,
- GST_cache_peer_connect_notify connect_notify_cb,
- void *connect_notify_cb_cls);
-
-
-/**
- * Get a CORE handle with the given configuration. If the handle is already
- * cached before, it will be retured in the given callback; the peer_id is used
- * to lookup in the cache. If the handle is not cached before, a new operation
- * is started to open the CORE handle and will be given in the callback when it
- * is available along with the peer identity
- *
- * @param peer_id the index of the peer
- * @param cfg the configuration with which the transport handle has to be
- * created if it was not present in the cache
- * @param cb the callback to notify when the transport handle is available
- * @param cb_cls the closure for the above callback
- * @param target the peer identify of the peer whose connection to our CORE
- * subsystem will be notified through the connect_notify_cb. Can be NULL
- * @param connect_notify_cb the callback to call when the given target peer is
- * connected. This callback will only be called once or never again (in
- * case the target peer cannot be connected). Can be NULL
- * @param connect_notify_cb_cls the closure for the above callback
- * @return the handle which can be used cancel or mark that the handle is no
- * longer being used
- */
-struct GSTCacheGetHandle *
-GST_cache_get_handle_core (unsigned int peer_id,
- const struct GNUNET_CONFIGURATION_Handle *cfg,
- GST_cache_handle_ready_cb cb, void *cb_cls,
- const struct GNUNET_PeerIdentity *target,
- GST_cache_peer_connect_notify connect_notify_cb,
- void *connect_notify_cb_cls);
-
-
-/**
- * Mark the GetCacheHandle as being done if a handle has been provided already
- * or as being cancelled if the callback for the handle hasn't been called.
- *
- * @param cgh the CacheGetHandle handle
- */
-void
-GST_cache_get_handle_done (struct GSTCacheGetHandle *cgh);
-
-
/**
* Initialize logging CPU and IO statisticfs. Checks the configuration for
* "STATS_DIR" and logs to a file in that directory. The file is name is