All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pdftron::SDF::NumberTree Class Reference

#include <NumberTree.h>

Public Member Functions

 NumberTree (Obj number_tree)
 
 NumberTree (const NumberTree &d)
 
NumberTreeoperator= (const NumberTree &d)
 
bool IsValid ()
 
NumberTreeIterator GetIterator (Int32 key)
 
NumberTreeIterator GetIterator ()
 
Obj GetValue (Int32 key)
 
void Put (Int32 key, Obj value)
 
void Erase (Int32 key)
 
void Erase (DictIterator &pos)
 
Obj GetSDFObj () const
 

Protected Attributes

TRN_NumberTree mp_obj
 

Detailed Description

A NumberTree is a common data structure in PDF. See section 3.8.6 'Number Trees' in PDF Reference Manual for more details.

A number tree serves a similar purpose to a dictionary - associating keys and values - but by different means. NumberTrees allow efficient storage of very large association collections (number/Obj* maps). A NumberTree can have many more entries than a SDF/Cos dictionary can.

Sample code:

* PDFDoc doc("../Data/test.pdf");
* NumberTree labels(doc.GetRoot().Get("PageLabels").Value());
* if (labels.IsValid()) {
* // Traversing the NumberTree
* for (NumberTreeIterator i = labels.GetIterator(); i.HasNext(); i.Next())
* cout << "Key: " << i.Key().GetNumber() << endl;
* }
*

Definition at line 43 of file NumberTree.h.

Constructor & Destructor Documentation

pdftron::SDF::NumberTree::NumberTree ( Obj  number_tree)

Create a high level NumberTree wrapper around an existing SDF/Cos NumberTree. This does not copy the object.

Parameters
number_treeSDF/Cos root of the NumberTree object.
pdftron::SDF::NumberTree::NumberTree ( const NumberTree d)

Copy constructor

Member Function Documentation

void pdftron::SDF::NumberTree::Erase ( Int32  key)

Removes the specified object from the tree. Does nothing if no object with that number exists.

Parameters
keyA number representing the key of the entry to be removed.
void pdftron::SDF::NumberTree::Erase ( DictIterator pos)

Removes the NumberTree entry pointed by the iterator.

Parameters
posdictionary iterator object that points to the NumberTree entry to be removed
NumberTreeIterator pdftron::SDF::NumberTree::GetIterator ( Int32  key)

Search for the specified key in the NumberTree.

Returns
If the key is present the function returns a NumberTreeIterator the points to the given Key/Value pair. If the key is not found the function returns End() (a non-valid) iterator.
Parameters
keythe number representing the key to be found.

Sample code: NumberTreeIterator i = dests.Find(5); if (i.HasNext()) { cout << "Key: " << i.GetKey()->GetNumber() << endl; cout << "Value: " << i.GetValue()->GetType() << endl; }

NumberTreeIterator pdftron::SDF::NumberTree::GetIterator ( )
Returns
an iterator to the first key/value pair (i.e. NNTreeData) in the document. You can use the Next method on the returned iterator to traverse all entries stored under the NumberTree.

Sample code: for (NumberTreeIterator i = dests.GetIterator(); i.HasNext(); i.Next()) cout << "Key: " << i.GetKey().GetNumber() << endl;

Obj pdftron::SDF::NumberTree::GetSDFObj ( ) const
Returns
the object to the underlying SDF/Cos object. If the NumberTree.IsValid() returns false the SDF/Cos object is NULL.
Obj pdftron::SDF::NumberTree::GetValue ( Int32  key)
bool pdftron::SDF::NumberTree::IsValid ( )
Returns
whether this is a valid (non-null) NumberTree. If the function returns false the underlying SDF/Cos object is null and the NumberTree object should be treated as null as well.
NumberTree& pdftron::SDF::NumberTree::operator= ( const NumberTree d)

Assignment operator

void pdftron::SDF::NumberTree::Put ( Int32  key,
Obj  value 
)

Puts a new entry in the name tree. If an entry with this number is already in the tree, it is replaced.

Parameters
keyA number representing the key of the new entry.
valuethe value associated with the key. It can be any SDF::Obj.

Member Data Documentation

TRN_NumberTree pdftron::SDF::NumberTree::mp_obj
protected

Definition at line 138 of file NumberTree.h.


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