TAO_PortableGroup 4.0.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
TAO::PG_Group_List_Store Class Reference

#include <PG_Group_List_Store.h>

Collaboration diagram for TAO::PG_Group_List_Store:
Collaboration graph
[legend]

Public Types

typedef std::set< PortableGroup::ObjectGroupId > Group_Ids
 
typedef std::set< PortableGroup::ObjectGroupId >::iterator Group_Id_Iterator
 
typedef std::set< PortableGroup::ObjectGroupId >::reverse_iterator Group_Id_Revers_Iterator
 
typedef std::set< PortableGroup::ObjectGroupId >::const_iterator Group_Id_Const_Iterator
 

Public Member Functions

 PG_Group_List_Store (Storable_Factory &storable_factory)
 
 ~PG_Group_List_Store ()
 
PortableGroup::ObjectGroupId get_next_group_id ()
 
int add (PortableGroup::ObjectGroupId id)
 
int remove (PortableGroup::ObjectGroupId id)
 
Group_Idsget_group_ids ()
 
void stale (bool is_stale)
 
bool stale ()
 
bool list_obsolete ()
 

Private Member Functions

TAO::Storable_Basecreate_stream (const char *mode)
 
void read (TAO::Storable_Base &stream)
 
void write (TAO::Storable_Base &stream)
 
bool is_obsolete (time_t stored_time)
 

Private Attributes

Group_Ids group_ids_
 
PortableGroup::ObjectGroupId next_group_id_
 
Storable_Factorystorable_factory_
 
bool loaded_from_stream_
 
time_t last_changed_
 
bool stale_
 
TAO_SYNCH_MUTEX lock_
 

Friends

class PG_Group_List_Store_File_Guard
 

Detailed Description

Persists a list of object groups that are themselves persisted. All creation and deletion of persistent object groups should result in the list store being updated. This is done to support multiple group factories using the same persistent object groups.

See also
PG_Object_Group_Storable

Member Typedef Documentation

◆ Group_Id_Const_Iterator

typedef std::set<PortableGroup::ObjectGroupId>::const_iterator TAO::PG_Group_List_Store::Group_Id_Const_Iterator

◆ Group_Id_Iterator

typedef std::set<PortableGroup::ObjectGroupId>::iterator TAO::PG_Group_List_Store::Group_Id_Iterator

◆ Group_Id_Revers_Iterator

typedef std::set<PortableGroup::ObjectGroupId>::reverse_iterator TAO::PG_Group_List_Store::Group_Id_Revers_Iterator

◆ Group_Ids

typedef std::set<PortableGroup::ObjectGroupId> TAO::PG_Group_List_Store::Group_Ids

Constructor & Destructor Documentation

◆ PG_Group_List_Store()

TAO::PG_Group_List_Store::PG_Group_List_Store ( Storable_Factory & storable_factory)

◆ ~PG_Group_List_Store()

TAO::PG_Group_List_Store::~PG_Group_List_Store ( )

Member Function Documentation

◆ add()

int TAO::PG_Group_List_Store::add ( PortableGroup::ObjectGroupId id)

◆ create_stream()

TAO::Storable_Base * TAO::PG_Group_List_Store::create_stream ( const char * mode)
private

◆ get_group_ids()

TAO::PG_Group_List_Store::Group_Ids & TAO::PG_Group_List_Store::get_group_ids ( )

◆ get_next_group_id()

PortableGroup::ObjectGroupId TAO::PG_Group_List_Store::get_next_group_id ( )

Return a group ID that can be used for creating a new object group.

◆ is_obsolete()

bool TAO::PG_Group_List_Store::is_obsolete ( time_t stored_time)
private

◆ list_obsolete()

bool TAO::PG_Group_List_Store::list_obsolete ( )

Answer if the list is obsolete because the persistent store has been updated. Used by PG_Group_Factory to avoid having to compare IDs in group_map_ with the list contained here.

◆ read()

void TAO::PG_Group_List_Store::read ( TAO::Storable_Base & stream)
private

◆ remove()

int TAO::PG_Group_List_Store::remove ( PortableGroup::ObjectGroupId id)

◆ stale() [1/2]

bool TAO::PG_Group_List_Store::stale ( )

◆ stale() [2/2]

void TAO::PG_Group_List_Store::stale ( bool is_stale)

Make explicit that state is stale instead of relying only on persistent file time stamp.

◆ write()

void TAO::PG_Group_List_Store::write ( TAO::Storable_Base & stream)
private

Friends And Related Symbol Documentation

◆ PG_Group_List_Store_File_Guard

friend class PG_Group_List_Store_File_Guard
friend

Member Data Documentation

◆ group_ids_

Group_Ids TAO::PG_Group_List_Store::group_ids_
private

◆ last_changed_

time_t TAO::PG_Group_List_Store::last_changed_
private

◆ loaded_from_stream_

bool TAO::PG_Group_List_Store::loaded_from_stream_
private

◆ lock_

TAO_SYNCH_MUTEX TAO::PG_Group_List_Store::lock_
private

◆ next_group_id_

PortableGroup::ObjectGroupId TAO::PG_Group_List_Store::next_group_id_
private

Ensure ID is monotonically increasing even when groups gets removed.

◆ stale_

bool TAO::PG_Group_List_Store::stale_
private

◆ storable_factory_

Storable_Factory& TAO::PG_Group_List_Store::storable_factory_
private

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