PG_ObjectGroup_Map.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=======================================================================
00004 /**
00005  *  @file    PG_ObjectGroup_Map.h
00006  *
00007  *  PG_ObjectGroup_Map.h,v 1.8 2006/03/14 06:14:34 jtc Exp
00008  *
00009  *  @author  Ossama Othman <ossama@uci.edu>
00010  */
00011 //=======================================================================
00012 
00013 
00014 #ifndef TAO_PG_OBJECTGROUP_MAP_H
00015 #define TAO_PG_OBJECTGROUP_MAP_H
00016 
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "ace/config-all.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "orbsvcs/PortableGroup/PG_MemberInfo.h"
00026 
00027 #include "orbsvcs/PortableGroupC.h"
00028 
00029 #include "tao/PortableServer/Key_Adapters.h"
00030 #include "tao/PortableServer/PortableServerC.h"
00031 
00032 #include "ace/Hash_Map_Manager_T.h"
00033 #include "ace/Null_Mutex.h"
00034 
00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00036 
00037 /**
00038  * @class TAO_PG_ObjectGroup_Map_Entry
00039  *
00040  * @brief Value field of the ObjectGroup map.
00041  */
00042 struct TAO_PG_ObjectGroup_Map_Entry
00043 {
00044 public:
00045 
00046   /// The RepositoryId corresponding to all Members in the
00047   /// ObjectGroup.
00048   CORBA::String_var type_id;
00049 
00050   /// This is the PortableGroup::ObjectGroupId.
00051   /**
00052    * The spec states that PortableGroup::ObjectGroupId is a
00053    * CORBA::ULongLong.  However, the over 4 billion group IDs that can
00054    * be represented by a CORBA::ULong should be plenty for any
00055    * application.
00056    */
00057   CORBA::ULong group_id;
00058 
00059   /// Reference to the ObjectGroup.
00060   PortableGroup::ObjectGroup_var object_group;
00061 
00062   /// Unbounded set containing member references and all related
00063   /// information for each member.
00064   TAO_PG_MemberInfo_Set member_infos;
00065 
00066   /// Properties used when creating this object group, in addition to
00067   /// those set dynamically after the creation.
00068   PortableGroup::Properties properties;
00069 
00070 };
00071 
00072 /// ObjectId hash map typedef.
00073 typedef ACE_Hash_Map_Manager_Ex<
00074   PortableServer::ObjectId,
00075   TAO_PG_ObjectGroup_Map_Entry *,
00076   TAO_ObjectId_Hash,
00077   ACE_Equal_To<PortableServer::ObjectId>,
00078   ACE_Null_Mutex> TAO_PG_ObjectGroup_Map;
00079 
00080 TAO_END_VERSIONED_NAMESPACE_DECL
00081 
00082 #include /**/ "ace/post.h"
00083 
00084 #endif  /* TAO_PG_OBJECTGROUP_MAP_H */

Generated on Thu Nov 9 14:03:33 2006 for TAO_PortableGroup by doxygen 1.3.6