diff options
Diffstat (limited to 'ace/Parse_Node.cpp')
-rw-r--r-- | ace/Parse_Node.cpp | 711 |
1 files changed, 0 insertions, 711 deletions
diff --git a/ace/Parse_Node.cpp b/ace/Parse_Node.cpp deleted file mode 100644 index ea5a420c91e..00000000000 --- a/ace/Parse_Node.cpp +++ /dev/null @@ -1,711 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/Service_Config.h" -#include "ace/Service_Repository.h" -#include "ace/Task.h" -#include "ace/Parse_Node.h" - -// Provide the class hierarchy that defines the parse tree of Service -// Nodes. - -#if !defined (__ACE_INLINE__) -#include "ace/Parse_Node.i" -#endif /* ____ */ - -ACE_RCSID(ace, Parse_Node, "$Id$") - -// Keeps track of the number of errors encountered so far. -extern int ace_yyerrno; - -// Global variable used to communicate between the parser and the main -// program. -extern ACE_Service_Config *ace_this_svc; - -ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Node) - -void -ACE_Stream_Node::dump (void) const -{ - ACE_TRACE ("ACE_Stream_Node::dump"); -} - -void -ACE_Stream_Node::apply (void) -{ - ACE_TRACE ("ACE_Stream_Node::apply"); - - if (ACE_Service_Config::initialize (this->node_->record (), - this->node_->parameters ()) == -1) - ace_yyerrno++; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did stream on %s, error = %d\n"), - this->node_->name (), - ace_yyerrno)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Parse_Node) - -void -ACE_Parse_Node::dump (void) const -{ - ACE_TRACE ("ACE_Parse_Node::dump"); -} - -const ASYS_TCHAR * -ACE_Parse_Node::name (void) const -{ - ACE_TRACE ("ACE_Parse_Node::name"); - return this->name_; -} - -ACE_Parse_Node * -ACE_Parse_Node::link (void) const -{ - ACE_TRACE ("ACE_Parse_Node::link"); - return this->next_; -} - -void -ACE_Parse_Node::link (ACE_Parse_Node *n) -{ - ACE_TRACE ("ACE_Parse_Node::link"); - this->next_ = n; -} - -ACE_Stream_Node::ACE_Stream_Node (const ACE_Static_Node *str_ops, - const ACE_Parse_Node *str_mods) -#if defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) - : ACE_Parse_Node (str_ops == 0 ? ACE_static_cast (ASYS_TCHAR *, - ASYS_TEXT ("<unknown>")) - : ACE_static_cast (ASYS_TCHAR *, - str_ops->name ())), -#else - : ACE_Parse_Node ((str_ops == 0 ? ASYS_TEXT ("<unknown>") : str_ops->name ())), -#endif /* defined (ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS) */ - node_ (str_ops), - mods_ (str_mods) -{ - ACE_TRACE ("ACE_Stream_Node::ACE_Stream_Node"); -} - - -ACE_Stream_Node::~ACE_Stream_Node (void) -{ - ACE_TRACE ("ACE_Stream_Node::~ACE_Stream_Node"); - ACE_Static_Node *n = ACE_const_cast (ACE_Static_Node *, - this->node_); - delete n; - ACE_Parse_Node *m = ACE_const_cast (ACE_Parse_Node *, - this->mods_); - delete m; -} - -ACE_Parse_Node::ACE_Parse_Node (void) - : name_ (0), - next_ (0) -{ - ACE_TRACE ("ACE_Parse_Node::ACE_Parse_Node"); -} - - -ACE_Parse_Node::ACE_Parse_Node (const ASYS_TCHAR *nm) - : name_ (nm ? ACE::strnew (nm) : 0), - next_ (0) -{ - ACE_TRACE ("ACE_Parse_Node::ACE_Parse_Node"); -} - -void -ACE_Parse_Node::print (void) const -{ - ACE_TRACE ("ACE_Parse_Node::print"); - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("svc = %s\n"), - this->name ())); - - if (this->next_) - this->next_->print (); -} - - -ACE_Parse_Node::~ACE_Parse_Node (void) -{ - ACE_TRACE ("ACE_Parse_Node::~ACE_Parse_Node"); - delete ACE_const_cast (ASYS_TCHAR*, this->name_); - delete this->next_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Suspend_Node) - -void -ACE_Suspend_Node::dump (void) const -{ - ACE_TRACE ("ACE_Suspend_Node::dump"); -} - -ACE_Suspend_Node::ACE_Suspend_Node (const ASYS_TCHAR *name) - : ACE_Parse_Node (name) -{ - ACE_TRACE ("ACE_Suspend_Node::ACE_Suspend_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Resume_Node) - -void -ACE_Resume_Node::dump (void) const -{ - ACE_TRACE ("ACE_Resume_Node::dump"); -} - -ACE_Resume_Node::ACE_Resume_Node (const ASYS_TCHAR *name) - : ACE_Parse_Node (name) -{ - ACE_TRACE ("ACE_Resume_Node::ACE_Resume_Node"); -} - -void -ACE_Suspend_Node::apply (void) -{ - ACE_TRACE ("ACE_Suspend_Node::apply"); - - if (ACE_Service_Config::suspend (this->name ()) == -1) - ace_yyerrno++; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did suspend on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -void -ACE_Resume_Node::apply (void) -{ - ACE_TRACE ("ACE_Resume_Node::apply"); - if (ACE_Service_Config::resume (this->name ()) == -1) - ace_yyerrno++; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did resume on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Remove_Node) - -void -ACE_Remove_Node::dump (void) const -{ - ACE_TRACE ("ACE_Remove_Node::dump"); -} - -ACE_Remove_Node::ACE_Remove_Node (const ASYS_TCHAR *name) - : ACE_Parse_Node (name) -{ - ACE_TRACE ("ACE_Remove_Node::ACE_Remove_Node"); -} - -void -ACE_Remove_Node::apply (void) -{ - ACE_TRACE ("ACE_Remove_Node::apply"); - if (ACE_Service_Config::remove (this->name ()) == -1) - ace_yyerrno++; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did remove on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_Dynamic_Node::ACE_Dynamic_Node (const ACE_Service_Type *sr, - ASYS_TCHAR *parms) - : ACE_Static_Node (sr->name (), parms), - record_ (sr) -{ - ACE_TRACE ("ACE_Dynamic_Node::ACE_Dynamic_Node"); -} - -const ACE_Service_Type * -ACE_Dynamic_Node::record (void) const -{ - ACE_TRACE ("ACE_Dynamic_Node::record"); - return this->record_; -} - -void -ACE_Dynamic_Node::apply (void) -{ - ACE_TRACE ("ACE_Dynamic_Node::apply"); - - if (ACE_Service_Config::initialize (this->record (), - this->parameters ()) == -1) - ace_yyerrno++; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did dynamic on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Dynamic_Node) - -void -ACE_Dynamic_Node::dump (void) const -{ - ACE_TRACE ("ACE_Dynamic_Node::dump"); -} - -ACE_Dynamic_Node::~ACE_Dynamic_Node (void) -{ - ACE_TRACE ("ACE_Dynamic_Node::~ACE_Dynamic_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Static_Node) - -void -ACE_Static_Node::dump (void) const -{ - ACE_TRACE ("ACE_Static_Node::dump"); -} - -ACE_Static_Node::ACE_Static_Node (const ASYS_TCHAR *nm, - ASYS_TCHAR *params) - : ACE_Parse_Node (nm), - parameters_ (params ? ACE::strnew (params) : 0) -{ - ACE_TRACE ("ACE_Static_Node::ACE_Static_Node"); -} - -const ACE_Service_Type * -ACE_Static_Node::record (void) const -{ - ACE_TRACE ("ACE_Static_Node::record"); - ACE_Service_Type *sr; - - if (ACE_Service_Repository::instance()->find - (this->name (), - (const ACE_Service_Type **) &sr) == -1) - return 0; - else - return sr; -} - -ASYS_TCHAR * -ACE_Static_Node::parameters (void) const -{ - ACE_TRACE ("ACE_Static_Node::parameters"); - return this->parameters_; -} - -void -ACE_Static_Node::apply (void) -{ - ACE_TRACE ("ACE_Static_Node::apply"); - if (ACE_Service_Config::initialize (this->name (), - this->parameters ()) == -1) - ace_yyerrno++; - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did static on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_Static_Node::~ACE_Static_Node (void) -{ - ACE_TRACE ("ACE_Static_Node::~ACE_Static_Node"); - delete this->parameters_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Location_Node) - -void -ACE_Location_Node::dump (void) const -{ - ACE_TRACE ("ACE_Location_Node::dump"); -} - -ACE_Location_Node::ACE_Location_Node (void) - : pathname_ (0), - handle_ (0), - symbol_ (0) -{ - ACE_TRACE ("ACE_Location_Node::ACE_Location_Node"); -} - -ACE_Location_Node::~ACE_Location_Node (void) -{ - ACE_TRACE ("ACE_Location_Node::~ACE_Location_Node"); -} - -const ASYS_TCHAR * -ACE_Location_Node::pathname (void) const -{ - ACE_TRACE ("ACE_Location_Node::pathname"); - return this->pathname_; -} - -void -ACE_Location_Node::pathname (const ASYS_TCHAR *p) -{ - ACE_TRACE ("ACE_Location_Node::pathname"); - this->pathname_ = p; -} - -void -ACE_Location_Node::handle (const ACE_SHLIB_HANDLE h) -{ - ACE_TRACE ("ACE_Location_Node::handle"); - this->handle_ = h; -} - -ACE_SHLIB_HANDLE -ACE_Location_Node::handle (void) const -{ - ACE_TRACE ("ACE_Location_Node::handle"); - return this->handle_; -} - -void -ACE_Location_Node::set_symbol (void *s) -{ - ACE_TRACE ("ACE_Location_Node::set_symbol"); - this->symbol_ = s; -} - -int -ACE_Location_Node::dispose (void) const -{ - ACE_TRACE ("ACE_Location_Node::dispose"); - return this->must_delete_; -} - -ACE_SHLIB_HANDLE -ACE_Location_Node::open_handle (void) -{ - ACE_TRACE ("ACE_Location_Node::open_handle"); - - ASYS_TCHAR dl_pathname[MAXPATHLEN + 1]; - - // Transform the pathname into the appropriate dynamic link library - // by searching the ACE_LD_SEARCH_PATH. - int result = ACE::ldfind (this->pathname (), - dl_pathname, - (sizeof dl_pathname / sizeof (ASYS_TCHAR))); - - // Check for errors - if (result != 0) - return 0; - - // Set the handle - this->handle (ACE_OS::dlopen (dl_pathname)); - - if (this->handle () == 0) - { - ace_yyerrno++; - - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("dlopen failed for %s"), - dl_pathname)); - - ASYS_TCHAR *errmsg = ACE_OS::dlerror (); - - if (errmsg != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT (": %s\n"), - errmsg), - 0); - else - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("\n")), - 0); - } - else - return this->handle (); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Object_Node) - -void -ACE_Object_Node::dump (void) const -{ - ACE_TRACE ("ACE_Object_Node::dump"); -} - -ACE_Object_Node::ACE_Object_Node (const ASYS_TCHAR *path, - const ASYS_TCHAR *obj_name) - : object_name_ (obj_name ? ACE::strnew (obj_name) : 0) -{ - ACE_TRACE ("ACE_Object_Node::ACE_Object_Node"); - this->pathname (path ? ACE::strnew (path) : 0); - this->must_delete_ = 0; -} - -void * -ACE_Object_Node::symbol (ACE_Service_Object_Exterminator *) -{ - ACE_TRACE ("ACE_Object_Node::symbol"); - if (this->open_handle () != 0) - { - ASYS_TCHAR *object_name = ACE_const_cast (ASYS_TCHAR *, this->object_name_); - - this->symbol_ = (void *) - ACE_OS::dlsym ((ACE_SHLIB_HANDLE) this->handle (), - ASYS_ONLY_MULTIBYTE_STRING (object_name)); - - if (this->symbol_ == 0) - { - ace_yyerrno++; - - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("dlsym failed for object %s\n"), - object_name)); - - ASYS_TCHAR *errmsg = ACE_OS::dlerror (); - - if (errmsg != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT (": %s\n"), - errmsg), - 0); - else - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("\n")), - 0); - } - return this->symbol_; - } - - return 0; -} - -ACE_Object_Node::~ACE_Object_Node (void) -{ - ACE_TRACE ("ACE_Object_Node::~ACE_Object_Node"); - delete ACE_const_cast (ASYS_TCHAR *, this->object_name_); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Function_Node) - -void -ACE_Function_Node::dump (void) const -{ - ACE_TRACE ("ACE_Function_Node::dump"); -} - -ACE_Function_Node::ACE_Function_Node (const ASYS_TCHAR *path, - const ASYS_TCHAR *func_name) - : function_name_ (func_name ? ACE::strnew (func_name) : 0) -{ - ACE_TRACE ("ACE_Function_Node::ACE_Function_Node"); - this->pathname (path); - this->must_delete_ = 1; -} - -void * -ACE_Function_Node::symbol (ACE_Service_Object_Exterminator *gobbler) -{ - ACE_TRACE ("ACE_Function_Node::symbol"); - if (this->open_handle () != 0) - { - void *(*func) (ACE_Service_Object_Exterminator *) = 0; - this->symbol_ = 0; - - // Locate the factory function <function_name> in the shared - // object. - - ASYS_TCHAR *function_name = ACE_const_cast (ASYS_TCHAR *, - this->function_name_); - - // According to the new ANSI C++ specification, casting a void* - // pointer to a function pointer is not allowed. However, - // casting a void* pointer to an integer type that is large - // enough to hold the pointer value is legal. I (Nanbor) chose - // to cast the return value to long since it should be large - // enough to hold the void* pointer's value on most platforms. - // I am not sure if casting a long value to a function pointer - // is legal or not (can't find a good explanation in spec) but - // SunC++, egcs, and KAI compilers, all of which are pretty - // close to (or, at least claim to conform with) the standard - // did not complain about this as an illegal pointer conversion. - long temp_ptr = - ACE_reinterpret_cast(long, - ACE_OS::dlsym ((ACE_SHLIB_HANDLE) this->handle (), - ASYS_ONLY_MULTIBYTE_STRING (function_name))); - func = ACE_reinterpret_cast(void *(*)(ACE_Service_Object_Exterminator *), - temp_ptr); - - if (func == 0) - { - ace_yyerrno++; - - if (this->symbol_ == 0) - { - ace_yyerrno++; - - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("dlsym failed for function %s\n"), - function_name)); - - ASYS_TCHAR *errmsg = ACE_OS::dlerror (); - - if (errmsg != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT (": %s\n"), - errmsg), - 0); - else - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("\n")), - 0); - } - } - // Invoke the factory function and record it's return value. - this->symbol_ = (*func) (gobbler); - - if (this->symbol_ == 0) - { - ace_yyerrno++; - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - this->function_name_), - 0); - } - } - return this->symbol_; -} - -ACE_Function_Node::~ACE_Function_Node (void) -{ - ACE_TRACE ("ACE_Function_Node::~ACE_Function_Node"); - delete ACE_const_cast (ASYS_TCHAR *, function_name_); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Dummy_Node) - -void -ACE_Dummy_Node::dump (void) const -{ - ACE_TRACE ("ACE_Dummy_Node::dump"); -} - -ACE_Dummy_Node::ACE_Dummy_Node (const ACE_Static_Node *static_node, - const ACE_Parse_Node *str_mods) - : ACE_Parse_Node (static_node->name ()), - node_ (static_node), - mods_ (str_mods) -{ - ACE_TRACE ("ACE_Dummy_Node::ACE_Dummy_Node"); -} - -void -ACE_Dummy_Node::apply (void) -{ - ACE_TRACE ("ACE_Dummy_Node::apply"); - - if (ACE::debug ()) - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did operations on stream %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_Dummy_Node::~ACE_Dummy_Node (void) -{ - ACE_TRACE ("ACE_Dummy_Node::~ACE_Dummy_Node"); - ACE_Static_Node *n = ACE_const_cast (ACE_Static_Node *, - this->node_); - delete n; - ACE_Parse_Node *m = ACE_const_cast (ACE_Parse_Node *, - this->mods_); - delete m; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Static_Function_Node) - -void -ACE_Static_Function_Node::dump (void) const -{ - ACE_TRACE ("ACE_Static_Function_Node::dump"); -} - -ACE_Static_Function_Node::ACE_Static_Function_Node (const ASYS_TCHAR *func_name) - : function_name_ (func_name ? ACE::strnew (func_name) : 0) -{ - ACE_TRACE ("ACE_Static_Function_Node::ACE_Static_Function_Node"); - this->must_delete_ = 1; -} - -void * -ACE_Static_Function_Node::symbol (ACE_Service_Object_Exterminator *gobbler) -{ - ACE_TRACE ("ACE_Static_Function_Node::symbol"); - - void *(*func)(ACE_Service_Object_Exterminator *) = 0; - this->symbol_ = 0; - - // Locate the factory function <function_name> in the statically - // linked svcs. - - ACE_Static_Svc_Descriptor **ssdp = 0; - ACE_STATIC_SVCS &svcs = *ACE_Service_Config::static_svcs (); - ASYS_TCHAR *function_name = ACE_const_cast (ASYS_TCHAR *, this->function_name_); - - for (ACE_STATIC_SVCS_ITERATOR iter (svcs); - iter.next (ssdp) != 0; - iter.advance ()) - { - ACE_Static_Svc_Descriptor *ssd = *ssdp; - if (ACE_OS::strcmp (ssd->name_, - function_name) == 0) - func = (void *(*)(ACE_Service_Object_Exterminator*)) ssd->alloc_; - } - - if (func == 0) - { - ace_yyerrno++; - - if (this->symbol_ == 0) - { - ace_yyerrno++; - - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("no static service registered for function %s\n"), - function_name), - 0); - } - } - - // Invoke the factory function and record it's return value. - this->symbol_ = (*func) (gobbler); - - if (this->symbol_ == 0) - { - ace_yyerrno++; - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - this->function_name_), - 0); - } - - return this->symbol_; -} - -ACE_Static_Function_Node::~ACE_Static_Function_Node (void) -{ - ACE_TRACE ("ACE_Static_Function_Node::~ACE_Static_Function_Node"); - delete ACE_const_cast (ASYS_TCHAR *, this->function_name_); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |