Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

VM::VMLinker::SymbolProvideMap Class Reference

Internally used to create a map of all provided symbols. More...

#include <linker.h>

Collaboration diagram for VM::VMLinker::SymbolProvideMap:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SymbolProvideMap ()
 Create empty map.

 ~SymbolProvideMap ()
 Destructor cleans up map.

NamespaceInfo::SymbolEntryEAddNode (NamespaceInfo::SymbolEntryE *s)
 Add a symbol to the symbol map table.

NamespaceInfo::SymbolEntryElookup (NamespaceInfo::SymbolEntryE *symb)
 Perform lookup in map table.

void clear ()
 Clear map table (all information is simply purged).


Private Member Functions

 SymbolProvideMap (const SymbolProvideMap &)
 Do not use.

void operator= (const SymbolProvideMap &)
 Do not use.


Private Attributes

TLBTree< NamespaceInfo::SymbolEntryE *,
ProvideMapOP< NamespaceInfo::SymbolEntryE * > > 
map

Detailed Description

Internally used to create a map of all provided symbols.

Author:
Wolfgang Wieser ] wwieser (a) gmx <*> de [
The map is sorted first by name then by the linked (!) namespace info pointer. Hence, duplicate symbols are detected upon insertion.

NOT C++-safe.

Definition at line 156 of file linker.h.


Constructor & Destructor Documentation

VM::VMLinker::SymbolProvideMap::SymbolProvideMap const SymbolProvideMap  )  [private]
 

Do not use.

VM::VMLinker::SymbolProvideMap::SymbolProvideMap  )  [inline]
 

Create empty map.

Definition at line 168 of file linker.h.

References map.

VM::VMLinker::SymbolProvideMap::~SymbolProvideMap  )  [inline]
 

Destructor cleans up map.

Definition at line 170 of file linker.h.


Member Function Documentation

NamespaceInfo::SymbolEntryE * VM::VMLinker::SymbolProvideMap::AddNode NamespaceInfo::SymbolEntryE s  ) 
 

Add a symbol to the symbol map table.

Returns NULL on success or already known entry.

Definition at line 28 of file linker.cc.

References Assert, and map.

Referenced by VM::VMLinker::_GenerateSymbolProvideMap(), and VM::VMLinker::_GenerateSymbolProvideMap_AddGlobal().

void VM::VMLinker::SymbolProvideMap::clear  )  [inline]
 

Clear map table (all information is simply purged).

Definition at line 199 of file linker.h.

References map.

Referenced by VM::VMLinker::_GenerateSymbolProvideMap(), and VM::VMLinker::LinkAll().

NamespaceInfo::SymbolEntryE* VM::VMLinker::SymbolProvideMap::lookup NamespaceInfo::SymbolEntryE symb  )  [inline]
 

Perform lookup in map table.

Note that for the lookup, symb->name and symb->linked->nspc are used and NOT the symb pointer itself. You hence may not loop up symbols from the master tree (which have linked=NULL).

If the symbol is found, a pointer is returned, otherwise NULL is returned.

Definition at line 191 of file linker.h.

References map.

Referenced by VM::VMLinker::LinkAll().

void VM::VMLinker::SymbolProvideMap::operator= const SymbolProvideMap  )  [private]
 

Do not use.


Member Data Documentation

TLBTree< NamespaceInfo::SymbolEntryE*, ProvideMapOP<NamespaceInfo::SymbolEntryE*> > VM::VMLinker::SymbolProvideMap::map [private]
 

Definition at line 160 of file linker.h.

Referenced by AddNode(), clear(), lookup(), and SymbolProvideMap().


The documentation for this class was generated from the following files:
Generated on Sat Feb 19 22:36:26 2005 for Ray by doxygen 1.3.5