Model Railroad System  2.2.2
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
FCFSupport::PDFFileStructures::IndirectObject Class Referenceabstract

Indirect object base class. More...

#include <PDFPrinterSupport.h>

Inheritance diagram for FCFSupport::PDFFileStructures::IndirectObject:
FCFSupport::PDFFileStructures::Dictionary FCFSupport::PDFFileStructures::FreedObject FCFSupport::PDFFileStructures::IndirectFloatVector FCFSupport::PDFFileStructures::PDFStream FCFSupport::PDFFileStructures::Rectangle FCFSupport::PDFFileStructures::IndirectObjectDictionary FCFSupport::PDFFileStructures::InformationDirectory FCFSupport::PDFFileStructures::PageLabelTree FCFSupport::PDFFileStructures::ResourceDictionary FCFSupport::PDFFileStructures::TypedDictionary FCFSupport::PDFFileStructures::CatalogDictionary FCFSupport::PDFFileStructures::FontDictionary FCFSupport::PDFFileStructures::Page FCFSupport::PDFFileStructures::PageLabelDictionary FCFSupport::PDFFileStructures::PageTree FCFSupport::PDFFileStructures::Type1FontDictionary FCFSupport::PDFFileStructures::PostScriptStandardType1FontDictionary

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...
 
CrossReferenceTabletable
 The cross referece table we are in. More...
 

Friends

class CrossReferenceTable
 

Detailed Description

Indirect object base class.

All PDF objects that might be referenced as indirect objects are derived from this class.

Author
Robert Heller <heller@deepsoft.com>

Constructor & Destructor Documentation

◆ IndirectObject()

FCFSupport::PDFFileStructures::IndirectObject::IndirectObject ( unsigned long int  objNum = 0L,
unsigned short int  genNum = 0,
CrossReferenceTable tab = NULL 
)
inline

Constructor.

Perform base initialization.

Parameters
objNumThe object number. Zero means no object number yet.
genNumThe generation number. Zero means first generation.
tabThe cross reference table we are in.

References fileOffset, generationNumber, objectNumber, and table.

◆ ~IndirectObject()

virtual FCFSupport::PDFFileStructures::IndirectObject::~IndirectObject ( )
inlinevirtual

Destructor.

Clean everything up.

References FCFSupport::PDFFileStructures::CrossReferenceTable::FreeObject(), objectNumber, and table.

Member Function Documentation

◆ FileOffset()

streampos FCFSupport::PDFFileStructures::IndirectObject::FileOffset ( ) const
inline

Return this object's file offset.

References fileOffset.

◆ GenerationNumber()

unsigned short int FCFSupport::PDFFileStructures::IndirectObject::GenerationNumber ( ) const
inline

Return this object's generation number.

References generationNumber.

◆ HasOffset()

bool FCFSupport::PDFFileStructures::IndirectObject::HasOffset ( ) const
inline

◆ IncrementGenerationNumber()

void FCFSupport::PDFFileStructures::IndirectObject::IncrementGenerationNumber ( )
inlineprivate

Increment the generation number.

References generationNumber.

◆ ObjectNumber()

unsigned long int FCFSupport::PDFFileStructures::IndirectObject::ObjectNumber ( ) const
inline

Return this object's object number.

References objectNumber.

◆ SetObjectNumber()

void FCFSupport::PDFFileStructures::IndirectObject::SetObjectNumber ( unsigned long int  on,
CrossReferenceTable tab 
)
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!

Parameters
onThe 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.
tabThe cross reference table this object is being added to.

References generationNumber, objectNumber, and table.

◆ WriteDirect()

virtual ostream& FCFSupport::PDFFileStructures::IndirectObject::WriteDirect ( ostream &  stream) const
pure virtual

◆ WriteIndirectReference()

ostream& FCFSupport::PDFFileStructures::IndirectObject::WriteIndirectReference ( ostream &  stream) const
inline

Write an object indirectly.

Assumes that the non-const version has already been called. This version only writes an indirect reference.

Parameters
streamThe output stream to write to.

References generationNumber, objectNumber, and lcc::stream.

Referenced by FCFSupport::PDFFileStructures::IndirectObjectDictionary::WriteDictionaryElements().

◆ WriteObjectToFile()

ostream& FCFSupport::PDFFileStructures::IndirectObject::WriteObjectToFile ( ostream &  stream)
inline

Write an object indirectly.

The first time this is called, an obj ... endobj block is written. Later times an indirect reference is written.

Parameters
streamThe output stream to write to.

References fileOffset, generationNumber, HasOffset(), objectNumber, lcc::stream, and WriteDirect().

Friends And Related Function Documentation

◆ CrossReferenceTable

friend class CrossReferenceTable
friend

Member Data Documentation

◆ fileOffset

streampos FCFSupport::PDFFileStructures::IndirectObject::fileOffset
private

The file position.

Referenced by FileOffset(), HasOffset(), IndirectObject(), and WriteObjectToFile().

◆ generationNumber

unsigned short int FCFSupport::PDFFileStructures::IndirectObject::generationNumber
private

◆ objectNumber

unsigned long int FCFSupport::PDFFileStructures::IndirectObject::objectNumber
private

◆ table

CrossReferenceTable* FCFSupport::PDFFileStructures::IndirectObject::table
private

The cross referece table we are in.

Referenced by IndirectObject(), SetObjectNumber(), and ~IndirectObject().