TAO_Linear_Search_OpTable Class Reference

Operation table lookup strategy based on linear search. Not efficient, but it works. More...

#include <Operation_Table_Linear_Search.h>

Inheritance diagram for TAO_Linear_Search_OpTable:

Inheritance graph
[legend]
Collaboration diagram for TAO_Linear_Search_OpTable:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ~TAO_Linear_Search_OpTable (void)
 Destructor.
virtual int find (const char *opname, TAO_Skeleton &skel_ptr, const unsigned int length=0)
 See the documentation in the base class for details.
virtual int find (const char *opname, TAO_Collocated_Skeleton &skelfunc, TAO::Collocation_Strategy s, const unsigned int length=0)
virtual int bind (const char *opname, const TAO::Operation_Skeletons skelptr)

Private Member Functions

virtual const TAO_operation_db_entrylookup (const char *str)=0

Detailed Description

Operation table lookup strategy based on linear search. Not efficient, but it works.

Definition at line 34 of file Operation_Table_Linear_Search.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Linear_Search_OpTable::~TAO_Linear_Search_OpTable ( void   ) 

Destructor.

Definition at line 36 of file Operation_Table_Linear_Search.cpp.

00037 {
00038 }


Member Function Documentation

int TAO_Linear_Search_OpTable::bind ( const char *  opname,
const TAO::Operation_Skeletons  skelptr 
) [virtual]

Associate the skeleton skel_ptr with an operation named opname. Returns -1 on failure, 0 on success, 1 on duplicate.

Implements TAO_Operation_Table.

Definition at line 41 of file Operation_Table_Linear_Search.cpp.

00043 {
00044   return 0;
00045 }

int TAO_Linear_Search_OpTable::find ( const char *  opname,
TAO_Collocated_Skeleton skelfunc,
TAO::Collocation_Strategy  s,
const unsigned int  length = 0 
) [virtual]

Uses opname to look up the collocated skeleton function and pass it back in skelfunc. Returns non-negative integer on success, or -1 on failure.

Implements TAO_Operation_Table.

Definition at line 68 of file Operation_Table_Linear_Search.cpp.

References ACE_ERROR_RETURN, ACE_FUNCTION_TIMEPROBE, ACE_TEXT(), TAO_operation_db_entry::direct_skel_ptr, LM_ERROR, lookup(), and TAO::TAO_CS_DIRECT_STRATEGY.

00072 {
00073   ACE_FUNCTION_TIMEPROBE (TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
00074 
00075   TAO_operation_db_entry const * const entry = lookup (opname);
00076   if (entry == 0)
00077     ACE_ERROR_RETURN ((LM_ERROR,
00078                        ACE_TEXT ("TAO_Linear_Search_Table:find failed\n")),
00079                       -1);
00080 
00081   switch (st)
00082     {
00083     case TAO::TAO_CS_DIRECT_STRATEGY:
00084       skelfunc = entry->direct_skel_ptr;
00085       break;
00086     default:
00087       return -1;
00088     }
00089 
00090   return 0;
00091 }

int TAO_Linear_Search_OpTable::find ( const char *  opname,
TAO_Skeleton skel_ptr,
const unsigned int  length = 0 
) [virtual]

See the documentation in the base class for details.

Implements TAO_Operation_Table.

Definition at line 48 of file Operation_Table_Linear_Search.cpp.

References ACE_ERROR_RETURN, ACE_FUNCTION_TIMEPROBE, ACE_TEXT(), LM_ERROR, lookup(), and TAO_operation_db_entry::skel_ptr.

00051 {
00052   ACE_FUNCTION_TIMEPROBE (TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
00053 
00054   TAO_operation_db_entry const * const entry = lookup (opname);
00055   if (entry == 0)
00056     ACE_ERROR_RETURN ((LM_ERROR,
00057                        ACE_TEXT ("TAO_Linear_Search_Table:find failed\n")),
00058                       -1);
00059 
00060   // Valid entry. Figure out the skel_ptr.
00061   skelfunc = entry->skel_ptr;
00062 
00063   return 0;
00064 }

virtual const TAO_operation_db_entry* TAO_Linear_Search_OpTable::lookup ( const char *  str  )  [private, pure virtual]

Referenced by find().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:41:29 2010 for TAO_PortableServer by  doxygen 1.4.7