118 lines
2.0 KiB
C++
118 lines
2.0 KiB
C++
#include <iomanip>
|
|
|
|
#include "etcd/Value.hpp"
|
|
#include "etcd/v3/KeyValue.hpp"
|
|
|
|
etcd::Value::Value()
|
|
: dir(false),
|
|
created(0),
|
|
modified(0),
|
|
_version(0),
|
|
_ttl(0),
|
|
leaseId(0)
|
|
{
|
|
}
|
|
|
|
|
|
etcd::Value::Value(etcdv3::KeyValue const & kv)
|
|
{
|
|
dir = false;
|
|
_key = kv.kvs.key();
|
|
value = kv.kvs.value();
|
|
created = kv.kvs.create_revision();
|
|
modified = kv.kvs.mod_revision();
|
|
_version = kv.kvs.version();
|
|
leaseId = kv.kvs.lease();
|
|
_ttl = kv.get_ttl();
|
|
}
|
|
|
|
etcd::Value::Value(mvccpb::KeyValue const & kv)
|
|
{
|
|
dir = false;
|
|
_key = kv.key();
|
|
value = kv.value();
|
|
created = kv.create_revision();
|
|
modified = kv.mod_revision();
|
|
_version = kv.version();
|
|
leaseId = kv.lease();
|
|
_ttl = -1;
|
|
}
|
|
|
|
std::string const & etcd::Value::key() const
|
|
{
|
|
return _key;
|
|
}
|
|
|
|
bool etcd::Value::is_dir() const
|
|
{
|
|
return dir;
|
|
}
|
|
|
|
std::string const & etcd::Value::as_string() const
|
|
{
|
|
return value;
|
|
}
|
|
|
|
int64_t etcd::Value::created_index() const
|
|
{
|
|
return created;
|
|
}
|
|
|
|
int64_t etcd::Value::modified_index() const
|
|
{
|
|
return modified;
|
|
}
|
|
|
|
int64_t etcd::Value::version() const
|
|
{
|
|
return _version;
|
|
}
|
|
|
|
int etcd::Value::ttl() const
|
|
{
|
|
return _ttl;
|
|
}
|
|
|
|
int64_t etcd::Value::lease() const
|
|
{
|
|
return leaseId;
|
|
}
|
|
|
|
etcd::Event::Event(mvccpb::Event const & event) {
|
|
_has_kv = event.has_kv();
|
|
_has_prev_kv = event.has_prev_kv();
|
|
if (_has_kv) {
|
|
_kv = Value(event.kv());
|
|
}
|
|
if (_has_prev_kv) {
|
|
_prev_kv = Value(event.prev_kv());
|
|
}
|
|
if (event.type() == mvccpb::Event::PUT) {
|
|
event_type_ = EventType::PUT;
|
|
} else if (event.type() == mvccpb::Event::DELETE_) {
|
|
event_type_ = EventType::DELETE_;
|
|
} else {
|
|
event_type_ = EventType::INVALID;
|
|
}
|
|
}
|
|
|
|
enum etcd::Event::EventType etcd::Event::event_type() const {
|
|
return event_type_;
|
|
}
|
|
|
|
bool etcd::Event::has_kv() const {
|
|
return _has_kv;
|
|
}
|
|
|
|
bool etcd::Event::has_prev_kv() const {
|
|
return _has_prev_kv;
|
|
}
|
|
|
|
const etcd::Value &etcd::Event::kv() const {
|
|
return _kv;
|
|
}
|
|
|
|
const etcd::Value &etcd::Event::prev_kv() const {
|
|
return _prev_kv;
|
|
}
|