/*
This file is part of GNUnet.
- (C) 2009, 2010 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2009, 2010 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.
*/
/**
#include "gnunet_transport_service.h"
#include "gnunet_core_service.h"
#include "gnunet_block_lib.h"
+#include "gnunet_ats_service.h"
#include "fs.h"
*/
#define GET_MESSAGE_BIT_RETURN_TO 1
-/**
- * The hash of the public key of the target
- * namespace is included (for SKS queries).
- */
-#define GET_MESSAGE_BIT_SKS_NAMESPACE 2
-
/**
* The peer identity of a peer that had claimed to have the content
* previously is included (can be used if responder-anonymity is not
{
/**
- * Message type will be GNUNET_MESSAGE_TYPE_FS_GET.
+ * Message type will be #GNUNET_MESSAGE_TYPE_FS_GET.
*/
struct GNUNET_MessageHeader header;
/**
* Which of the optional hash codes are present at the end of the
* message? See GET_MESSAGE_BIT_xx constants. For each bit that is
- * set, an additional GNUNET_HashCode with the respective content
+ * set, an additional `struct GNUNET_HashCode` with the respective content
* (in order of the bits) will be appended to the end of the GET
* message.
*/
* Hashcodes of the file(s) we're looking for.
* Details depend on the query type.
*/
- GNUNET_HashCode query GNUNET_PACKED;
+ struct GNUNET_HashCode query;
- /* this is followed by hash codes as specified in the "hash_bitmap";
+ /* this is followed by PeerIdentities as specified in the "hash_bitmap";
* after that, an optional bloomfilter (with bits set for replies
* that should be suppressed) can be present */
};
struct GSF_RequestPlan;
/**
- * DLL of request plans a particular pending request is
- * involved with.
+ * Bijection between request plans and pending requests.
*/
-struct GSF_RequestPlanReference;
+struct GSF_PendingRequestPlanBijection;
/**
* Our connection to the datastore.
*/
extern struct GNUNET_TIME_Relative GSF_avg_latency;
+/**
+ * Handle to ATS service.
+ */
+extern struct GNUNET_ATS_PerformanceHandle *GSF_ats;
+
+
/**
* Typical priorities we're seeing from other peers right now. Since
* most priorities will be zero, this value is the weighted average of
*/
extern int GSF_enable_randomized_delays;
+/**
+ * Size of the datastore queue we assume for common requests.
+ */
+extern unsigned int GSF_datastore_queue_size;
+
+
/**
* Test if the DATABASE (GET) load on this peer is too high
* to even consider processing the query at