cprover
sharing_nodet< keyT, valueT, predT, no_sharing > Class Template Reference

#include <sharing_node.h>

Inheritance diagram for sharing_nodet< keyT, valueT, predT, no_sharing >:
[legend]
Collaboration diagram for sharing_nodet< keyT, valueT, predT, no_sharing >:
[legend]

Classes

class  dt
 

Public Types

typedef keyT key_type
 
typedef valueT mapped_type
 
typedef predT key_equal
 
typedef sharing_nodet< key_type, mapped_type, key_equalself_type
 
typedef std::map< unsigned, self_typesubt
 
typedef std::list< self_typecontainert
 
typedef const std::pair< const self_type &, const bool > const_find_type
 
typedef const std::pair< self_type &, const bool > find_type
 

Public Member Functions

 sharing_nodet ()
 
 sharing_nodet (const key_type &k, const mapped_type &m)
 
 sharing_nodet (const self_type &other)
 
bool is_empty () const
 
bool is_internal () const
 
bool is_container () const
 
bool is_leaf () const
 
const key_typeget_key () const
 
const mapped_typeget_value () const
 
mapped_typeget_value ()
 
subtget_sub ()
 
const subtget_sub () const
 
containertget_container ()
 
const containertget_container () const
 
const self_typefind_child (const unsigned n) const
 
self_typeadd_child (const unsigned n)
 
void remove_child (const unsigned n)
 
const self_typefind_leaf (const key_type &k) const
 
self_typefind_leaf (const key_type &k)
 
self_typeplace_leaf (const key_type &k, const mapped_type &m)
 
void remove_leaf (const key_type &k)
 
void clear ()
 
bool shares_with (const self_type &other) const
 
void swap (self_type &other)
 

Protected Member Functions

const dtread () const
 
dtwrite ()
 
void detach ()
 
bool is_well_formed () const
 

Protected Attributes

std::shared_ptr< dtdata
 

Static Protected Attributes

static std::shared_ptr< dtempty_data
 
static sharing_nodet dummy
 

Friends

void sharing_node_test ()
 

Detailed Description

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
class sharing_nodet< keyT, valueT, predT, no_sharing >

Definition at line 34 of file sharing_node.h.

Member Typedef Documentation

◆ const_find_type

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef const std::pair<const self_type &, const bool> sharing_nodet< keyT, valueT, predT, no_sharing >::const_find_type

Definition at line 49 of file sharing_node.h.

◆ containert

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef std::list<self_type> sharing_nodet< keyT, valueT, predT, no_sharing >::containert

Definition at line 47 of file sharing_node.h.

◆ find_type

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef const std::pair<self_type &, const bool> sharing_nodet< keyT, valueT, predT, no_sharing >::find_type

Definition at line 50 of file sharing_node.h.

◆ key_equal

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef predT sharing_nodet< keyT, valueT, predT, no_sharing >::key_equal

Definition at line 42 of file sharing_node.h.

◆ key_type

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef keyT sharing_nodet< keyT, valueT, predT, no_sharing >::key_type

Definition at line 39 of file sharing_node.h.

◆ mapped_type

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef valueT sharing_nodet< keyT, valueT, predT, no_sharing >::mapped_type

Definition at line 40 of file sharing_node.h.

◆ self_type

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef sharing_nodet<key_type, mapped_type, key_equal> sharing_nodet< keyT, valueT, predT, no_sharing >::self_type

Definition at line 44 of file sharing_node.h.

◆ subt

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
typedef std::map<unsigned, self_type> sharing_nodet< keyT, valueT, predT, no_sharing >::subt

Definition at line 46 of file sharing_node.h.

Constructor & Destructor Documentation

◆ sharing_nodet() [1/3]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
sharing_nodet< keyT, valueT, predT, no_sharing >::sharing_nodet ( )
inline

Definition at line 52 of file sharing_node.h.

◆ sharing_nodet() [2/3]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
sharing_nodet< keyT, valueT, predT, no_sharing >::sharing_nodet ( const key_type k,
const mapped_type m 
)
inline

Definition at line 57 of file sharing_node.h.

◆ sharing_nodet() [3/3]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
sharing_nodet< keyT, valueT, predT, no_sharing >::sharing_nodet ( const self_type other)
inline

Definition at line 70 of file sharing_node.h.

Member Function Documentation

◆ add_child()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
self_type* sharing_nodet< keyT, valueT, predT, no_sharing >::add_child ( const unsigned  n)
inline

◆ clear()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
void sharing_nodet< keyT, valueT, predT, no_sharing >::clear ( void  )
inline

Definition at line 243 of file sharing_node.h.

Referenced by sharing_mapt< keyT, valueT, hashT, predT >::clear().

◆ detach()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
void sharing_nodet< keyT, valueT, predT, no_sharing >::detach ( )
inlineprotected

◆ find_child()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const self_type* sharing_nodet< keyT, valueT, predT, no_sharing >::find_child ( const unsigned  n) const
inline

◆ find_leaf() [1/2]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const self_type* sharing_nodet< keyT, valueT, predT, no_sharing >::find_leaf ( const key_type k) const
inline

◆ find_leaf() [2/2]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
self_type* sharing_nodet< keyT, valueT, predT, no_sharing >::find_leaf ( const key_type k)
inline

Definition at line 197 of file sharing_node.h.

◆ get_container() [1/2]

◆ get_container() [2/2]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const containert& sharing_nodet< keyT, valueT, predT, no_sharing >::get_container ( ) const
inline

Definition at line 150 of file sharing_node.h.

◆ get_key()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const key_type& sharing_nodet< keyT, valueT, predT, no_sharing >::get_key ( ) const
inline

◆ get_sub() [1/2]

◆ get_sub() [2/2]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const subt& sharing_nodet< keyT, valueT, predT, no_sharing >::get_sub ( ) const
inline

Definition at line 140 of file sharing_node.h.

◆ get_value() [1/2]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const mapped_type& sharing_nodet< keyT, valueT, predT, no_sharing >::get_value ( ) const
inline

◆ get_value() [2/2]

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
mapped_type& sharing_nodet< keyT, valueT, predT, no_sharing >::get_value ( )
inline

Definition at line 129 of file sharing_node.h.

◆ is_container()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
bool sharing_nodet< keyT, valueT, predT, no_sharing >::is_container ( ) const
inline

◆ is_empty()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
bool sharing_nodet< keyT, valueT, predT, no_sharing >::is_empty ( ) const
inline

◆ is_internal()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
bool sharing_nodet< keyT, valueT, predT, no_sharing >::is_internal ( ) const
inline

◆ is_leaf()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
bool sharing_nodet< keyT, valueT, predT, no_sharing >::is_leaf ( ) const
inline

◆ is_well_formed()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
bool sharing_nodet< keyT, valueT, predT, no_sharing >::is_well_formed ( ) const
inlineprotected

◆ place_leaf()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
self_type* sharing_nodet< keyT, valueT, predT, no_sharing >::place_leaf ( const key_type k,
const mapped_type m 
)
inline

◆ read()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
const dt& sharing_nodet< keyT, valueT, predT, no_sharing >::read ( ) const
inlineprotected

◆ remove_child()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
void sharing_nodet< keyT, valueT, predT, no_sharing >::remove_child ( const unsigned  n)
inline

Definition at line 174 of file sharing_node.h.

Referenced by sharing_mapt< keyT, valueT, hashT, predT >::erase().

◆ remove_leaf()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
void sharing_nodet< keyT, valueT, predT, no_sharing >::remove_leaf ( const key_type k)
inline

Definition at line 222 of file sharing_node.h.

Referenced by sharing_mapt< keyT, valueT, hashT, predT >::erase().

◆ shares_with()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
bool sharing_nodet< keyT, valueT, predT, no_sharing >::shares_with ( const self_type other) const
inline

Definition at line 248 of file sharing_node.h.

◆ swap()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
void sharing_nodet< keyT, valueT, predT, no_sharing >::swap ( self_type other)
inline

Definition at line 253 of file sharing_node.h.

Referenced by sharing_mapt< keyT, valueT, hashT, predT >::swap().

◆ write()

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
dt& sharing_nodet< keyT, valueT, predT, no_sharing >::write ( )
inlineprotected

Friends And Related Function Documentation

◆ sharing_node_test

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
void sharing_node_test ( )
friend

Member Data Documentation

◆ data

◆ dummy

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
sharing_nodet< keyT, valueT, predT, no_sharing > sharing_nodet< keyT, valueT, predT, no_sharing >::dummy
staticprotected

Definition at line 337 of file sharing_node.h.

◆ empty_data

template<class keyT, class valueT, class predT = std::equal_to<keyT>, bool no_sharing = false>
std::shared_ptr< typename sharing_nodet< keyT, valueT, predT, no_sharing >::dt > sharing_nodet< keyT, valueT, predT, no_sharing >::empty_data
staticprotected

The documentation for this class was generated from the following file: