22 #include "log_enable.h" 39 virtual NodeStatus getStatus(sa_family_t af)
const = 0;
45 virtual const InfoHash& getNodeId()
const = 0;
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;
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;
109 virtual std::vector<Sp<Value>> getLocal(
const InfoHash& key,
Value::Filter f = Value::AllFilter())
const = 0;
114 virtual Sp<Value> getLocalById(
const InfoHash& key, Value::Id vid)
const = 0;
122 virtual void put(
const InfoHash& key,
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;
146 virtual std::vector<Sp<Value>> getPut(
const InfoHash&) = 0;
151 virtual Sp<Value> getPut(
const InfoHash&,
const Value::Id&) = 0;
157 virtual bool cancelPut(
const InfoHash&,
const Value::Id&) = 0;
170 virtual bool cancelListen(
const InfoHash&,
size_t token) = 0;
177 virtual void connectivityChanged(sa_family_t) = 0;
178 virtual void connectivityChanged() = 0;
184 virtual std::vector<NodeExport> exportNodes() = 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;
204 virtual void setStorageLimit(
size_t limit = DEFAULT_STORAGE_LIMIT) = 0;
210 virtual std::pair<size_t, size_t> getStoreSize()
const = 0;
212 virtual std::vector<SockAddr> getPublicAddress(sa_family_t family = 0) = 0;
229 DHT_LOG.setFilter(f);
232 virtual void setPushNotificationToken(
const std::string&) {};
238 virtual void pushNotificationReceived(
const std::map<std::string, std::string>& data) = 0;
241 bool logFilerEnable_ {};
242 InfoHash logFiler_ {};
void NOLOG(char const *, va_list)
virtual void setLogFilter(const InfoHash &f)
Describes a query destined to another peer.
Serializable dht::Value filter.
virtual void setLoggers(LogMethod error=NOLOG, LogMethod warn=NOLOG, LogMethod debug=NOLOG)