Public Types | Public Member Functions | Private Attributes

TAO_ESF_Proxy_List< PROXY > Class Template Reference

A concrete proxy collection. More...

#include <ESF_Proxy_List.h>

Collaboration diagram for TAO_ESF_Proxy_List< PROXY >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef ACE_Unbounded_Set
< PROXY * > 
Implementation
 A typedef for the underlying implementaiton class.
typedef
ACE_Unbounded_Set_Iterator
< PROXY * > 
Iterator
 A typedef for the underlying iterator.

Public Member Functions

 TAO_ESF_Proxy_List (void)
 Constructor.
ACE_Unbounded_Set_Iterator
< PROXY * > 
begin (void)
ACE_Unbounded_Set_Iterator
< PROXY * > 
end (void)
 Return one past the last element in the collection.
size_t size (void) const
 Return the number of elements in the collection.
void connected (PROXY *)
 Insert a new element to the collection.
void reconnected (PROXY *)
 Insert a new element that could be there already.
void disconnected (PROXY *)
 Remove an element from the collection.
void shutdown (void)

Private Attributes

ACE_Unbounded_Set< PROXY * > impl_
 The underlying implementation object.

Detailed Description

template<class PROXY>
class TAO_ESF_Proxy_List< PROXY >

A concrete proxy collection.

Based on the ACE_Unbounded_Set<> collection, used a double linked list internally.

Definition at line 33 of file ESF_Proxy_List.h.


Member Typedef Documentation

template<class PROXY >
typedef ACE_Unbounded_Set<PROXY*> TAO_ESF_Proxy_List< PROXY >::Implementation

A typedef for the underlying implementaiton class.

Definition at line 37 of file ESF_Proxy_List.h.

template<class PROXY >
typedef ACE_Unbounded_Set_Iterator<PROXY*> TAO_ESF_Proxy_List< PROXY >::Iterator

A typedef for the underlying iterator.

Definition at line 40 of file ESF_Proxy_List.h.


Constructor & Destructor Documentation

template<class PROXY >
TAO_ESF_Proxy_List< PROXY >::TAO_ESF_Proxy_List ( void   ) 

Constructor.

Definition at line 15 of file ESF_Proxy_List.cpp.

{
}


Member Function Documentation

template<class PROXY >
ACE_Unbounded_Set_Iterator< PROXY * > TAO_ESF_Proxy_List< PROXY >::begin ( void   ) 

Return the first element in the collection, or end() if there are none

Definition at line 8 of file ESF_Proxy_List.inl.

{
  return this->impl_.begin ();
}

template<class PROXY >
void TAO_ESF_Proxy_List< PROXY >::connected ( PROXY *  proxy  ) 

Insert a new element to the collection.

Definition at line 20 of file ESF_Proxy_List.cpp.

{
  int r = this->impl_.insert (proxy);
  if (r == 0)
    return;

  if (r == 1)
    {
      // @@ Already there, throw some user exception..
      proxy->_decr_refcnt ();
    }
  if (r == -1)
    {
      // @@ Cannot insert, running out of memory? throw some other
      // user exception
      proxy->_decr_refcnt ();
    }
}

template<class PROXY >
void TAO_ESF_Proxy_List< PROXY >::disconnected ( PROXY *  proxy  ) 

Remove an element from the collection.

Definition at line 64 of file ESF_Proxy_List.cpp.

{
  int r = this->impl_.remove (proxy);
  if (r != 0)
    {
      // @@ Cannot remove, throw some other
      // user exception
      return;
    }
  proxy->_decr_refcnt ();
}

template<class PROXY >
ACE_Unbounded_Set_Iterator< PROXY * > TAO_ESF_Proxy_List< PROXY >::end ( void   ) 

Return one past the last element in the collection.

Definition at line 14 of file ESF_Proxy_List.inl.

{
  return this->impl_.end ();
}

template<class PROXY >
void TAO_ESF_Proxy_List< PROXY >::reconnected ( PROXY *  proxy  ) 

Insert a new element that could be there already.

Definition at line 40 of file ESF_Proxy_List.cpp.

{
  int r = this->impl_.insert (proxy);
  if (r == 0)
    return;

  if (r == 1)
    {
      // Reference count is incremented by the callers to [re]connected.
      // @@ Find out if the protocol could be simplified, and decoupling
      //    increased.
      proxy->_decr_refcnt ();
      return;
    }

  if (r == -1)
    {
      // @@ Cannot insert, running out of memory? throw some other
      // user exception
      proxy->_decr_refcnt ();
    }
}

template<class PROXY >
void TAO_ESF_Proxy_List< PROXY >::shutdown ( void   ) 

Shutdown the collection, i.e. remove all elements and release resources

Definition at line 77 of file ESF_Proxy_List.cpp.

{
  Iterator end = this->impl_.end ();
  for (Iterator i = this->impl_.begin (); i != end; ++i)
    {
      // Decrement reference count
      (*i)->_decr_refcnt ();
    }
  this->impl_.reset ();
}

template<class PROXY >
size_t TAO_ESF_Proxy_List< PROXY >::size ( void   )  const

Return the number of elements in the collection.

Definition at line 20 of file ESF_Proxy_List.inl.

{
  return this->impl_.size ();
}


Member Data Documentation

template<class PROXY >
ACE_Unbounded_Set<PROXY*> TAO_ESF_Proxy_List< PROXY >::impl_ [private]

The underlying implementation object.

Definition at line 70 of file ESF_Proxy_List.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines