summaryrefslogtreecommitdiff
path: root/TAO/tao/MProfile.i
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/MProfile.i')
-rw-r--r--TAO/tao/MProfile.i231
1 files changed, 0 insertions, 231 deletions
diff --git a/TAO/tao/MProfile.i b/TAO/tao/MProfile.i
deleted file mode 100644
index 2f6c3d36c4f..00000000000
--- a/TAO/tao/MProfile.i
+++ /dev/null
@@ -1,231 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-// $Id$
-
-#include "tao/MProfile.h"
-#include "tao/Pluggable.h"
-
-ACE_INLINE
-TAO_MProfile::TAO_MProfile (CORBA::ULong sz)
- : forward_from_(0),
- pfiles_ (0),
- current_ (0),
- size_ (0),
- last_ (0)
-{
- this->set (sz);
-}
-
-ACE_INLINE
-TAO_MProfile::TAO_MProfile (TAO_MProfile *mprofiles)
- : forward_from_(0),
- pfiles_ (0),
- current_ (0),
- size_ (0),
- last_ (0)
-{
- this->set (mprofiles);
-}
-
-ACE_INLINE
-TAO_MProfile::~TAO_MProfile (void)
- {
- if (this->pfiles_)
- for (TAO_PHandle h = 0; h < last_; h++)
- if (this->pfiles_[h])
- this->pfiles_[h]->_decr_refcnt ();
-
- delete [] pfiles_;
- pfiles_ = 0;
-
-}
-
-// Cyclic get next. It will simply cycle through the complete list.
-
-ACE_INLINE TAO_Profile *
-TAO_MProfile::get_cnext (void)
-{
- if (last_ == 0)
- return 0;
-
- if (current_ == last_)
- current_ = 0;
-
- return pfiles_[current_++];
-}
-
-// This will return the next element until either null is found or the
-// end of list. It then continues to return NULL until rewind.
-
-ACE_INLINE TAO_Profile *
-TAO_MProfile::get_next (void)
-{
- // Nolist or EndOfList
- if (last_ == 0 || current_ == last_)
- return 0;
- else
- return pfiles_[current_++];
-}
-
-ACE_INLINE TAO_Profile *
-TAO_MProfile::get_cprev (void)
-{
- if (last_ == 0)
- return 0;
- else if (last_ == 1)
- current_=1;
- else if (current_ > 1)
- current_--;
- else // current_ == 0 or 1, 0 => list never read before and == 1
- current_ = last_;
-
- return pfiles_[current_ - 1];
-}
-
-ACE_INLINE TAO_Profile *
-TAO_MProfile::get_prev (void)
-{
- if (last_ == 0 || current_ <= 1)
- // No List of BeginningOfList
- return 0;
- if (current_ > 1)
- current_--;
-
- return pfiles_[current_ - 1];
-}
-
-// does not affect the current_ setting!
-
-ACE_INLINE TAO_Profile *
-TAO_MProfile::get_profile (TAO_PHandle handle)
-{
- if (handle < last_)
- return pfiles_[handle];
- else
- return 0;
-}
-
-ACE_INLINE TAO_Profile *
-TAO_MProfile::get_current_profile (void)
-{
- if (last_ == 0)
- return 0;
- if (current_ == 0)
- // means list has not been read before.
- current_ = 1;
-
- return pfiles_[current_ - 1];
-}
-
-ACE_INLINE TAO_PHandle
-TAO_MProfile::get_current_handle (void)
-{
- if (current_ > 0)
- return current_ - 1;
- else
- return 0;
-}
-
-ACE_INLINE void
-TAO_MProfile::rewind (void)
-{
- current_ = 0;
-}
-
-ACE_INLINE int
-TAO_MProfile::add_profile (TAO_Profile *pfile)
-{
- // skip by the used slots
- if (last_ == size_) // full!
- return -1;
-
- pfiles_[last_++] = pfile;
-
- if (pfile && pfile->_incr_refcnt () == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Unable to increment reference count in add_profile!\n"),
- -1);
- return last_ - 1;
-}
-
-ACE_INLINE int
-TAO_MProfile::give_profile (TAO_Profile *pfile)
-{
- // skip by the used slots
- if (last_ == size_) // full!
- return -1;
-
- pfiles_[last_++] = pfile;
-
- return last_ - 1;
-}
-
-ACE_INLINE
-void
-TAO_MProfile::forward_from (TAO_MProfile *from)
-{
- this->forward_from_ = from;
-}
-
-ACE_INLINE
-TAO_MProfile *
-TAO_MProfile::forward_from (void)
-{
- return this->forward_from_;
-}
-
-ACE_INLINE CORBA::ULong
-TAO_MProfile::profile_count (void) const
-{
- return this->last_;
-}
-
-ACE_INLINE const TAO_Profile*
-TAO_MProfile::get_profile (CORBA::ULong index) const
-{
- if (index >= this->last_)
- return 0;
- return this->pfiles_[index];
-}
-
-ACE_INLINE TAO_Profile_ptr *
-TAO_MProfile::pfiles (void) const
-{
- return this->pfiles_;
-}
-
-ACE_INLINE CORBA::Boolean
-TAO_MProfile::is_equivalent (TAO_MProfile *first,
- TAO_MProfile *second,
- CORBA::Environment &env)
-{
- // Two profile lists are equivalent iff at least one of the profiles
- // form the first list is_equivalent to at least one of the profiles
- // from the second list!!
- TAO_Profile_ptr *pfiles1 = first->pfiles ();
- TAO_Profile_ptr *pfiles2 = second->pfiles ();
- TAO_PHandle first_cnt = first->profile_count ();
- TAO_PHandle second_cnt = second->profile_count ();
-
- for (TAO_PHandle h1 = 0; h1 < first_cnt;h1++)
- for (TAO_PHandle h2 = 0; h2 < second_cnt; h2++ )
- if (pfiles1[h1]->is_equivalent (pfiles2[h2], env))
- return 1;
-
- return 0;
-}
-
-ACE_INLINE CORBA::ULong
-TAO_MProfile::hash (CORBA::ULong max, CORBA::Environment &env)
-{
- CORBA::ULong hashval = 0;
-
- if (last_ == 0)
- return 0;
-
- for (TAO_PHandle h=0; h < last_ ; h++)
- hashval += pfiles_[h]->hash (max, env);
-
- // The above hash function return an ULong between 0 and max here we
- // simply take the average value and round.
- return hashval / last_;
-}