18 #include "pandabase.h" 21 #include "typedWritable.h" 22 #include "datagramSink.h" 26 #include "vector_int.h" 27 #include "pipelineCyclerBase.h" 31 #define WRITE_PTA(Manager, dest, Write_func, array) \ 32 if (!Manager->register_pta(dest, array.p())) \ 34 Write_func(Manager, dest, array); \ 82 INLINE
const Filename &get_filename()
const;
87 INLINE BamEndian get_file_endian()
const;
88 INLINE
bool get_file_stdfloat_double()
const;
90 INLINE BamTextureMode get_file_texture_mode()
const;
91 INLINE
void set_file_texture_mode(BamTextureMode file_texture_mode);
106 bool register_pta(
Datagram &packet,
const void *ptr);
112 void write_object_id(
Datagram &dg,
int object_id);
113 void write_pta_id(
Datagram &dg,
int pta_id);
117 BamEndian _file_endian;
118 bool _file_stdfloat_double;
119 BamTextureMode _file_texture_mode;
133 StoreState(
int object_id) : _object_id(object_id) {}
135 typedef phash_map<const TypedWritable *, StoreState, pointer_hash> StateMap;
148 BamObjectCode _next_boc;
152 bool _long_object_id;
157 ObjectQueue _object_queue;
162 typedef vector_int FreedObjectIds;
163 FreedObjectIds _freed_object_ids;
167 typedef phash_map<const void *, int, pointer_hash> PTAMap;
179 #include "bamWriter.I" Base class for objects that can be written to and read from Bam files.
This is the trivial, non-threaded implementation of PipelineCyclerBase.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
This class defines the abstract interface to sending datagrams to any target, whether it be into a fi...
The name of a file, such as a texture file or an Egg file.
This class records a particular byte sub-range within an existing file on disk.
This is our own Panda specialization on the default STL set.
TypeHandle is the identifier used to differentiate C++ class types.
This is a sequence number that increments monotonically.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...