Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_MProfile Class Reference

This class implements the basic interface for supporting multiple profiles. More...

#include <MProfile.h>

Collaboration diagram for TAO_MProfile:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_MProfile (CORBA::ULong sz=0)
 TAO_MProfile (const TAO_MProfile &mprofiles)
 **NOTE: IF mprofiles->last_ > 0, THEN this->size_ will be set to mprofiles->last_. More...

TAO_MProfile & operator= (const TAO_MProfile &mprofiles)
 Assigment operator. More...

 ~TAO_MProfile (void)
 Destructor: decrements reference count on all references profiles! More...

int set (CORBA::ULong sz)
 Inits MProfile to hold sz TAO_Profiles. NOT THREAD SAFE. More...

int set (const TAO_MProfile &mprofile)
 Inits this to the values of mprofile. More...

int grow (CORBA::ULong sz)
 increase the number of profiles this object can hold. NOT THREAD SAFE. More...

TAO_Profileget_cnext (void)
 Treat as a circular list. More...

TAO_Profileget_next (void)
 Get next profile in list, return 0 at end of list. More...

TAO_Profileget_cprev (void)
 Assume a circular list of profiles. More...

TAO_Profileget_prev (void)
 Get previous profile, stop at beginning of list and return 0. More...

TAO_Profileget_current_profile (void)
 Return a pointer to the current profile, will not increment reference pointer. More...

TAO_Profileget_profile (TAO_PHandle handle)
 Return a pointer to the profile referenced by handle void. More...

TAO_PHandle get_current_handle (void)
 Returns the index for the current profile. More...

TAO_PHandle get_current_handle (void) const
 Returns the index for the current profile. More...

CORBA::ULong profile_count (void) const
 Returns the number of profiles stored in the list (last_+1). More...

CORBA::ULong size (void) const
 return the maximum number of profiles that can be stored in this container, (size_+1). More...

const TAO_Profileget_profile (CORBA::ULong slot) const
 Return the profile at position <slot>. If <slot> is out of range it returns 0. More...

void rewind (void)
 Sets the current slot back to 0. More...

int add_profile (TAO_Profile *pfile)
 Return the index of this entry or -1 if it can not be added. reference count on profile in incremented! More...

int give_profile (TAO_Profile *pfile)
 Return the index of this entry or -1 if it can not be added. this object assumes ownership of this profile!! More...

int add_profiles (TAO_MProfile *pfiles)
 append the profiles in pfiles to this object. The count will be incremented on the individual profile objects. More...

int remove_profile (const TAO_Profile *pfile)
 remove from this MProfile any profiles which also appear in pfiles. More...

int remove_profiles (const TAO_MProfile *pfiles)
 remove from this MProfile any profiles which also appear in pfiles. More...

void forward_from (TAO_MProfile *mprofiles)
 Set a pointer to the MProfile whose 'current' TAO_Profile was forwarded This object is the set of forwarding profiles. More...

TAO_MProfile * forward_from (void)
 Returns a pointer to the profile which was forwarded. More...

CORBA::Boolean is_equivalent (const TAO_MProfile *rhs)
 Returns true of there is at least one profile in first which is_equivalent with at least one profile in second. More...

CORBA::ULong hash (CORBA::ULong max ACE_ENV_ARG_DECL)
 use all registered profiles. More...

void policy_list (CORBA::PolicyList *policy_list)
 Sets the policies list associated with the profiles owned by the TAO_MProfile. More...

CORBA::PolicyListpolicy_list (ACE_ENV_SINGLE_ARG_DECL)
 Gets the policies list associated with the profiles owned by the TAO_MProfile. More...


Protected Methods

void create_policy_list (ACE_ENV_SINGLE_ARG_DECL)
 This method handle the dynamic allocation of the data member <policy_list_>. More...

void init_policy_list (ACE_ENV_SINGLE_ARG_DECL)
 Initialize the policy list, demarsharling the policy. More...

TAO_Profile ** pfiles (void) const
 return the complete list of profiles, this object retains ownership! More...


Protected Attributes

CORBA::PolicyListpolicy_list_
CORBA::Boolean is_policy_list_initialized_
TAO_SYNCH_RECURSIVE_MUTEX mutex_
 Mutex used to make sure that only one policy list is created. More...


Private Methods

void cleanup (void)
 Helper method to implement the destructor. More...


Private Attributes

TAO_MProfile * forward_from_
 Used for chaning references when the current profile is forwarded. More...

TAO_Profile ** pfiles_
 Actual list of profiles. More...

TAO_PHandle current_
 Points to the next profile to be used. 0 ... size_. More...

TAO_PHandle size_
 Max size of array. More...

TAO_PHandle last_
 Index plus 1 of last valid entry! May be < size_. More...


Friends

class TAO_Profile
 Stores the policy list for the profile of this MProfile. More...


Detailed Description

This class implements the basic interface for supporting multiple profiles.

Multiple profiles can be treated either as a circular queue or a linear array of profiles. It is assumed that locking will only be required when a profile list is associated with a TAO_Stub. Thus when the TAO_Stub accepts ownership of an MProfile it also assumes responsibility for controling access (i.e. locking).


Constructor & Destructor Documentation

ACE_INLINE TAO_MProfile::TAO_MProfile CORBA::ULong    sz = 0
 

ACE_INLINE TAO_MProfile::TAO_MProfile const TAO_MProfile &    mprofiles
 

**NOTE: IF mprofiles->last_ > 0, THEN this->size_ will be set to mprofiles->last_.

Otherwise this->size_ - mprofiles->size_. Furthermore, current_ is set back to 0! i.e. rewound. The reference count on any profiles in mprofiles is increment when their references (i.e. pointers) are copied.

ACE_INLINE TAO_MProfile::~TAO_MProfile void   
 

Destructor: decrements reference count on all references profiles!


Member Function Documentation

int TAO_MProfile::add_profile TAO_Profile   pfile
 

Return the index of this entry or -1 if it can not be added. reference count on profile in incremented!

int TAO_MProfile::add_profiles TAO_MProfile *    pfiles
 

append the profiles in pfiles to this object. The count will be incremented on the individual profile objects.

void TAO_MProfile::cleanup void    [private]
 

Helper method to implement the destructor.

ACE_INLINE void TAO_MProfile::create_policy_list ACE_ENV_SINGLE_ARG_DECL    [protected]
 

This method handle the dynamic allocation of the data member <policy_list_>.

ACE_INLINE TAO_MProfile * TAO_MProfile::forward_from void   
 

Returns a pointer to the profile which was forwarded.

ACE_INLINE void TAO_MProfile::forward_from TAO_MProfile *    from
 

Set a pointer to the MProfile whose 'current' TAO_Profile was forwarded This object is the set of forwarding profiles.

ACE_INLINE TAO_Profile * TAO_MProfile::get_cnext void   
 

Treat as a circular list.

ACE_INLINE TAO_Profile * TAO_MProfile::get_cprev void   
 

Assume a circular list of profiles.

ACE_INLINE TAO_PHandle TAO_MProfile::get_current_handle void    const
 

Returns the index for the current profile.

ACE_INLINE TAO_PHandle TAO_MProfile::get_current_handle void   
 

Returns the index for the current profile.

ACE_INLINE TAO_Profile * TAO_MProfile::get_current_profile void   
 

Return a pointer to the current profile, will not increment reference pointer.

ACE_INLINE TAO_Profile * TAO_MProfile::get_next void   
 

Get next profile in list, return 0 at end of list.

ACE_INLINE TAO_Profile * TAO_MProfile::get_prev void   
 

Get previous profile, stop at beginning of list and return 0.

ACE_INLINE const TAO_Profile * TAO_MProfile::get_profile CORBA::ULong    slot const
 

Return the profile at position <slot>. If <slot> is out of range it returns 0.

ACE_INLINE TAO_Profile * TAO_MProfile::get_profile TAO_PHandle    handle
 

Return a pointer to the profile referenced by handle void.

ACE_INLINE int TAO_MProfile::give_profile TAO_Profile   pfile
 

Return the index of this entry or -1 if it can not be added. this object assumes ownership of this profile!!

int TAO_MProfile::grow CORBA::ULong    sz
 

increase the number of profiles this object can hold. NOT THREAD SAFE.

CORBA::ULong TAO_MProfile::hash CORBA::ULong max    ACE_ENV_ARG_DECL
 

use all registered profiles.

The hash() method is called on each profile and the results are averaged together. NON-THREAD SAFE.

void TAO_MProfile::init_policy_list ACE_ENV_SINGLE_ARG_DECL    [protected]
 

Initialize the policy list, demarsharling the policy.

CORBA::Boolean TAO_MProfile::is_equivalent const TAO_MProfile *    rhs
 

Returns true of there is at least one profile in first which is_equivalent with at least one profile in second.

NON-THREAD SAFE, relies on some other entity to guarentee the profiles will not change during the call.

ACE_INLINE TAO_MProfile & TAO_MProfile::operator= const TAO_MProfile &    rhs
 

Assigment operator.

ACE_INLINE TAO_Profile ** TAO_MProfile::pfiles void    const [protected]
 

return the complete list of profiles, this object retains ownership!

CORBA::PolicyList * TAO_MProfile::policy_list ACE_ENV_SINGLE_ARG_DECL   
 

Gets the policies list associated with the profiles owned by the TAO_MProfile.

ACE_INLINE void TAO_MProfile::policy_list CORBA::PolicyList   policy_list
 

Sets the policies list associated with the profiles owned by the TAO_MProfile.

ACE_INLINE CORBA::ULong TAO_MProfile::profile_count void    const
 

Returns the number of profiles stored in the list (last_+1).

int TAO_MProfile::remove_profile const TAO_Profile   pfile
 

remove from this MProfile any profiles which also appear in pfiles.

int TAO_MProfile::remove_profiles const TAO_MProfile *    pfiles
 

remove from this MProfile any profiles which also appear in pfiles.

ACE_INLINE void TAO_MProfile::rewind void   
 

Sets the current slot back to 0.

int TAO_MProfile::set const TAO_MProfile &    mprofile
 

Inits this to the values of mprofile.

NOTE: We use mprofile->last_ instead of mprofile->size_ to set this->size_. This is so we can use set () to trim a profile list!! NOT THREAD SAFE

int TAO_MProfile::set CORBA::ULong    sz
 

Inits MProfile to hold sz TAO_Profiles. NOT THREAD SAFE.

ACE_INLINE CORBA::ULong TAO_MProfile::size void    const
 

return the maximum number of profiles that can be stored in this container, (size_+1).


Friends And Related Function Documentation

friend class TAO_Profile [friend]
 

Stores the policy list for the profile of this MProfile.


Member Data Documentation

TAO_PHandle TAO_MProfile::current_ [private]
 

Points to the next profile to be used. 0 ... size_.

TAO_MProfile* TAO_MProfile::forward_from_ [private]
 

Used for chaning references when the current profile is forwarded.

Note, this will only be valid for an MProfile which contains a list of forward_profiles for some initial or base profile. This is a backward reference to the profile list which received the relocate message. The actual profile what was forwarded will be forward_from_->get_current_profile ()

CORBA::Boolean TAO_MProfile::is_policy_list_initialized_ [protected]
 

TAO_PHandle TAO_MProfile::last_ [private]
 

Index plus 1 of last valid entry! May be < size_.

TAO_SYNCH_RECURSIVE_MUTEX TAO_MProfile::mutex_ [protected]
 

Mutex used to make sure that only one policy list is created.

TAO_Profile** TAO_MProfile::pfiles_ [private]
 

Actual list of profiles.

CORBA::PolicyList* TAO_MProfile::policy_list_ [protected]
 

TAO_PHandle TAO_MProfile::size_ [private]
 

Max size of array.


The documentation for this class was generated from the following files:
Generated on Thu Oct 10 18:43:31 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001