#include "misc.hh"
#include "mtasker_context.hh"
#include <memory>
-#include <boost/function.hpp>
+
using namespace ::boost::multi_index;
// #define MTASKERTIMING 1
struct ThreadInfo
{
std::shared_ptr<pdns_ucontext_t> context;
- boost::function<void(void)> start;
+ std::function<void(void)> start;
char* startOfStack;
char* highestStackSeen;
#ifdef MTASKERTIMING
*/
#pragma once
#include "lazy_allocator.hh"
-#include <boost/function.hpp>
#include <vector>
#include <exception>
void
pdns_makecontext
-(pdns_ucontext_t& ctx, boost::function<void(void)>& start);
+(pdns_ucontext_t& ctx, std::function<void(void)>& start);
#ifdef HAVE_FIBER_SANITIZER
#include <sanitizer/common_interface_defs.h>
fcontext_t prev_ctx = nullptr;
#endif
pdns_ucontext_t* self = nullptr;
- boost::function<void(void)>* work = nullptr;
+ std::function<void(void)>* work = nullptr;
};
extern "C" {
void
pdns_makecontext
-(pdns_ucontext_t& ctx, boost::function<void(void)>& start) {
+(pdns_ucontext_t& ctx, std::function<void(void)>& start) {
assert (ctx.uc_link);
assert (ctx.uc_stack.size() >= 8192);
assert (!ctx.uc_mcontext);
notifyStackSwitchDone();
auto ctx = joinPtr<pdns_ucontext_t>(ctx0, ctx1);
try {
- auto start = std::move(*joinPtr<boost::function<void()>>(fun0, fun1));
+ auto start = std::move(*joinPtr<std::function<void()>>(fun0, fun1));
start();
} catch (...) {
ctx->exception = std::current_exception();
void
pdns_makecontext
-(pdns_ucontext_t& ctx, boost::function<void(void)>& start) {
+(pdns_ucontext_t& ctx, std::function<void(void)>& start) {
assert (ctx.uc_link);
assert (ctx.uc_stack.size());
}
template <class T>
-void* voider(const boost::function<T*()>& func)
+void* voider(const std::function<T*()>& func)
{
return func();
}
#endif
/* without reuseport, all listeners share the same sockets */
-typedef vector<pair<int, boost::function<void(int, boost::any&)>>> deferredAdd_t;
+typedef vector<pair<int, std::function<void(int, boost::any&)>>> deferredAdd_t;
extern deferredAdd_t g_deferredAdds;
typedef map<ComboAddress, uint32_t, ComboAddress::addressOnlyLessThan> tcpClientCounts_t;
map<string, LockGuarded<StatRing<string, CIStringCompare> > > d_rings;
map<string, LockGuarded<StatRing<SComboAddress> > > d_comboRings;
map<string, LockGuarded<StatRing<std::tuple<DNSName, QType> > > > d_dnsnameqtyperings;
- typedef boost::function<uint64_t(const std::string&)> func_t;
+ typedef std::function<uint64_t(const std::string&)> func_t;
typedef map<string, func_t> funcstats_t;
funcstats_t d_funcstats;
bool d_doRings;
void serveConnection(const std::shared_ptr<Socket>& client) const;
void handleRequest(HttpRequest& request, HttpResponse& resp) const;
- typedef boost::function<void(HttpRequest* req, HttpResponse* resp)> HandlerFunction;
+ typedef std::function<void(HttpRequest* req, HttpResponse* resp)> HandlerFunction;
void registerApiHandler(const string& url, const HandlerFunction& handler, bool allowPassword=false);
void registerWebHandler(const string& url, const HandlerFunction& handler);
void indexfunction(HttpRequest* req, HttpResponse* resp);
void cssfunction(HttpRequest* req, HttpResponse* resp);
void jsonstat(HttpRequest* req, HttpResponse* resp);
- void registerApiHandler(const string& url, boost::function<void(HttpRequest*, HttpResponse*)> handler);
+ void registerApiHandler(const string& url, std::function<void(HttpRequest*, HttpResponse*)> handler);
void printvars(ostringstream &ret);
void printargs(ostringstream &ret);
void webThread();
friend void AsyncServerNewConnectionMT(void* p);
- typedef boost::function<void(std::shared_ptr<Socket>)> newconnectioncb_t;
+ typedef std::function<void(std::shared_ptr<Socket>)> newconnectioncb_t;
void asyncWaitForConnections(FDMultiplexer* fdm, const newconnectioncb_t& callback);
private:
#include "arguments.hh"
#include "bindparserclasses.hh"
#include "statbag.hh"
-#include <boost/function.hpp>
#include "dnsrecords.hh"
#include "misc.hh"
#include "dns.hh"
g_basedn = args["basedn"];
g_dnsttl = args.mustDo( "dnsttl" );
- typedef boost::function<void(unsigned int, const DNSName &, const string &, const string &, int)> callback_t;
+ typedef std::function<void(unsigned int, const DNSName &, const string &, const string &, int)> callback_t;
callback_t callback = callback_simple;
if( args["layout"] == "tree" )
{