ACE_Location_Node Class Reference

Keep track of where a shared library is located. More...

#include <Parse_Node.h>

Inheritance diagram for ACE_Location_Node:

Inheritance graph
[legend]
Collaboration diagram for ACE_Location_Node:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Location_Node (void)
const ACE_DLLdll (void)
const ACE_TCHARpathname (void) const
void pathname (const ACE_TCHAR *h)
int dispose (void) const
virtual ~ACE_Location_Node (void)
virtual void set_symbol (void *h)
virtual void * symbol (ACE_Service_Gestalt *cfgptr, int &yyerrno, ACE_Service_Object_Exterminator *=0)=0
void dump (void) const
 Dump the state of an object.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Protected Member Functions

int open_dll (int &yyerrno)

Protected Attributes

const ACE_TCHARpathname_
 Pathname to the shared library we are working on.

int must_delete_
ACE_DLL dll_
 The open shared library.

void * symbol_
 Symbol that we've obtained from the shared library.


Private Member Functions

 ACE_Location_Node (const ACE_Location_Node &)
ACE_Location_Nodeoperator= (const ACE_Location_Node &)

Detailed Description

Keep track of where a shared library is located.

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

For internal use only.

Definition at line 308 of file Parse_Node.h.


Constructor & Destructor Documentation

ACE_Location_Node::ACE_Location_Node void   ) 
 

Definition at line 363 of file Parse_Node.cpp.

References ACE_TRACE.

00364   : pathname_ (0),
00365     dll_ (),
00366     symbol_ (0)
00367 {
00368   ACE_TRACE ("ACE_Location_Node::ACE_Location_Node");
00369 }

ACE_Location_Node::~ACE_Location_Node void   )  [virtual]
 

Definition at line 371 of file Parse_Node.cpp.

References ACE_TRACE.

00372 {
00373   ACE_TRACE ("ACE_Location_Node::~ACE_Location_Node");
00374 }

ACE_Location_Node::ACE_Location_Node const ACE_Location_Node  )  [private]
 


Member Function Documentation

int ACE_Location_Node::dispose void   )  const
 

Definition at line 397 of file Parse_Node.cpp.

References ACE_TRACE, and must_delete_.

00398 {
00399   ACE_TRACE ("ACE_Location_Node::dispose");
00400   return this->must_delete_;
00401 }

const ACE_DLL & ACE_Location_Node::dll void   ) 
 

Definition at line 377 of file Parse_Node.cpp.

References dll_.

00378 {
00379   return this->dll_;
00380 }

void ACE_Location_Node::dump void   )  const
 

Dump the state of an object.

Reimplemented in ACE_Object_Node, ACE_Function_Node, and ACE_Static_Function_Node.

Definition at line 356 of file Parse_Node.cpp.

References ACE_TRACE.

00357 {
00358 #if defined (ACE_HAS_DUMP)
00359   ACE_TRACE ("ACE_Location_Node::dump");
00360 #endif /* ACE_HAS_DUMP */
00361 }

int ACE_Location_Node::open_dll int &  yyerrno  )  [protected]
 

Definition at line 404 of file Parse_Node.cpp.

References ACE_DEBUG, ACE_ERROR, ACE_LIB_TEXT, ACE_TCHAR, ACE_TRACE, ACE::debug(), dll_, ACE_DLL::error(), LM_DEBUG, LM_ERROR, and ACE_DLL::open().

Referenced by ACE_Function_Node::symbol(), and ACE_Object_Node::symbol().

00405 {
00406   ACE_TRACE ("ACE_Location_Node::open_dll");
00407 
00408 #ifndef ACE_NLOGGING
00409   if (ACE::debug ())
00410     ACE_DEBUG ((LM_DEBUG,
00411                 ACE_LIB_TEXT ("(%P|%t) LN::open_dll - path=%s\n"),
00412                 this->pathname ()));
00413 #endif /* ACE_NLOGGING */
00414 
00415   if (-1 == this->dll_.open (this->pathname ()))
00416     {
00417       ++yyerrno;
00418 
00419 #ifndef ACE_NLOGGING
00420       ACE_TCHAR *errmsg = this->dll_.error ();
00421       ACE_ERROR ((LM_ERROR,
00422                   ACE_LIB_TEXT ("(%P|%t) LN - DLL::open failed for %s: %s\n"),
00423                   this->pathname (),
00424                   errmsg ? errmsg : ACE_LIB_TEXT ("no error reported")));
00425 #endif /* ACE_NLOGGING */
00426 
00427       return -1;
00428     }
00429 
00430   return 0;
00431 
00432 }

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

void ACE_Location_Node::pathname const ACE_TCHAR h  ) 
 

Definition at line 390 of file Parse_Node.cpp.

References ACE_TCHAR, ACE_TRACE, and pathname_.

00391 {
00392   ACE_TRACE ("ACE_Location_Node::pathname");
00393   this->pathname_ = p;
00394 }

const ACE_TCHAR * ACE_Location_Node::pathname void   )  const
 

Definition at line 383 of file Parse_Node.cpp.

References ACE_TRACE, and pathname_.

Referenced by ACE_Function_Node::ACE_Function_Node(), and ACE_Object_Node::ACE_Object_Node().

00384 {
00385   ACE_TRACE ("ACE_Location_Node::pathname");
00386   return this->pathname_;
00387 }

void ACE_Location_Node::set_symbol void *  h  )  [virtual]
 

Definition at line 435 of file Parse_Node.cpp.

References ACE_TRACE, and symbol_.

00436 {
00437   ACE_TRACE ("ACE_Location_Node::set_symbol");
00438   this->symbol_ = s;
00439 }

virtual void* ACE_Location_Node::symbol ACE_Service_Gestalt cfgptr,
int &  yyerrno,
ACE_Service_Object_Exterminator = 0
[pure virtual]
 

Will update the yyerrno member and/or corresponding configuration repository

Implemented in ACE_Object_Node, ACE_Function_Node, and ACE_Static_Function_Node.


Member Data Documentation

ACE_Location_Node::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Reimplemented in ACE_Object_Node, ACE_Function_Node, and ACE_Static_Function_Node.

Definition at line 330 of file Parse_Node.h.

ACE_DLL ACE_Location_Node::dll_ [protected]
 

The open shared library.

Definition at line 346 of file Parse_Node.h.

Referenced by dll(), and open_dll().

int ACE_Location_Node::must_delete_ [protected]
 

Flag indicating whether the Service_Object generated by this Location Node should be deleted or not (ACE_Service_Type::DELETE_OBJ.)

Definition at line 343 of file Parse_Node.h.

Referenced by dispose().

const ACE_TCHAR* ACE_Location_Node::pathname_ [protected]
 

Pathname to the shared library we are working on.

Definition at line 336 of file Parse_Node.h.

Referenced by pathname().

void* ACE_Location_Node::symbol_ [protected]
 

Symbol that we've obtained from the shared library.

Definition at line 349 of file Parse_Node.h.

Referenced by set_symbol().


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