acl/app/net_tools/dns/dns_store.h

29 lines
674 B
C++

#pragma once
#include <vector>
class domain_info;
class nslookup_callback;
class dns_store : public acl::rpc_request
{
public:
dns_store(std::vector<domain_info*>* domain_list,
nslookup_callback& callback);
protected:
private:
~dns_store();
// 基类虚函数:子线程处理函数
virtual void rpc_run();
// 基类虚函数:主线程处理过程,收到子线程任务完成的消息
virtual void rpc_onover();
private:
bool ok_;
std::vector<domain_info*>* domain_list_;
nslookup_callback& callback_;
acl::string dbpath_;
bool create_tbl(acl::db_handle& db);
void insert_tbl(acl::db_handle& db);
void insert_one(acl::db_handle& db, const domain_info* info);
};