Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

BamReader Class Reference

#include <bamReader.h>

List of all members.

Public Types

typedef Factory< TypedWritableWritableFactory
typedef TypedWritable *(* ChangeThisFunc )(TypedWritable *object, BamReader *manager)

Public Member Functions

 BamReader (DatagramGenerator *generator)
 ~BamReader ()
bool init ()
TypedWritableread_object ()
INLINE bool is_eof () const
bool resolve ()
INLINE int get_file_major_ver () const
INLINE int get_file_minor_ver () const
INLINE int get_current_major_ver () const
INLINE int get_current_minor_ver () const
void read_pointer (DatagramIterator &scan)
void read_pointers (DatagramIterator &scan, int count)
void skip_pointer (DatagramIterator &scan)
void read_cdata (DatagramIterator &scan, PipelineCyclerBase &cycler)
void register_finalize (TypedWritable *whom)
void register_change_this (ChangeThisFunc func, TypedWritable *whom)
void finalize_now (TypedWritable *whom)
void * get_pta (DatagramIterator &scan)
void register_pta (void *ptr)
TypeHandle read_handle (DatagramIterator &scan)

Static Public Member Functions

INLINE WritableFactoryget_factory ()

Static Public Attributes

BamReader *const Null = (BamReader*)0L
WritableFactory *const NullFactory = (WritableFactory*)0L

Private Types

typedef pmap< int, TypeHandleIndexMap
typedef pmap< int, CreatedObjCreatedObjs
typedef pmap< int, vector_int > ObjectPointers
typedef pmap< PipelineCyclerBase *,
vector_int > 
CyclerPointers
typedef pset< TypedWritable * > Finalize
typedef pmap< int, void * > PTAMap
typedef pset< TypeHandleNewTypes

Private Member Functions

int p_read_object ()
bool resolve_object_pointers (TypedWritable *object, const vector_int &pointer_ids)
bool resolve_cycler_pointers (PipelineCyclerBase *cycler, const vector_int &pointer_ids)
void finalize ()

Static Private Member Functions

INLINE void create_factory ()

Private Attributes

DatagramGenerator_source
IndexMap _index_map
CreatedObjs _created_objs
CreatedObjs::iterator _now_creating
PipelineCyclerBase_reading_cycler
ObjectPointers _object_pointers
CyclerPointers _cycler_pointers
int _num_extra_objects
Finalize _finalize_list
PTAMap _pta_map
int _pta_id
int _file_major
int _file_minor

Static Private Attributes

WritableFactory_factory = (WritableFactory*)0L
NewTypes _new_types
const int _cur_major = _bam_major_ver
const int _cur_minor = _bam_minor_ver


Member Typedef Documentation

typedef TypedWritable*(* BamReader::ChangeThisFunc)(TypedWritable *object, BamReader *manager)
 

Definition at line 121 of file bamReader.h.

typedef pmap<int, CreatedObj> BamReader::CreatedObjs [private]
 

Definition at line 160 of file bamReader.h.

typedef pmap<PipelineCyclerBase *, vector_int> BamReader::CyclerPointers [private]
 

Definition at line 179 of file bamReader.h.

typedef pset<TypedWritable *> BamReader::Finalize [private]
 

Definition at line 189 of file bamReader.h.

typedef pmap<int, TypeHandle> BamReader::IndexMap [private]
 

Definition at line 150 of file bamReader.h.

typedef pset<TypeHandle> BamReader::NewTypes [private]
 

Definition at line 202 of file bamReader.h.

typedef pmap<int, vector_int> BamReader::ObjectPointers [private]
 

Definition at line 175 of file bamReader.h.

typedef pmap<int, void *> BamReader::PTAMap [private]
 

Definition at line 194 of file bamReader.h.

typedef Factory<TypedWritable> BamReader::WritableFactory
 

Definition at line 90 of file bamReader.h.


Constructor & Destructor Documentation

BamReader::BamReader DatagramGenerator generator  ) 
 

Definition at line 44 of file bamReader.cxx.

References _created_objs, _now_creating, _num_extra_objects, _pta_id, _reading_cycler, and NULL.

BamReader::~BamReader  ) 
 

Definition at line 60 of file bamReader.cxx.


Member Function Documentation

INLINE void BamReader::create_factory  )  [static, private]
 

void BamReader::finalize  )  [private]
 

Definition at line 917 of file bamReader.cxx.

References _finalize_list, TypedWritable::finalize(), and NULL.

Referenced by resolve().

void BamReader::finalize_now TypedWritable whom  ) 
 

Definition at line 566 of file bamReader.cxx.

References _finalize_list, TypedWritable::finalize(), and NULL.

Referenced by PandaNode::CData::complete_pointers().

INLINE int BamReader::get_current_major_ver  )  const
 

INLINE int BamReader::get_current_minor_ver  )  const
 

INLINE WritableFactory* BamReader::get_factory  )  [static]
 

Referenced by ConfigureFn(), TransparencyAttrib::register_with_read_factory(), TransformState::register_with_read_factory(), TextureAttrib::register_with_read_factory(), TextureApplyAttrib::register_with_read_factory(), Texture::register_with_read_factory(), TexMatrixAttrib::register_with_read_factory(), SwitchNode::register_with_read_factory(), Spotlight::register_with_read_factory(), ShowBoundsEffect::register_with_read_factory(), SequenceNode::register_with_read_factory(), RopeNode::register_with_read_factory(), RenderState::register_with_read_factory(), RenderModeAttrib::register_with_read_factory(), RenderEffects::register_with_read_factory(), PointLight::register_with_read_factory(), PNMFileTypeTIFF::register_with_read_factory(), PNMFileTypeTGA::register_with_read_factory(), PNMFileTypeSoftImage::register_with_read_factory(), PNMFileTypeSGI::register_with_read_factory(), PNMFileTypeJPG2000::register_with_read_factory(), PNMFileTypeJPG::register_with_read_factory(), PNMFileTypeIMG::register_with_read_factory(), PNMFileTypeBMP::register_with_read_factory(), PNMFileTypeAlias::register_with_read_factory(), PlaneNode::register_with_read_factory(), PartGroup::register_with_read_factory(), PartBundle::register_with_read_factory(), PandaNode::register_with_read_factory(), MovingPartScalar::register_with_read_factory(), MovingPartMatrix::register_with_read_factory(), ModelRoot::register_with_read_factory(), ModelNode::register_with_read_factory(), MaterialAttrib::register_with_read_factory(), Material::register_with_read_factory(), LODNode::register_with_read_factory(), LightAttrib::register_with_read_factory(), LensNode::register_with_read_factory(), HermiteCurve::register_with_read_factory(), GeomTristrip::register_with_read_factory(), GeomTrifan::register_with_read_factory(), GeomTri::register_with_read_factory(), GeomSprite::register_with_read_factory(), GeomSphere::register_with_read_factory(), GeomQuad::register_with_read_factory(), GeomPolygon::register_with_read_factory(), GeomPoint::register_with_read_factory(), GeomNode::register_with_read_factory(), GeomLinestrip::register_with_read_factory(), GeomLine::register_with_read_factory(), FogAttrib::register_with_read_factory(), Fog::register_with_read_factory(), DirectionalLight::register_with_read_factory(), DepthWriteAttrib::register_with_read_factory(), DepthTestAttrib::register_with_read_factory(), DepthOffsetAttrib::register_with_read_factory(), DecalEffect::register_with_read_factory(), CullFaceAttrib::register_with_read_factory(), CullBinAttrib::register_with_read_factory(), CubicCurveseg::register_with_read_factory(), ComputedVertices::register_with_read_factory(), CompassEffect::register_with_read_factory(), ColorWriteAttrib::register_with_read_factory(), ColorScaleAttrib::register_with_read_factory(), ColorBlendAttrib::register_with_read_factory(), ColorAttrib::register_with_read_factory(), CollisionSphere::register_with_read_factory(), CollisionSegment::register_with_read_factory(), CollisionRay::register_with_read_factory(), CollisionPolygon::register_with_read_factory(), CollisionPlane::register_with_read_factory(), CollisionNode::register_with_read_factory(), ClipPlaneAttrib::register_with_read_factory(), ClassicNurbsCurve::register_with_read_factory(), CharacterSlider::register_with_read_factory(), CharacterJointBundle::register_with_read_factory(), CharacterJoint::register_with_read_factory(), Character::register_with_read_factory(), Camera::register_with_read_factory(), BillboardEffect::register_with_read_factory(), AnimGroup::register_with_read_factory(), AnimChannelScalarTable::register_with_read_factory(), AnimChannelMatrixXfmTable::register_with_read_factory(), AnimBundleNode::register_with_read_factory(), AnimBundle::register_with_read_factory(), AmbientLight::register_with_read_factory(), AlphaTestAttrib::register_with_read_factory(), and BamWriter::write_object().

INLINE int BamReader::get_file_major_ver  )  const
 

Referenced by BamFile::get_file_major_ver().

INLINE int BamReader::get_file_minor_ver  )  const
 

Referenced by ImageBuffer::fillin(), CullFaceAttrib::fillin(), BamFile::get_file_minor_ver(), and Texture::make_Texture().

void * BamReader::get_pta DatagramIterator scan  ) 
 

Definition at line 598 of file bamReader.cxx.

References _pta_id, _pta_map, DatagramIterator::get_uint16(), id, and NULL.

bool BamReader::init  ) 
 

Definition at line 74 of file bamReader.cxx.

References _file_major, _file_minor, _source, DatagramGenerator::get_datagram(), DatagramIterator::get_uint16(), and DatagramGenerator::is_error().

Referenced by main(), and BamFile::open_read().

INLINE bool BamReader::is_eof  )  const
 

Referenced by BamFile::is_eof().

int BamReader::p_read_object  )  [private]
 

Definition at line 654 of file bamReader.cxx.

References BamReader::CreatedObj::_change_this, _created_objs, _factory, _new_types, _now_creating, _object_pointers, BamReader::CreatedObj::_ptr, _source, FactoryParams::add_param(), DatagramGenerator::get_datagram(), TypedWritable::get_type(), DatagramIterator::get_uint16(), DatagramGenerator::is_error(), Factory< TypedWritable >::make_instance_more_general(), TypeHandle::none(), NULL, read_handle(), and type.

Referenced by read_object().

void BamReader::read_cdata DatagramIterator scan,
PipelineCyclerBase cycler
 

Definition at line 487 of file bamReader.cxx.

References _reading_cycler, CycleData::fillin(), and PipelineCyclerBase::write().

Referenced by SwitchNode::fillin(), Spotlight::fillin(), SequenceNode::fillin(), RopeNode::fillin(), PointLight::fillin(), PlaneNode::fillin(), PandaNode::fillin(), LODNode::fillin(), Light::fillin(), GeomNode::fillin(), and DirectionalLight::fillin().

TypeHandle BamReader::read_handle DatagramIterator scan  ) 
 

Definition at line 323 of file bamReader.cxx.

References _index_map, _new_types, DatagramIterator::get_string(), DatagramIterator::get_uint16(), DatagramIterator::get_uint8(), id, TypeHandle::none(), TypeRegistry::ptr(), TypeRegistry::record_derivation(), TypeRegistry::register_dynamic_type(), and type.

Referenced by p_read_object().

TypedWritable * BamReader::read_object  ) 
 

Definition at line 152 of file bamReader.cxx.

References BamReader::CreatedObj::_change_this, _created_objs, _num_extra_objects, BamReader::CreatedObj::_ptr, TypedWritable::get_type(), NULL, and p_read_object().

Referenced by main(), and BamFile::read_object().

void BamReader::read_pointer DatagramIterator scan  ) 
 

Definition at line 423 of file bamReader.cxx.

References _created_objs, _cycler_pointers, _now_creating, _num_extra_objects, _object_pointers, _reading_cycler, DatagramIterator::get_uint16(), and NULL.

Referenced by TextureAttrib::fillin(), Child::fillin(), Parent::fillin(), Person::fillin(), RenderState::fillin(), RenderEffects::fillin(), PiecewiseCurve::fillin(), PartGroup::fillin(), PartBundleNode::fillin(), PandaNode::CData::fillin(), MaterialAttrib::fillin(), LightAttrib::fillin(), GeomSprite::fillin(), GeomNode::CData::fillin(), FogAttrib::fillin(), CollisionNode::fillin(), ClipPlaneAttrib::fillin(), CharacterJoint::fillin(), Character::fillin(), AnimGroup::fillin(), AnimBundleNode::fillin(), PandaNode::CData::fillin_down_list(), PandaNode::CData::fillin_up_list(), and read_pointers().

void BamReader::read_pointers DatagramIterator scan,
int  count
 

Definition at line 458 of file bamReader.cxx.

References count, and read_pointer().

void BamReader::register_change_this ChangeThisFunc  func,
TypedWritable whom
 

Definition at line 538 of file bamReader.cxx.

References BamReader::CreatedObj::_change_this, _created_objs, _now_creating, BamReader::CreatedObj::_ptr, and NULL.

Referenced by RenderAttrib::fillin(), TransformState::make_from_bam(), RenderState::make_from_bam(), and RenderEffects::make_from_bam().

void BamReader::register_finalize TypedWritable whom  ) 
 

Definition at line 511 of file bamReader.cxx.

References _finalize_list, and TypedWritable::Null.

Referenced by TransformState::change_this(), RenderState::change_this(), RenderEffects::change_this(), RenderEffect::change_this(), RenderAttrib::change_this(), CharacterJointBundle::make_CharacterJointBundle(), and PartBundle::make_PartBundle().

void BamReader::register_pta void *  ptr  ) 
 

Definition at line 636 of file bamReader.cxx.

References _pta_id, and _pta_map.

bool BamReader::resolve  ) 
 

Definition at line 223 of file bamReader.cxx.

References BamReader::CreatedObj::_change_this, _created_objs, _cycler_pointers, _object_pointers, BamReader::CreatedObj::_ptr, finalize(), TypedWritable::get_type(), NULL, resolve_cycler_pointers(), and resolve_object_pointers().

Referenced by main(), and BamFile::resolve().

bool BamReader::resolve_cycler_pointers PipelineCyclerBase cycler,
const vector_int &  pointer_ids
[private]
 

Definition at line 853 of file bamReader.cxx.

References BamReader::CreatedObj::_change_this, _created_objs, BamReader::CreatedObj::_ptr, CycleData::complete_pointers(), NULL, PipelineCyclerBase::release_write(), and PipelineCyclerBase::write().

Referenced by resolve().

bool BamReader::resolve_object_pointers TypedWritable object,
const vector_int &  pointer_ids
[private]
 

Definition at line 791 of file bamReader.cxx.

References BamReader::CreatedObj::_change_this, _created_objs, BamReader::CreatedObj::_ptr, TypedWritable::complete_pointers(), TypedWritable::get_type(), and NULL.

Referenced by resolve().

void BamReader::skip_pointer DatagramIterator scan  ) 
 

Definition at line 473 of file bamReader.cxx.

References DatagramIterator::get_uint16().


Member Data Documentation

CreatedObjs BamReader::_created_objs [private]
 

Definition at line 161 of file bamReader.h.

Referenced by BamReader(), p_read_object(), read_object(), read_pointer(), register_change_this(), resolve(), resolve_cycler_pointers(), and resolve_object_pointers().

const int BamReader::_cur_major = _bam_major_ver [static, private]
 

Definition at line 34 of file bamReader.cxx.

const int BamReader::_cur_minor = _bam_minor_ver [static, private]
 

Definition at line 35 of file bamReader.cxx.

CyclerPointers BamReader::_cycler_pointers [private]
 

Definition at line 180 of file bamReader.h.

Referenced by read_pointer(), and resolve().

WritableFactory * BamReader::_factory = (WritableFactory*)0L [static, private]
 

Definition at line 28 of file bamReader.cxx.

Referenced by p_read_object().

int BamReader::_file_major [private]
 

Definition at line 205 of file bamReader.h.

Referenced by init().

int BamReader::_file_minor [private]
 

Definition at line 205 of file bamReader.h.

Referenced by init().

Finalize BamReader::_finalize_list [private]
 

Definition at line 190 of file bamReader.h.

Referenced by finalize(), finalize_now(), and register_finalize().

IndexMap BamReader::_index_map [private]
 

Definition at line 151 of file bamReader.h.

Referenced by read_handle().

BamReader::NewTypes BamReader::_new_types [static, private]
 

Definition at line 32 of file bamReader.cxx.

Referenced by p_read_object(), and read_handle().

CreatedObjs::iterator BamReader::_now_creating [private]
 

Definition at line 166 of file bamReader.h.

Referenced by BamReader(), p_read_object(), read_pointer(), and register_change_this().

int BamReader::_num_extra_objects [private]
 

Definition at line 185 of file bamReader.h.

Referenced by BamReader(), read_object(), and read_pointer().

ObjectPointers BamReader::_object_pointers [private]
 

Definition at line 176 of file bamReader.h.

Referenced by p_read_object(), read_pointer(), and resolve().

int BamReader::_pta_id [private]
 

Definition at line 196 of file bamReader.h.

Referenced by BamReader(), get_pta(), and register_pta().

PTAMap BamReader::_pta_map [private]
 

Definition at line 195 of file bamReader.h.

Referenced by get_pta(), and register_pta().

PipelineCyclerBase* BamReader::_reading_cycler [private]
 

Definition at line 169 of file bamReader.h.

Referenced by BamReader(), read_cdata(), and read_pointer().

DatagramGenerator* BamReader::_source [private]
 

Definition at line 146 of file bamReader.h.

Referenced by init(), and p_read_object().

BamReader *const BamReader::Null = (BamReader*)0L [static]
 

Definition at line 29 of file bamReader.cxx.

WritableFactory *const BamReader::NullFactory = (WritableFactory*)0L [static]
 

Definition at line 30 of file bamReader.cxx.


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:11:20 2003 for Panda by doxygen1.3