summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer/Operation_Table_Linear_Search.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PortableServer/Operation_Table_Linear_Search.cpp')
-rw-r--r--TAO/tao/PortableServer/Operation_Table_Linear_Search.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/TAO/tao/PortableServer/Operation_Table_Linear_Search.cpp b/TAO/tao/PortableServer/Operation_Table_Linear_Search.cpp
new file mode 100644
index 00000000000..0ad27a2c2c8
--- /dev/null
+++ b/TAO/tao/PortableServer/Operation_Table_Linear_Search.cpp
@@ -0,0 +1,93 @@
+// $Id$
+
+#include "tao/PortableServer/Operation_Table_Linear_Search.h"
+#include "tao/Timeprobe.h"
+#include "ace/Log_Msg.h"
+
+ACE_RCSID(PortableServer,
+ Operation_Table_Linear_Searc,
+ "$Id$")
+
+#if defined (ACE_ENABLE_TIMEPROBES)
+
+static const char *TAO_Operation_Table_Timeprobe_Description[] =
+ {
+ "TAO_Linear_Search_OpTable::find - start",
+ "TAO_Linear_Search_OpTable::find - end",
+ };
+
+enum
+ {
+ // Timeprobe description table start key
+ TAO_LINEAR_SEARCH_OPTABLE_FIND_START = 602,
+ TAO_LINEAR_SEARCH_OPTABLE_FIND_END,
+ };
+
+// Setup Timeprobes
+ACE_TIMEPROBE_EVENT_DESCRIPTIONS (TAO_Operation_Table_Timeprobe_Description,
+ TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
+
+#endif /* ACE_ENABLE_TIMEPROBES */
+
+/***************************************************************/
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+TAO_Linear_Search_OpTable::~TAO_Linear_Search_OpTable (void)
+{
+}
+
+int
+TAO_Linear_Search_OpTable::bind (const char *,
+ const TAO::Operation_Skeletons )
+{
+ return 0;
+}
+
+int
+TAO_Linear_Search_OpTable::find (const char *opname,
+ TAO_Skeleton& skelfunc,
+ const unsigned int )
+{
+ ACE_FUNCTION_TIMEPROBE (TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
+
+ TAO_operation_db_entry const * const entry = lookup (opname);
+ if (entry == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("TAO_Linear_Search_Table:find failed\n")),
+ -1);
+
+ // Valid entry. Figure out the skel_ptr.
+ skelfunc = entry->skel_ptr;
+
+ return 0;
+}
+
+
+int
+TAO_Linear_Search_OpTable::find (const char *opname,
+ TAO_Collocated_Skeleton &skelfunc,
+ TAO::Collocation_Strategy st,
+ const unsigned int )
+{
+ ACE_FUNCTION_TIMEPROBE (TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
+
+ TAO_operation_db_entry const * const entry = lookup (opname);
+ if (entry == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("TAO_Linear_Search_Table:find failed\n")),
+ -1);
+
+ switch (st)
+ {
+ case TAO::TAO_CS_DIRECT_STRATEGY:
+ skelfunc = entry->direct_skel_ptr;
+ break;
+ default:
+ return -1;
+ }
+
+ return 0;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL