| 
    Ghidra Decompiler Analysis Engine
    
   | 
 
An interface to the pool of constant objects for byte-code languages. More...
#include <cpool.hh>

Public Member Functions | |
| virtual const CPoolRecord * | getRecord (const vector< uintb > &refs) const =0 | 
| Retrieve a constant pool record (CPoolRecord) given a reference to it.  More... | |
| void | putRecord (const vector< uintb > &refs, uint4 tag, const string &tok, Datatype *ct) | 
| A a new constant pool record to this database.  More... | |
| const CPoolRecord * | restoreXmlRecord (const vector< uintb > &refs, const Element *el, TypeFactory &typegrp) | 
| Restore a CPoolRecord given a reference and an XML stream.  More... | |
| virtual bool | empty (void) const =0 | 
| Is the container empty of records.  | |
| virtual void | clear (void)=0 | 
| Release any (local) resources.  | |
| virtual void | saveXml (ostream &s) const =0 | 
| Save all records in this container to an XML stream.  More... | |
| virtual void | restoreXml (const Element *el, TypeFactory &typegrp)=0 | 
| Restore constant pool records from an XML stream.  More... | |
An interface to the pool of constant objects for byte-code languages.
This is an abstract base class that acts as a container for CPoolRecords. A reference (1 or more integer constants) maps to an individual CPoolRecord. A CPoolRecord object can be queried for using getRecord(), and a new object can be added with putRecord(). Internally, the actual CPoolRecord object is produced by createRecord().
      
  | 
  pure virtual | 
Retrieve a constant pool record (CPoolRecord) given a reference to it.
| refs | is the reference (made up of 1 or more identifying integers) | 
Implemented in ConstantPoolInternal, and ConstantPoolGhidra.
| void ConstantPool::putRecord | ( | const vector< uintb > & | refs, | 
| uint4 | tag, | ||
| const string & | tok, | ||
| Datatype * | ct | ||
| ) | 
A a new constant pool record to this database.
Given the basic constituents of the record, type, name, and data-type, create a new CPoolRecord object and associate it with the given reference.
| refs | is the reference (made up of 1 or more identifying integers) | 
| tag | is the type of record to create | 
| tok | is the name associated with the object | 
| ct | is the data-type associated with the object | 
      
  | 
  pure virtual | 
Restore constant pool records from an XML stream.
(If supported) The container is populated with CPooLRecords initialized from a <constantpool> XML tag.
| el | is the XML element | 
| typegrp | is the TypeFactory used to resolve data-type references in the XML | 
Implemented in ConstantPoolInternal, and ConstantPoolGhidra.
| const CPoolRecord * ConstantPool::restoreXmlRecord | ( | const vector< uintb > & | refs, | 
| const Element * | el, | ||
| TypeFactory & | typegrp | ||
| ) | 
Restore a CPoolRecord given a reference and an XML stream.
A <cpoolrec> element initializes the new record which is immediately associated with the reference.
| refs | is the reference (made up of 1 or more identifying integers) | 
| el | is the XML element | 
| typegrp | is the TypeFactory used to resolve data-type references in XML | 
      
  | 
  pure 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.
| s | is the output stream | 
Implemented in ConstantPoolInternal, and ConstantPoolGhidra.
 1.8.17