kyotocabinet::CacheDB Class Reference

On-memory hash database with LRU deletion. More...

#include <kccachedb.h>

List of all members.

Classes

class  Cursor
 Cursor to indicate a record. More...
struct  Record
 Record data.
class  Remover
 Removing visitor.
class  Repeater
 Repeating visitor.
class  Setter
 Setting visitor.
struct  Slot
 Slot table.
struct  TranLog
 Transaction log.

Public Types

enum  Option { TSMALL = 1 << 0, TLINEAR = 1 << 1, TCOMPRESS = 1 << 2 }
 

Tuning options.

More...
enum  Flag { FOPEN = 1 << 0, FFATAL = 1 << 1 }
 

Status flags.

More...

Public Member Functions

 CacheDB ()
 Default constructor.
virtual ~CacheDB ()
 Destructor.
bool accept (const char *kbuf, size_t ksiz, Visitor *visitor, bool writable=true)
 Accept a visitor to a record.
bool iterate (Visitor *visitor, bool writable=true, ProgressChecker *checker=NULL)
 Iterate to accept a visitor for each record.
Error error () const
 Get the last happened error.
void set_error (const char *file, int32_t line, const char *func, Error::Code code, const char *message)
 Set the error information.
bool open (const std::string &path, uint32_t mode=OWRITER|OCREATE)
 Open a database file.
bool close ()
 Close the database file.
bool synchronize (bool hard=false, FileProcessor *proc=NULL, ProgressChecker *checker=NULL)
 Synchronize updated contents with the file and the device.
bool begin_transaction (bool hard=false)
 Begin transaction.
bool begin_transaction_try (bool hard=false)
 Try to begin transaction.
bool end_transaction (bool commit=true)
 End transaction.
bool clear ()
 Remove all records.
int64_t count ()
 Get the number of records.
int64_t size ()
 Get the size of the database file.
std::string path ()
 Get the path of the database file.
bool status (std::map< std::string, std::string > *strmap)
 Get the miscellaneous status information.
Cursorcursor ()
 Create a cursor object.
bool tune_logger (Logger *logger, uint32_t kinds=Logger::WARN|Logger::ERROR)
 Set the internal logger.
bool tune_meta_trigger (MetaTrigger *trigger)
 Set the internal meta operation trigger.
bool tune_options (int8_t opts)
 Set the optional features.
bool tune_buckets (int64_t bnum)
 Set the number of buckets of the hash table.
bool tune_compressor (Compressor *comp)
 Set the data compressor.
bool cap_count (int64_t count)
 Set the capacity by record number.
bool cap_size (int64_t size)
 Set the capacity by memory usage.
char * opaque ()
 Get the opaque data.
bool synchronize_opaque ()
 Synchronize the opaque data.

Protected Member Functions

void report (const char *file, int32_t line, const char *func, Logger::Kind kind, const char *format,...)
 Report a message for debugging.
void report_valist (const char *file, int32_t line, const char *func, Logger::Kind kind, const char *format, va_list ap)
 Report a message for debugging with variable number of arguments.
void report_binary (const char *file, int32_t line, const char *func, Logger::Kind kind, const char *name, const char *buf, size_t size)
 Report the content of a binary buffer for debugging.
void trigger_meta (MetaTrigger::Kind kind, const char *message)
 Trigger a meta database operation.
bool tune_type (int8_t type)
 Set the database type.
uint8_t libver ()
 Get the library version.
uint8_t librev ()
 Get the library revision.
uint8_t fmtver ()
 Get the format version.
uint8_t chksum ()
 Get the module checksum.
uint8_t type ()
 Get the database type.
uint8_t opts ()
 Get the options.
Compressorcomp ()
 Get the data compressor.
bool recovered ()
 Check whether the database was recovered or not.
bool reorganized ()
 Check whether the database was reorganized or not.

Friends

class PlantDB< CacheDB, BasicDB::TYPEGRASS >

Detailed Description

On-memory hash database with LRU deletion.

Note:
This class is a concrete class to operate a hash database on memory. This class can be inherited but overwriting methods is forbidden. Before every database operation, it is necessary to call the CacheDB::open method in order to open a database file and connect the database object to it. To avoid data missing or corruption, it is important to close every database file by the CacheDB::close method when the database is no longer in use. It is forbidden for multible database objects in a process to open the same database at the same time. It is forbidden to share a database object with child processes.

Member Enumeration Documentation

Tuning options.

Enumerator:
TSMALL 

dummy for compatibility

TLINEAR 

dummy for compatibility

TCOMPRESS 

compress each record

Status flags.

Enumerator:
FOPEN 

dummy for compatibility

FFATAL 

dummy for compatibility


Constructor & Destructor Documentation

kyotocabinet::CacheDB::CacheDB (  )  [explicit]

Default constructor.

virtual kyotocabinet::CacheDB::~CacheDB (  )  [virtual]

Destructor.

Note:
If the database is not closed, it is closed implicitly.

Member Function Documentation

bool kyotocabinet::CacheDB::accept ( const char *  kbuf,
size_t  ksiz,
Visitor visitor,
bool  writable = true 
) [virtual]

Accept a visitor to a record.

Parameters:
kbuf the pointer to the key region.
ksiz the size of the key region.
visitor a visitor object.
writable true for writable operation, or false for read-only operation.
Returns:
true on success, or false on failure.
Note:
The operation for each record is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any database operation must not be performed in this function.

Implements kyotocabinet::DB.

bool kyotocabinet::CacheDB::iterate ( Visitor visitor,
bool  writable = true,
ProgressChecker checker = NULL 
) [virtual]

Iterate to accept a visitor for each record.

Parameters:
visitor a visitor object.
writable true for writable operation, or false for read-only operation.
checker a progress checker object. If it is NULL, no checking is performed.
Returns:
true on success, or false on failure.
Note:
The whole iteration is performed atomically and other threads are blocked. To avoid deadlock, any database operation must not be performed in this function.

Implements kyotocabinet::BasicDB.

Error kyotocabinet::CacheDB::error (  )  const [virtual]

Get the last happened error.

Returns:
the last happened error.

Implements kyotocabinet::BasicDB.

void kyotocabinet::CacheDB::set_error ( const char *  file,
int32_t  line,
const char *  func,
Error::Code  code,
const char *  message 
)

Set the error information.

Parameters:
file the file name of the program source code.
line the line number of the program source code.
func the function name of the program source code.
code an error code.
message a supplement message.
bool kyotocabinet::CacheDB::open ( const std::string &  path,
uint32_t  mode = OWRITER | OCREATE 
) [virtual]

Open a database file.

Parameters:
path the path of a database file.
mode the connection mode. CacheDB::OWRITER as a writer, CacheDB::OREADER as a reader. The following may be added to the writer mode by bitwise-or: CacheDB::OCREATE, which means it creates a new database if the file does not exist, CacheDB::OTRUNCATE, which means it creates a new database regardless if the file exists, CacheDB::OAUTOTRAN, which means each updating operation is performed in implicit transaction, CacheDB::OAUTOSYNC, which means each updating operation is followed by implicit synchronization with the file system. The following may be added to both of the reader mode and the writer mode by bitwise-or: CacheDB::ONOLOCK, which means it opens the database file without file locking, CacheDB::OTRYLOCK, which means locking is performed without blocking, CacheDB::ONOREPAIR, which means the database file is not repaired implicitly even if file destruction is detected.
Returns:
true on success, or false on failure.
Note:
Every opened database must be closed by the CacheDB::close method when it is no longer in use. It is not allowed for two or more database objects in the same process to keep their connections to the same database file at the same time.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::close (  )  [virtual]

Close the database file.

Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::synchronize ( bool  hard = false,
FileProcessor proc = NULL,
ProgressChecker checker = NULL 
) [virtual]

Synchronize updated contents with the file and the device.

Parameters:
hard true for physical synchronization with the device, or false for logical synchronization with the file system.
proc a postprocessor object. If it is NULL, no postprocessing is performed.
checker a progress checker object. If it is NULL, no checking is performed.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::begin_transaction ( bool  hard = false  )  [virtual]

Begin transaction.

Parameters:
hard true for physical synchronization with the device, or false for logical synchronization with the file system.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::begin_transaction_try ( bool  hard = false  )  [virtual]

Try to begin transaction.

Parameters:
hard true for physical synchronization with the device, or false for logical synchronization with the file system.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::end_transaction ( bool  commit = true  )  [virtual]

End transaction.

Parameters:
commit true to commit the transaction, or false to abort the transaction.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::clear (  )  [virtual]

Remove all records.

Returns:
true on success, or false on failure.

Implements kyotocabinet::DB.

int64_t kyotocabinet::CacheDB::count (  )  [virtual]

Get the number of records.

Returns:
the number of records, or -1 on failure.

Implements kyotocabinet::DB.

int64_t kyotocabinet::CacheDB::size (  )  [virtual]

Get the size of the database file.

Returns:
the size of the database file in bytes, or -1 on failure.

Implements kyotocabinet::BasicDB.

std::string kyotocabinet::CacheDB::path (  )  [virtual]

Get the path of the database file.

Returns:
the path of the database file, or an empty string on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::status ( std::map< std::string, std::string > *  strmap  )  [virtual]

Get the miscellaneous status information.

Parameters:
strmap a string map to contain the result.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

Cursor* kyotocabinet::CacheDB::cursor (  )  [virtual]

Create a cursor object.

Returns:
the return value is the created cursor object.
Note:
Because the object of the return value is allocated by the constructor, it should be released with the delete operator when it is no longer in use.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::tune_logger ( Logger logger,
uint32_t  kinds = Logger::WARN | Logger::ERROR 
) [virtual]

Set the internal logger.

Parameters:
logger the logger object.
kinds kinds of logged messages by bitwise-or: Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::WARN for warning, and Logger::ERROR for fatal error.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::tune_meta_trigger ( MetaTrigger trigger  )  [virtual]

Set the internal meta operation trigger.

Parameters:
trigger the trigger object.
Returns:
true on success, or false on failure.

Implements kyotocabinet::BasicDB.

bool kyotocabinet::CacheDB::tune_options ( int8_t  opts  ) 

Set the optional features.

Parameters:
opts the optional features by bitwise-or: DirDB::TCOMPRESS to compress each record.
Returns:
true on success, or false on failure.
bool kyotocabinet::CacheDB::tune_buckets ( int64_t  bnum  ) 

Set the number of buckets of the hash table.

Parameters:
bnum the number of buckets of the hash table.
Returns:
true on success, or false on failure.
bool kyotocabinet::CacheDB::tune_compressor ( Compressor comp  ) 

Set the data compressor.

Parameters:
comp the data compressor object.
Returns:
true on success, or false on failure.
bool kyotocabinet::CacheDB::cap_count ( int64_t  count  ) 

Set the capacity by record number.

Parameters:
count the maximum number of records.
Returns:
true on success, or false on failure.
bool kyotocabinet::CacheDB::cap_size ( int64_t  size  ) 

Set the capacity by memory usage.

Parameters:
size the maximum size of memory usage.
Returns:
true on success, or false on failure.
char* kyotocabinet::CacheDB::opaque (  ) 

Get the opaque data.

Returns:
the pointer to the opaque data region, whose size is 16 bytes.
bool kyotocabinet::CacheDB::synchronize_opaque (  ) 

Synchronize the opaque data.

Returns:
true on success, or false on failure.
void kyotocabinet::CacheDB::report ( const char *  file,
int32_t  line,
const char *  func,
Logger::Kind  kind,
const char *  format,
  ... 
) [protected]

Report a message for debugging.

Parameters:
file the file name of the program source code.
line the line number of the program source code.
func the function name of the program source code.
kind the kind of the event. Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::WARN for warning, and Logger::ERROR for fatal error.
format the printf-like format string.
... used according to the format string.
void kyotocabinet::CacheDB::report_valist ( const char *  file,
int32_t  line,
const char *  func,
Logger::Kind  kind,
const char *  format,
va_list  ap 
) [protected]

Report a message for debugging with variable number of arguments.

Parameters:
file the file name of the program source code.
line the line number of the program source code.
func the function name of the program source code.
kind the kind of the event. Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::WARN for warning, and Logger::ERROR for fatal error.
format the printf-like format string.
ap used according to the format string.
void kyotocabinet::CacheDB::report_binary ( const char *  file,
int32_t  line,
const char *  func,
Logger::Kind  kind,
const char *  name,
const char *  buf,
size_t  size 
) [protected]

Report the content of a binary buffer for debugging.

Parameters:
file the file name of the epicenter.
line the line number of the epicenter.
func the function name of the program source code.
kind the kind of the event. Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::WARN for warning, and Logger::ERROR for fatal error.
name the name of the information.
buf the binary buffer.
size the size of the binary buffer
void kyotocabinet::CacheDB::trigger_meta ( MetaTrigger::Kind  kind,
const char *  message 
) [protected]

Trigger a meta database operation.

Parameters:
kind the kind of the event. MetaTrigger::OPEN for opening, MetaTrigger::CLOSE for closing, MetaTrigger::CLEAR for clearing, MetaTrigger::ITERATE for iteration, MetaTrigger::SYNCHRONIZE for synchronization, MetaTrigger::BEGINTRAN for beginning transaction, MetaTrigger::COMMITTRAN for committing transaction, MetaTrigger::ABORTTRAN for aborting transaction, and MetaTrigger::MISC for miscellaneous operations.
message the supplement message.
bool kyotocabinet::CacheDB::tune_type ( int8_t  type  )  [protected]

Set the database type.

Parameters:
type the database type.
Returns:
true on success, or false on failure.
uint8_t kyotocabinet::CacheDB::libver (  )  [protected]

Get the library version.

Returns:
the library version, or 0 on failure.
uint8_t kyotocabinet::CacheDB::librev (  )  [protected]

Get the library revision.

Returns:
the library revision, or 0 on failure.
uint8_t kyotocabinet::CacheDB::fmtver (  )  [protected]

Get the format version.

Returns:
the format version, or 0 on failure.
uint8_t kyotocabinet::CacheDB::chksum (  )  [protected]

Get the module checksum.

Returns:
the module checksum, or 0 on failure.
uint8_t kyotocabinet::CacheDB::type (  )  [protected]

Get the database type.

Returns:
the database type, or 0 on failure.
uint8_t kyotocabinet::CacheDB::opts (  )  [protected]

Get the options.

Returns:
the options, or 0 on failure.
Compressor* kyotocabinet::CacheDB::comp (  )  [protected]

Get the data compressor.

Returns:
the data compressor, or NULL on failure.
bool kyotocabinet::CacheDB::recovered (  )  [protected]

Check whether the database was recovered or not.

Returns:
true if recovered, or false if not.
bool kyotocabinet::CacheDB::reorganized (  )  [protected]

Check whether the database was reorganized or not.

Returns:
true if recovered, or false if not.
Generated on Sun Dec 19 12:53:11 2010 for Kyoto Cabinet by  doxygen 1.6.3