5 #ifndef DATABASE_GENDB_IF_H_
6 #define DATABASE_GENDB_IF_H_
11 #include <boost/function.hpp>
12 #include <boost/uuid/uuid.hpp>
13 #include <boost/uuid/uuid_io.hpp>
14 #include <boost/variant.hpp>
15 #include <boost/ptr_container/ptr_vector.hpp>
16 #include <boost/scoped_ptr.hpp>
17 #include <boost/tuple/tuple.hpp>
18 #include <boost/asio/ip/tcp.hpp>
21 #include <database/gendb_types.h>
58 data_(reinterpret_cast<const char *>(data), size) {
60 const uint8_t*
data()
const {
61 return reinterpret_cast<const uint8_t *
>(
data_.c_str());
64 return data_.length();
80 std::ostream&
operator<<(std::ostream &out,
const Blob &value);
83 typedef boost::variant<boost::blank, std::string, uint64_t, uint32_t,
105 std::string
bytes_to_hex(
const uint8_t *byte_array,
size_t size);
113 typedef std::map<std::string, GenDb::DbDataType::type>
ColumnMap;
180 boost::scoped_ptr<DbDataValueVec>
name;
181 boost::scoped_ptr<DbDataValueVec>
value;
268 const std::string& replication_factor=
"1") = 0;
271 const std::string &compaction_strategy) = 0;
276 const std::string &column,
const std::string &indexname,
291 const std::string& cfname,
const std::vector<DbDataValueVec>& key) = 0;
293 const std::string& cfname,
const std::vector<DbDataValueVec>& key,
296 const std::string& cfname,
const std::vector<DbDataValueVec>& key,
302 int task_id,
int task_instance,
DbGetRowCb cb) = 0;
322 uint64_t *enqueues)
const = 0;
327 virtual bool Db_GetStats(std::vector<DbTableInfo> *vdbti,
330 DbErrors *dbe)
const= 0;
337 #endif // DATABASE_GENDB_IF_H_
boost::function< void(void)> DbErrorHandler
virtual bool Db_SetTablespace(const std::string &tablespace)=0
std::vector< GenDb::DbDataType::type > DbDataTypeVec
virtual bool Db_GetCumulativeStats(std::vector< DbTableInfo > *vdbti, DbErrors *dbe) const =0
std::vector< FieldNamesToReadInfo > FieldNamesToReadVec
bool operator==(const Blob &lhs, const Blob &rhs)
boost::asio::ip::tcp::endpoint Endpoint
boost::tuple< std::string, bool, bool, bool > FieldNamesToReadInfo
virtual bool Db_AddSetTablespace(const std::string &tablespace, const std::string &replication_factor="1")=0
boost::asio::ip::address IpAddress
DbDataTypeVec partition_keys_
const uint8_t * data() const
virtual void Db_Uninit()=0
friend bool operator<(const Blob &lhs, const Blob &rhs)
std::string ToString() const
virtual void Db_SetInitDone(bool init_done)=0
boost::ptr_vector< NewCol > NewColVec
virtual bool Db_UseColumnfamily(const NewCf &cf)=0
Blob(const uint8_t *data, size_t size)
static std::string ToString(Op::type op)
bool operator==(const NewCol &rhs) const
virtual void Db_SetQueueWaterMark(bool high, size_t queue_count, DbQueueWaterMarkCb cb)=0
NewCol(DbDataValueVec *n, DbDataValueVec *v, int ttl, DbDataValueVec *t)
std::vector< DbDataValue > DbDataValueVec
DbDataTypeVec clustering_columns_
virtual bool Db_CreateIndex(const std::string &cfname, const std::string &column, const std::string &indexname, const GenDb::ColIndexMode::type index_mode=GenDb::ColIndexMode::NONE)=0
std::string bytes_to_hex(const uint8_t *byte_array, size_t size)
boost::scoped_ptr< DbDataValueVec > timestamp
std::string DbDataValueVecToString(const GenDb::DbDataValueVec &v_db_value)
virtual bool Db_GetRow(ColList *ret, const std::string &cfname, const DbDataValueVec &rowkey, DbConsistency::type dconsistency)=0
boost::variant< boost::blank, std::string, uint64_t, uint32_t, boost::uuids::uuid, uint8_t, uint16_t, double, IpAddress, Blob > DbDataValue
boost::scoped_ptr< DbDataValueVec > value
boost::function< void(DbOpResult::type, std::auto_ptr< ColList >)> DbGetRowCb
virtual bool Db_GetStats(std::vector< DbTableInfo > *vdbti, DbErrors *dbe)=0
std::map< std::string, GenDb::DbDataType::type > ColumnMap
virtual bool Db_GetRowAsync(const std::string &cfname, const DbDataValueVec &rowkey, DbConsistency::type dconsistency, int task_id, int task_instance, DbGetRowCb cb)=0
std::vector< WhereIndexInfo > WhereIndexInfoVec
NewCf(const std::string &cfname, const DbDataTypeVec &keys, const ColumnMap &cfcolumns)
virtual bool Db_GetQueueStats(uint64_t *queue_count, uint64_t *enqueues) const =0
virtual std::vector< Endpoint > Db_GetEndpoints() const =0
boost::ptr_vector< ColList > ColListVec
NewCol(DbDataValueVec *n, DbDataValueVec *v, int ttl)
virtual bool Db_GetAllRows(ColListVec *ret, const std::string &cfname, DbConsistency::type dconsistency)=0
NewCf(const std::string &cfname, const DbDataTypeVec &keys, const DbDataTypeVec &clustering_columns, const DbDataTypeVec &columns, const DbDataTypeVec &values)
boost::function< void(size_t)> DbQueueWaterMarkCb
NewCol(const NewCol &rhs)
std::string DbDataValueToString(const GenDb::DbDataValue &db_value)
boost::tuple< std::string, GenDb::Op::type, DbDataValue > WhereIndexInfo
virtual bool Db_GetMultiRow(ColListVec *ret, const std::string &cfname, const std::vector< DbDataValueVec > &key)=0
virtual bool Db_AddColumn(std::auto_ptr< ColList > cl, DbConsistency::type dconsistency, DbAddColumnCb cb)=0
virtual bool Db_AddColumnfamily(const NewCf &cf, const std::string &compaction_strategy)=0
NewCf::ColumnFamilyType cftype_
boost::function< void(DbOpResult::type)> DbAddColumnCb
NewCol(const std::string &n, const DbDataValue &v, int ttl, DbDataValueVec *t)
std::ostream & operator<<(std::ostream &out, const Blob &value)
boost::scoped_ptr< DbDataValueVec > name
bool operator<(const Blob &lhs, const Blob &rhs)
virtual void Db_ResetQueueWaterMarks()=0
NewCol(const std::string &n, const DbDataValue &v, int ttl)
friend bool operator==(const Blob &lhs, const Blob &rhs)
virtual bool Db_AddColumnSync(std::auto_ptr< ColList > cl, DbConsistency::type dconsistency)=0