GNUnet  0.10.x
Data Structures | Macros | Typedefs
gnunet_datastore_plugin.h File Reference
#include "gnunet_block_lib.h"
#include "gnunet_configuration_lib.h"
#include "gnunet_datastore_service.h"
#include "gnunet_statistics_service.h"
#include "gnunet_scheduler_lib.h"
Include dependency graph for gnunet_datastore_plugin.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  GNUNET_DATASTORE_PluginEnvironment
 The datastore service will pass a pointer to a struct of this type as the first and only argument to the entry point of each datastore plugin. More...
 
struct  GNUNET_DATASTORE_PluginFunctions
 Each plugin is required to return a pointer to a struct of this type as the return value from its entry point. More...
 

Macros

#define GNUNET_DATASTORE_ENTRY_OVERHEAD   256
 How many bytes of overhead will we assume per entry in any DB (for reservations)? More...
 

Typedefs

typedef void(* GNUNET_DATASTORE_DiskUtilizationChange) (void *cls, int delta)
 Function invoked to notify service of disk utilization changes. More...
 
typedef int(* PluginDatumProcessor) (void *cls, const struct GNUNET_HashCode *key, uint32_t size, const void *data, enum GNUNET_BLOCK_Type type, uint32_t priority, uint32_t anonymity, uint32_t replication, struct GNUNET_TIME_Absolute expiration, uint64_t uid)
 An processor over a set of items stored in the datastore. More...
 
typedef void(* PluginEstimateSize) (void *cls, unsigned long long *estimate)
 Get an estimate of how much space the database is currently using. More...
 
typedef void(* PluginPutCont) (void *cls, const struct GNUNET_HashCode *key, uint32_t size, int status, const char *msg)
 Put continuation. More...
 
typedef void(* PluginPut) (void *cls, const struct GNUNET_HashCode *key, bool absent, uint32_t size, const void *data, enum GNUNET_BLOCK_Type type, uint32_t priority, uint32_t anonymity, uint32_t replication, struct GNUNET_TIME_Absolute expiration, PluginPutCont cont, void *cont_cls)
 Store an item in the datastore. More...
 
typedef void(* PluginKeyProcessor) (void *cls, const struct GNUNET_HashCode *key, unsigned int count)
 An processor over a set of keys stored in the datastore. More...
 
typedef void(* PluginGetKeys) (void *cls, PluginKeyProcessor proc, void *proc_cls)
 Get all of the keys in the datastore. More...
 
typedef void(* PluginGetKey) (void *cls, uint64_t next_uid, bool random, const struct GNUNET_HashCode *key, enum GNUNET_BLOCK_Type type, PluginDatumProcessor proc, void *proc_cls)
 Get one of the results for a particular key in the datastore. More...
 
typedef void(* PluginRemoveCont) (void *cls, const struct GNUNET_HashCode *key, uint32_t size, int status, const char *msg)
 Remove continuation. More...
 
typedef void(* PluginRemoveKey) (void *cls, const struct GNUNET_HashCode *key, uint32_t size, const void *data, PluginRemoveCont cont, void *cont_cls)
 Remove a particular key in the datastore. More...
 
typedef void(* PluginGetRandom) (void *cls, PluginDatumProcessor proc, void *proc_cls)
 Get a random item (additional constraints may apply depending on the specific implementation). More...
 
typedef void(* PluginGetType) (void *cls, uint64_t next_uid, enum GNUNET_BLOCK_Type type, PluginDatumProcessor proc, void *proc_cls)
 Select a single item from the datastore (among those applicable). More...
 
typedef void(* PluginDrop) (void *cls)
 Drop database. More...
 

Detailed Description

Author
Christian Grothoff

API for the database backend plugins.

Definition in file gnunet_datastore_plugin.h.