00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Operation_Table_Linear_Search.h 00006 * 00007 * $Id: Operation_Table_Linear_Search.h 71473 2006-03-10 07:19:20Z jtc $ 00008 * 00009 * @author Aniruddha Gokhale 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_OPERATION_TABLE_LINEAR_SEARCH_H 00014 #define TAO_OPERATION_TABLE_LINEAR_SEARCH_H 00015 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/PortableServer/portableserver_export.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "tao/PortableServer/Operation_Table.h" 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 /** 00029 * @class TAO_Linear_Search_OpTable 00030 * 00031 * @brief Operation table lookup strategy based on 00032 * linear search. Not efficient, but it works. 00033 */ 00034 class TAO_PortableServer_Export TAO_Linear_Search_OpTable 00035 : public TAO_Operation_Table 00036 { 00037 public: 00038 // = Initialization and termination methods. 00039 00040 /// Destructor. 00041 ~TAO_Linear_Search_OpTable (void); 00042 00043 /// See the documentation in the base class for details. 00044 virtual int find (const char *opname, 00045 TAO_Skeleton &skel_ptr, 00046 const unsigned int length = 0); 00047 00048 virtual int find (const char *opname, 00049 TAO_Collocated_Skeleton &skelfunc, 00050 TAO::Collocation_Strategy s, 00051 const unsigned int length = 0); 00052 00053 virtual int bind (const char *opname, 00054 const TAO::Operation_Skeletons skelptr); 00055 00056 private: 00057 // = Method that should defined by the subclasses. GPERF program 00058 // will generate this routine routines. 00059 virtual const TAO_operation_db_entry* lookup (const char *str) = 0; 00060 }; 00061 00062 TAO_END_VERSIONED_NAMESPACE_DECL 00063 00064 #include /**/ "ace/post.h" 00065 #endif /* TAO_OPERATION_TABLE_LINEAR_SEARCH_H */