c-libp2p/include/libp2p/peer/providerstore.h

38 lines
965 B
C
Raw Normal View History

2017-03-19 19:39:48 +00:00
#pragma once
2017-03-30 18:58:53 +00:00
/**
* Contains a hash and the peer id of
* who can provide it
*/
2017-03-19 19:39:48 +00:00
struct ProviderEntry {
unsigned char* hash;
int hash_size;
unsigned char* peer_id;
int peer_id_size;
};
2017-03-30 18:58:53 +00:00
/***
* A structure to store providers. The implementation
* is a vector of ProviderEntry structures, which contain
* the hash and peer id.
*/
2017-03-19 19:39:48 +00:00
struct ProviderStore {
struct Libp2pVector* provider_entries;
};
/**
* Create a new ProviderStore
* @returns a ProviderStore struct
*/
struct ProviderStore* libp2p_providerstore_new();
/***
* Clean resources used by a ProviderStore
* @param in the ProviderStore to clean up
*/
void libp2p_providerstore_free(struct ProviderStore* in);
int libp2p_providerstore_add(struct ProviderStore* store, unsigned char* hash, int hash_size, unsigned char* peer_id, int peer_id_size);
2017-03-19 19:39:48 +00:00
int libp2p_providerstore_get(struct ProviderStore* store, const unsigned char* hash, int hash_size, unsigned char** peer_id, int *peer_id_size);