22#include "log_enable.h"
50 virtual void shutdown(ShutdownCallback cb) = 0;
58 virtual bool isRunning(sa_family_t af = 0)
const = 0;
60 virtual void registerType(
const ValueType& type) = 0;
62 virtual const ValueType& getType(ValueType::Id type_id)
const = 0;
70 virtual void insertNode(
const InfoHash&
id,
const sockaddr* sa, socklen_t salen) = 0;
71 virtual void insertNode(
const NodeExport& n) = 0;
73 virtual void pingNode(
const sockaddr*, socklen_t, DoneCallbackSimple&& cb={}) = 0;
75 virtual time_point periodic(
const uint8_t *buf,
size_t buflen,
const SockAddr&) = 0;
76 virtual time_point periodic(
const uint8_t *buf,
size_t buflen,
const sockaddr* from, socklen_t fromlen) = 0;
89 virtual void get(
const InfoHash& key, GetCallback cb, DoneCallbackSimple donecb={}, Value::Filter&& f={}, Where&& w = {}) = 0;
90 virtual void get(
const InfoHash& key, GetCallbackSimple cb, DoneCallback donecb={}, Value::Filter&& f={}, Where&& w = {}) = 0;
91 virtual void get(
const InfoHash& key, GetCallbackSimple cb, DoneCallbackSimple donecb, Value::Filter&& f={}, Where&& w = {}) = 0;
103 virtual void query(
const InfoHash& key, QueryCallback cb, DoneCallback done_cb = {},
Query&& q = {}) = 0;
104 virtual void query(
const InfoHash& key, QueryCallback cb, DoneCallbackSimple done_cb = {}, Query&& q = {}) = 0;
124 DoneCallback cb=
nullptr,
125 time_point created=time_point::max(),
126 bool permanent =
false) = 0;
127 virtual void put(
const InfoHash& key,
129 DoneCallbackSimple cb,
130 time_point created=time_point::max(),
131 bool permanent =
false) = 0;
132 virtual void put(
const InfoHash& key,
134 DoneCallback cb=
nullptr,
135 time_point created=time_point::max(),
136 bool permanent =
false) = 0;
137 virtual void put(
const InfoHash& key,
139 DoneCallbackSimple cb,
140 time_point created=time_point::max(),
141 bool permanent =
false) = 0;
167 virtual size_t listen(
const InfoHash& key, GetCallbackSimple cb, Value::Filter f={}, Where w = {}) = 0;
168 virtual size_t listen(
const InfoHash&, ValueCallback, Value::Filter={}, Where w = {}) = 0;
170 virtual bool cancelListen(
const InfoHash&,
size_t token) = 0;
178 virtual void connectivityChanged() = 0;
186 virtual std::vector<ValuesExport> exportValues()
const = 0;
187 virtual void importValues(
const std::vector<ValuesExport>&) = 0;
189 virtual NodeStats getNodesStats(sa_family_t af)
const = 0;
191 virtual std::string getStorageLog()
const = 0;
192 virtual std::string getStorageLog(
const InfoHash&)
const = 0;
194 virtual std::string getRoutingTablesLog(sa_family_t)
const = 0;
195 virtual std::string getSearchesLog(sa_family_t)
const = 0;
196 virtual std::string getSearchLog(
const InfoHash&, sa_family_t af = AF_UNSPEC)
const = 0;
198 virtual void dumpTables()
const = 0;
199 virtual std::vector<unsigned> getNodeMessageStats(
bool in =
false) = 0;
212 virtual std::vector<SockAddr> getPublicAddress(sa_family_t family = 0) = 0;
219 DHT_LOG.DEBUG = debug;
229 DHT_LOG.setFilter(f);
232 virtual void setPushNotificationToken(
const std::string&) {};
241 bool logFilerEnable_ {};
virtual void insertNode(const InfoHash &id, const SockAddr &)=0
virtual void get(const InfoHash &key, GetCallback cb, DoneCallback donecb={}, Value::Filter &&f={}, Where &&w={})=0
virtual void setLogFilter(const InfoHash &f)
virtual void setLoggers(LogMethod error=NOLOG, LogMethod warn=NOLOG, LogMethod debug=NOLOG)
virtual NodeStatus getStatus(sa_family_t af) const =0
virtual void put(const InfoHash &key, Sp< Value >, DoneCallback cb=nullptr, time_point created=time_point::max(), bool permanent=false)=0
virtual void connectivityChanged(sa_family_t)=0
virtual void query(const InfoHash &key, QueryCallback cb, DoneCallback done_cb={}, Query &&q={})=0
virtual Sp< Value > getPut(const InfoHash &, const Value::Id &)=0
virtual std::vector< NodeExport > exportNodes()=0
virtual void setStorageLimit(size_t limit=DEFAULT_STORAGE_LIMIT)=0
virtual bool isRunning(sa_family_t af=0) const =0
virtual Sp< Value > getLocalById(const InfoHash &key, Value::Id vid) const =0
virtual std::vector< Sp< Value > > getPut(const InfoHash &)=0
virtual size_t listen(const InfoHash &, GetCallback, Value::Filter={}, Where w={})=0
virtual const InfoHash & getNodeId() const =0
virtual std::pair< size_t, size_t > getStoreSize() const =0
virtual void pushNotificationReceived(const std::map< std::string, std::string > &data)=0
virtual void shutdown(ShutdownCallback cb)=0
virtual std::vector< Sp< Value > > getLocal(const InfoHash &key, Value::Filter f=Value::AllFilter()) const =0
virtual bool cancelPut(const InfoHash &, const Value::Id &)=0
void NOLOG(char const *, va_list)
Describes a query destined to another peer.
Serializable dht::Value filter.