My Project
Classes | Public Member Functions | List of all members
ConstantPoolInternal Class Reference

An implementation of the ConstantPool interface storing records internally in RAM. More...

#include <cpool.hh>

Inheritance diagram for ConstantPoolInternal:
Inheritance graph
[legend]
Collaboration diagram for ConstantPoolInternal:
Collaboration graph
[legend]

Public Member Functions

virtual const CPoolRecordgetRecord (const vector< uintb > &refs) const
 Retrieve a constant pool record (CPoolRecord) given a reference to it. More...
 
virtual bool empty (void) const
 Is the container empty of records.
 
virtual void clear (void)
 Release any (local) resources.
 
virtual void saveXml (ostream &s) const
 Save all records in this container to an XML stream. More...
 
virtual void restoreXml (const Element *el, TypeFactory &typegrp)
 Restore constant pool records from an XML stream. More...
 
- Public Member Functions inherited from ConstantPool
virtual ~ConstantPool ()
 Destructor.
 
void putRecord (const vector< uintb > &refs, uint4 tag, const string &tok, Datatype *ct)
 A a new constant pool record to this database. More...
 
const CPoolRecordrestoreXmlRecord (const vector< uintb > &refs, const Element *el, TypeFactory &typegrp)
 Restore a CPoolRecord given a reference and an XML stream. More...
 

Detailed Description

An implementation of the ConstantPool interface storing records internally in RAM.

The CPoolRecord objects are held directly in a map container. This class can be used as a stand-alone ConstantPool that holds all its records in RAM. Or, it can act as a local CPoolRecord cache for some other implementation.

Member Function Documentation

◆ getRecord()

const CPoolRecord * ConstantPoolInternal::getRecord ( const vector< uintb > &  refs) const
virtual

Retrieve a constant pool record (CPoolRecord) given a reference to it.

Parameters
refsis the reference (made up of 1 or more identifying integers)
Returns
the matching CPoolRecord or NULL if none matches the reference

Implements ConstantPool.

◆ restoreXml()

void ConstantPoolInternal::restoreXml ( const Element el,
TypeFactory typegrp 
)
virtual

Restore constant pool records from an XML stream.

(If supported) The container is populated with CPooLRecords initialized from a <constantpool> XML tag.

Parameters
elis the XML element
typegrpis the TypeFactory used to resolve data-type references in the XML

Implements ConstantPool.

◆ saveXml()

void ConstantPoolInternal::saveXml ( ostream &  s) const
virtual

Save all records in this container to an XML stream.

(If supported) An <constantpool> element is written containing <cpoolrec> child elements for each CPoolRecord in the container.

Parameters
sis the output stream

Implements ConstantPool.


The documentation for this class was generated from the following files: