ACE_Object_Node Class Reference

Keeps track of the symbol name for a shared object. More...

#include <Parse_Node.h>

Inheritance diagram for ACE_Object_Node:

Inheritance graph
[legend]
Collaboration diagram for ACE_Object_Node:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Object_Node (const ACE_TCHAR *pathname, const ACE_TCHAR *obj_name)
virtual void * symbol (ACE_Service_Gestalt *config, int &yyerrno, ACE_Service_Object_Exterminator *=0)
virtual ~ACE_Object_Node (void)
void dump (void) const
 Dump the state of an object.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Private Member Functions

 ACE_Object_Node (const ACE_Object_Node &)
ACE_Object_Nodeoperator= (const ACE_Object_Node &)

Private Attributes

const ACE_TCHARobject_name_
 Name of the object that we're parsing.


Detailed Description

Keeps track of the symbol name for a shared object.

Note:
This class is only meant for INTERNAL use by ACE.

For internal use only.

Definition at line 365 of file Parse_Node.h.


Constructor & Destructor Documentation

ACE_Object_Node::ACE_Object_Node const ACE_TCHAR pathname,
const ACE_TCHAR obj_name
 

Definition at line 451 of file Parse_Node.cpp.

References ACE_TCHAR, ACE_TRACE, and ACE_Location_Node::pathname().

00453   : object_name_ (ACE::strnew (obj_name))
00454 {
00455   ACE_TRACE ("ACE_Object_Node::ACE_Object_Node");
00456   this->pathname (ACE::strnew (path));
00457   this->must_delete_ = 0;
00458 }

ACE_Object_Node::~ACE_Object_Node void   )  [virtual]
 

Definition at line 492 of file Parse_Node.cpp.

References ACE_TRACE, and object_name_.

00493 {
00494   ACE_TRACE ("ACE_Object_Node::~ACE_Object_Node");
00495   delete[] const_cast<ACE_TCHAR *> (this->object_name_);
00496 }

ACE_Object_Node::ACE_Object_Node const ACE_Object_Node  )  [private]
 


Member Function Documentation

void ACE_Object_Node::dump void   )  const
 

Dump the state of an object.

Reimplemented from ACE_Location_Node.

Definition at line 444 of file Parse_Node.cpp.

References ACE_TRACE.

00445 {
00446 #if defined (ACE_HAS_DUMP)
00447   ACE_TRACE ("ACE_Object_Node::dump");
00448 #endif /* ACE_HAS_DUMP */
00449 }

ACE_Object_Node& ACE_Object_Node::operator= const ACE_Object_Node  )  [private]
 

void * ACE_Object_Node::symbol ACE_Service_Gestalt config,
int &  yyerrno,
ACE_Service_Object_Exterminator = 0
[virtual]
 

Will update the yyerrno member and/or corresponding configuration repository

Implements ACE_Location_Node.

Definition at line 461 of file Parse_Node.cpp.

References ACE_ERROR, ACE_LIB_TEXT, ACE_Service_Object_Exterminator, ACE_TCHAR, ACE_TRACE, ACE_DLL::error(), LM_ERROR, object_name_, ACE_Location_Node::open_dll(), and ACE_DLL::symbol().

00464 {
00465   ACE_TRACE ("ACE_Object_Node::symbol");
00466   if (this->open_dll (yyerrno) == 0)
00467     {
00468       ACE_TCHAR *object_name = const_cast<ACE_TCHAR *> (this->object_name_);
00469 
00470       this->symbol_ = this->dll_.symbol (object_name);
00471       if (this->symbol_ == 0)
00472         {
00473           ++yyerrno;
00474 
00475 #ifndef ACE_NLOGGING
00476           ACE_TCHAR *errmsg = this->dll_.error ();
00477           ACE_ERROR ((LM_ERROR,
00478                       ACE_LIB_TEXT ("DLL::symbol failed for object %s: %s\n"),
00479                       object_name,
00480                       errmsg ? errmsg : ACE_LIB_TEXT ("no error reported")));
00481 #endif /* ACE_NLOGGING */
00482 
00483           return 0;
00484         }
00485 
00486       return this->symbol_;
00487     }
00488 
00489   return 0;
00490 }


Member Data Documentation

ACE_Object_Node::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Reimplemented from ACE_Location_Node.

Definition at line 378 of file Parse_Node.h.

const ACE_TCHAR* ACE_Object_Node::object_name_ [private]
 

Name of the object that we're parsing.

Definition at line 382 of file Parse_Node.h.

Referenced by symbol(), and ~ACE_Object_Node().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:26:04 2006 for ACE by doxygen 1.3.6