8 #include <pugixml/pugixml.hpp>
18 const string &metadata, uint64_t sequence_number,
30 uint64_t sequence_number) {
31 for (std::vector<LinkOriginInfo>::iterator iter =
origin_info_.begin();
34 if (origin_info->
origin == in_origin) {
94 for (std::vector<LinkOriginInfo>::iterator iter =
origin_info_.begin();
97 if (origin_info->
origin == in_origin) {
107 for (std::vector<LinkOriginInfo>::iterator iter =
origin_info_.begin();
119 for (std::vector<LinkOriginInfo>::iterator iter =
origin_info_.begin();
134 for (std::vector<LinkOriginInfo>::iterator iter =
origin_info_.begin();
146 for (std::vector<LinkOriginInfo>::iterator iter =
origin_info_.begin();
159 pugi::xml_node metadata_node = parent->append_child(
"metadata");
160 metadata_node.append_attribute(
"type") =
metadata_.c_str();
IFMapLink(const std::string &name)
void UpdateProperties(const IFMapOrigin &in_origin, uint64_t sequence_number)
const std::string & metadata() const
IFMapLink::LinkOriginInfo GetOriginInfo(IFMapOrigin::Origin in_origin, bool *exists)
IFMapNode * RightNode(DB *db)
virtual const char * Typename() const =0
void SetProperties(IFMapNode *left, IFMapNode *right, const std::string &metadata, uint64_t sequence_number, const IFMapOrigin &origin)
std::unique_ptr< DBRequestKey > KeyPtr
IFMapNode * LeftNode(DB *db)
static IFMapNode * DescriptorLookup(DB *db, const Descriptor &descriptor)
bool HasOrigin(IFMapOrigin::Origin in_origin)
IFMapNode::Descriptor right_id_
uint64_t sequence_number(IFMapOrigin::Origin in_origin, bool *exists)
virtual bool IsLess(const DBEntry &rgen) const
virtual void SetKey(const DBRequestKey *genkey)
void RemoveOriginInfo(IFMapOrigin::Origin in_origin)
const std::string & name() const
std::vector< LinkOriginInfo > origin_info_
void EncodeLinkInfo(pugi::xml_node *parent) const
const std::string & link_name() const
virtual std::string ToString() const
IFMapNode::Descriptor left_id_
virtual KeyPtr GetDBRequestKey() const
void AddOriginInfo(const IFMapOrigin &in_origin, uint64_t seq_num)