File: cdb.hh

package info (click to toggle)
pdns 3.1-4.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 7,356 kB
  • sloc: cpp: 42,003; ansic: 22,326; sh: 18,273; sql: 618; makefile: 590; yacc: 222; lex: 133; perl: 52
file content (34 lines) | stat: -rw-r--r-- 738 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef CDB_HH
#define CDB_HH

#include <pdns/logger.hh>
#include <cdb.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

// This class is responsible for the reading of a CDB file.
// The constructor opens the CDB file, the destructor closes it, so make sure you call that.
class CDB
{
public:
	CDB(const string &cdbfile);
	~CDB();

	int searchKey(const string &key);
	bool searchSuffix(const string &key);
	void searchAll();
	bool readNext(pair<string, string> &value);
	vector<string> findall(string &key);

private:
	int d_fd;
	bool moveToNext();
	struct cdb d_cdb;
	struct cdb_find d_cdbf;
	char *d_key;
	unsigned d_seqPtr;
	enum SearchType { SearchSuffix, SearchKey, SearchAll } d_searchType;
};

#endif // CDB_HH