5 #ifndef __DB_IFMAP_UPDATE_H__
6 #define __DB_IFMAP_UPDATE_H__
8 #include <boost/crc.hpp>
9 #include <boost/intrusive/list.hpp>
10 #include <boost/intrusive/slist.hpp>
56 boost::intrusive::list_member_hook<>
node;
62 return std::string(
"To implement");
104 boost::intrusive::slist_member_hook<>
node_;
120 typedef boost::intrusive::member_hook<
123 typedef boost::intrusive::slist<IFMapUpdate, MemberHook>
UpdateList;
144 template <
typename Disposer>
void Reset(const BitSet &rhs)
void SetValid(const IFMapLink *link)
void SetDependency(IFMapNodeState *first, IFMapNodeState *second)
bool HasDependency() const
DependencyRef< IFMapLink, IFMapNodeState > right_
DependencyRef< IFMapLink, IFMapNodeState > left_
IFMapLinkState(IFMapLink *link)
const_iterator end() const
DependencyList< IFMapLink, IFMapNodeState >::const_iterator const_iterator
DependencyList< IFMapLink, IFMapNodeState >::iterator iterator
DEPENDENCY_LIST(IFMapLink, IFMapNodeState, dependents_)
bool HasDependents() const
const_iterator begin() const
IFMapNodeState(IFMapNode *node)
const BitSet & nmask() const
void SetValid(const IFMapNode *node)
void AdvertisedReset(const BitSet &set)
virtual bool CanDelete()=0
void Remove(IFMapUpdate *update)
IFMapLink * GetIFMapLink() const
virtual bool IsInvalid() const
virtual void ClearValid()
void InterestOr(const BitSet &bset)
void ClearAndDispose(Disposer disposer)
void AdvertisedOr(const BitSet &set)
void InterestReset(const BitSet &set)
const crc32type & crc() const
void Insert(IFMapUpdate *update)
IFMapUpdate * GetUpdate(IFMapListEntry::EntryType type)
IFMapState(IFMapNode *node)
static const uint32_t kInvalidSig
boost::intrusive::member_hook< IFMapUpdate, boost::intrusive::slist_member_hook<>, &IFMapUpdate::node_ > MemberHook
const BitSet & interest() const
const BitSet & advertised() const
virtual bool IsValid() const
boost::crc_32_type::value_type crc32type
void SetInterest(const BitSet &bset)
void SetCrc(crc32type &crc)
const UpdateList & update_list() const
boost::intrusive::slist< IFMapUpdate, MemberHook > UpdateList
IFMapNode * GetIFMapNode() const
const IFMapObjectPtr & data() const
IFMapUpdate(IFMapNode *node, bool positive)
const BitSet & advertise() const
void AdvertiseReset(const BitSet &set)
virtual std::string ToString()
void SetAdvertise(const BitSet &set)
void AdvertiseOr(const BitSet &set)
const IFMapObjectPtr & data() const
boost::intrusive::slist_member_hook node_
std::string queue_insert_ago_str()
void set_queue_insert_at_to_now()
boost::intrusive::list_member_hook node
void set_sequence(uint64_t seq)
virtual ~IFMapListEntry()
virtual std::string ToString()
IFMapListEntry(EntryType type)
std::string TypeToString()
virtual std::string ToString()
void set(IFMapLink *link)
void set(IFMapNode *node)
union IFMapObjectPtr::@5 u