Model Railroad System
2.2.2
|
Indirect object base class. More...
#include <PDFPrinterSupport.h>
Public Member Functions | |
IndirectObject (unsigned long int objNum=0L, unsigned short int genNum=0, CrossReferenceTable *tab=NULL) | |
Constructor. More... | |
virtual | ~IndirectObject () |
Destructor. More... | |
ostream & | WriteObjectToFile (ostream &stream) |
Write an object indirectly. More... | |
ostream & | WriteIndirectReference (ostream &stream) const |
Write an object indirectly. More... | |
virtual ostream & | WriteDirect (ostream &stream) const =0 |
Write an object directly. More... | |
unsigned long int | ObjectNumber () const |
Return this object's object number. More... | |
unsigned short int | GenerationNumber () const |
Return this object's generation number. More... | |
streampos | FileOffset () const |
Return this object's file offset. More... | |
bool | HasOffset () const |
Does the object have a file offset? More... | |
Private Member Functions | |
void | SetObjectNumber (unsigned long int on, CrossReferenceTable *tab) |
Set this object's object number. More... | |
void | IncrementGenerationNumber () |
Increment the generation number. More... | |
Private Attributes | |
unsigned long int | objectNumber |
The object number. More... | |
unsigned short int | generationNumber |
The generation number. More... | |
streampos | fileOffset |
The file position. More... | |
CrossReferenceTable * | table |
The cross referece table we are in. More... | |
Friends | |
class | CrossReferenceTable |
Indirect object base class.
All PDF objects that might be referenced as indirect objects are derived from this class.
|
inline |
Constructor.
Perform base initialization.
objNum | The object number. Zero means no object number yet. |
genNum | The generation number. Zero means first generation. |
tab | The cross reference table we are in. |
References fileOffset, generationNumber, objectNumber, and table.
|
inlinevirtual |
Destructor.
Clean everything up.
References FCFSupport::PDFFileStructures::CrossReferenceTable::FreeObject(), objectNumber, and table.
|
inline |
Return this object's file offset.
References fileOffset.
|
inline |
Return this object's generation number.
References generationNumber.
|
inline |
Does the object have a file offset?
References fileOffset.
Referenced by FCFSupport::PDFFileStructures::IndirectObjectDictionary::WriteDictionaryElements(), and WriteObjectToFile().
|
inlineprivate |
Increment the generation number.
References generationNumber.
|
inline |
Return this object's object number.
References objectNumber.
|
inlineprivate |
Set this object's object number.
Should only be called when this object is inserted into a cross reference table. The object number cannot be reset!
on | The object number to set this object to. Can't be zero. If the object number is already set, this can be the same number, in which case the generation number gets incremented. |
tab | The cross reference table this object is being added to. |
References generationNumber, objectNumber, and table.
|
pure virtual |
Write an object directly.
Needs to be overloaded by derived classes.
stream | The output stream to write to. |
Implemented in FCFSupport::PDFFileStructures::IndirectFloatVector, FCFSupport::PDFFileStructures::PDFStream, FCFSupport::PDFFileStructures::Rectangle, FCFSupport::PDFFileStructures::Dictionary, and FCFSupport::PDFFileStructures::FreedObject.
Referenced by FCFSupport::PDFFileStructures::IndirectObjectDictionary::WriteDictionaryElements(), and WriteObjectToFile().
|
inline |
Write an object indirectly.
Assumes that the non-const version has already been called. This version only writes an indirect reference.
stream | The output stream to write to. |
References generationNumber, objectNumber, and lcc::stream.
Referenced by FCFSupport::PDFFileStructures::IndirectObjectDictionary::WriteDictionaryElements().
|
inline |
Write an object indirectly.
The first time this is called, an obj ... endobj block is written. Later times an indirect reference is written.
stream | The output stream to write to. |
References fileOffset, generationNumber, HasOffset(), objectNumber, lcc::stream, and WriteDirect().
|
friend |
|
private |
The file position.
Referenced by FileOffset(), HasOffset(), IndirectObject(), and WriteObjectToFile().
|
private |
The generation number.
Referenced by GenerationNumber(), IncrementGenerationNumber(), IndirectObject(), SetObjectNumber(), WriteIndirectReference(), and WriteObjectToFile().
|
private |
The object number.
Referenced by IndirectObject(), ObjectNumber(), SetObjectNumber(), WriteIndirectReference(), WriteObjectToFile(), and ~IndirectObject().
|
private |
The cross referece table we are in.
Referenced by IndirectObject(), SetObjectNumber(), and ~IndirectObject().