Panda3D
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties
Public Member Functions
DCClass Class Reference

Defines a particular DistributedClass as read from an input .dc file. More...

Inheritance diagram for DCClass:
DCDeclaration

List of all members.

Public Member Functions

Datagram aiDatabaseGenerateContext (unsigned int context_id, unsigned int parent_id, unsigned int zone_id, unsigned long long int owner_channel, unsigned long long int database_server_id, unsigned long long int from_channel_id)
 Generates a datagram containing the message necessary to create a new database distributed object from the AI.
Datagram aiDatabaseGenerateContextOld (unsigned int context_id, unsigned int parent_id, unsigned int zone_id, unsigned long long int database_server_id, unsigned long long int from_channel_id)
 Generates a datagram containing the message necessary to create a new database distributed object from the AI.
Datagram aiFormatGenerate (PyObject distobj, unsigned int do_id, unsigned int parent_id, unsigned int zone_id, unsigned long long int district_channel_id, unsigned long long int from_channel_id, PyObject optional_fields)
 Generates a datagram containing the message necessary to generate a new distributed object from the AI.
Datagram aiFormatUpdate (string field_name, unsigned int do_id, unsigned long long int to_id, unsigned long long int from_id, PyObject args)
 Generates a datagram containing the message necessary to send an update for the indicated distributed object from the AI.
Datagram aiFormatUpdateMsgType (string field_name, unsigned int do_id, unsigned long long int to_id, unsigned long long int from_id, int msg_type, PyObject args)
 Generates a datagram containing the message necessary to send an update, using the indicated msg type for the indicated distributed object from the AI.
Datagram clientFormatGenerateCMU (PyObject distobj, unsigned int do_id, unsigned int zone_id, PyObject optional_fields)
 Generates a datagram containing the message necessary to generate a new distributed object from the client.
Datagram clientFormatUpdate (string field_name, unsigned int do_id, PyObject args)
 Generates a datagram containing the message necessary to send an update for the indicated distributed object from the client.
 directUpdate (PyObject distobj, string field_name, Datagram const datagram)
 Processes an update for a named field from a packed datagram.
 directUpdate (PyObject distobj, string field_name, string value_blob)
 Processes an update for a named field from a packed value blob.
PyObject getClassDef ()
 Returns the class object that was previously associated with this DistributedClass.
DCField getConstructor ()
 Returns the constructor method for this class if it is defined, or NULL if the class uses the default constructor.
DCFile getDcFile ()
 Returns the DCFile object that contains the class.
DCField getField (int n)
 Returns the nth field in the class.
DCField getFieldByIndex (int index_number)
 Returns a pointer to the DCField that has the indicated index number.
DCField getFieldByName (string name)
 Returns a pointer to the DCField that shares the indicated name.
DCField getInheritedField (int n)
 Returns the nth field field in the class and all of its ancestors.
string getName ()
 Returns the name of this class.
int getNumber ()
 Returns a unique index number associated with this class.
int getNumFields ()
 Returns the number of fields defined directly in this class, ignoring inheritance.
int getNumInheritedFields ()
 Returns the total number of field fields defined in this class and all ancestor classes.
int getNumParents ()
 Returns the number of base classes this class inherits from.
PyObject getOwnerClassDef ()
 Returns the owner class object that was previously associated with this DistributedClass.
DCClass getParent (int n)
 Returns the nth parent class this class inherits from.
bool hasClassDef ()
 Returns true if the DCClass object has an associated Python class definition, false otherwise.
bool hasConstructor ()
 Returns true if this class has a constructor method, false if it just uses the default constructor.
bool hasOwnerClassDef ()
 Returns true if the DCClass object has an associated Python owner class definition, false otherwise.
bool inheritsFromBogusClass ()
 Returns true if this class, or any class in the inheritance heirarchy for this class, is a "bogus" class--a forward reference to an as-yet-undefined class.
bool isBogusClass ()
 Returns true if the class has been flagged as a bogus class.
bool isStruct ()
 Returns true if the class has been identified with the "struct" keyword in the dc file, false if it was declared with "dclass".
 output (ostream out)
 Write a string representation of this instance to <out>.
bool packRequiredField (DCPacker packer, PyObject distobj, DCField const field)
 Looks up the current value of the indicated field by calling the appropriate get*() function, then packs that value into the packer.
bool packRequiredField (Datagram datagram, PyObject distobj, DCField const field)
 Looks up the current value of the indicated field by calling the appropriate get*() function, then packs that value into the datagram.
 receiveUpdate (PyObject distobj, DatagramIterator di)
 Extracts the update message out of the packer and applies it to the indicated object by calling the appropriate method.
 receiveUpdateAllRequired (PyObject distobj, DatagramIterator di)
 Processes a big datagram that includes all of the "required" fields that are sent when an avatar is created.
 receiveUpdateBroadcastRequired (PyObject distobj, DatagramIterator di)
 Processes a big datagram that includes all of the "required" fields that are sent along with a normal "generate with required" message.
 receiveUpdateBroadcastRequiredOwner (PyObject distobj, DatagramIterator di)
 Processes a big datagram that includes all of the "required" fields that are sent along with a normal "generate with required" message.
 receiveUpdateOther (PyObject distobj, DatagramIterator di)
 Processes a datagram that lists some additional fields that are broadcast in one chunk.
 setClassDef (PyObject class_def)
 Sets the class object associated with this DistributedClass.
 setOwnerClassDef (PyObject owner_class_def)
 Sets the owner class object associated with this DistributedClass.
 startGenerate ()
 Starts the PStats timer going on the "generate" task, that is, marks the beginning of the process of generating a new object, for the purposes of timing this process.
 stopGenerate ()
 Stops the PStats timer on the "generate" task.

Detailed Description

Defines a particular DistributedClass as read from an input .dc file.


Member Function Documentation

Datagram aiDatabaseGenerateContext ( unsigned int  context_id,
unsigned int  parent_id,
unsigned int  zone_id,
unsigned long long int  owner_channel,
unsigned long long int  database_server_id,
unsigned long long int  from_channel_id 
)

Generates a datagram containing the message necessary to create a new database distributed object from the AI.

First Pass is to only incldue required values (with Defaults).

Datagram aiDatabaseGenerateContextOld ( unsigned int  context_id,
unsigned int  parent_id,
unsigned int  zone_id,
unsigned long long int  database_server_id,
unsigned long long int  from_channel_id 
)

Generates a datagram containing the message necessary to create a new database distributed object from the AI.

First Pass is to only incldue required values (with Defaults).

Datagram aiFormatGenerate ( PyObject  distobj,
unsigned int  do_id,
unsigned int  parent_id,
unsigned int  zone_id,
unsigned long long int  district_channel_id,
unsigned long long int  from_channel_id,
PyObject  optional_fields 
)

Generates a datagram containing the message necessary to generate a new distributed object from the AI.

This requires querying the object for the initial value of its required fields.

optional_fields is a list of fieldNames to generate in addition to the normal required fields.

Datagram aiFormatUpdate ( string  field_name,
unsigned int  do_id,
unsigned long long int  to_id,
unsigned long long int  from_id,
PyObject  args 
)

Generates a datagram containing the message necessary to send an update for the indicated distributed object from the AI.

Datagram aiFormatUpdateMsgType ( string  field_name,
unsigned int  do_id,
unsigned long long int  to_id,
unsigned long long int  from_id,
int  msg_type,
PyObject  args 
)

Generates a datagram containing the message necessary to send an update, using the indicated msg type for the indicated distributed object from the AI.

Datagram clientFormatGenerateCMU ( PyObject  distobj,
unsigned int  do_id,
unsigned int  zone_id,
PyObject  optional_fields 
)

Generates a datagram containing the message necessary to generate a new distributed object from the client.

This requires querying the object for the initial value of its required fields.

optional_fields is a list of fieldNames to generate in addition to the normal required fields.

This method is only called by the CMU implementation.

Datagram clientFormatUpdate ( string  field_name,
unsigned int  do_id,
PyObject  args 
)

Generates a datagram containing the message necessary to send an update for the indicated distributed object from the client.

directUpdate ( PyObject  distobj,
string  field_name,
Datagram const  datagram 
)

Processes an update for a named field from a packed datagram.

directUpdate ( PyObject  distobj,
string  field_name,
string  value_blob 
)

Processes an update for a named field from a packed value blob.

PyObject getClassDef ( )

Returns the class object that was previously associated with this DistributedClass.

This will return a new reference to the object.

Returns the constructor method for this class if it is defined, or NULL if the class uses the default constructor.

Returns the DCFile object that contains the class.

DCField getField ( int  n)

Returns the nth field in the class.

This is not necessarily the field with index n; this is the nth field defined in the class directly, ignoring inheritance.

DCField getFieldByIndex ( int  index_number)

Returns a pointer to the DCField that has the indicated index number.

If the numbered field is not found in the current class, the parent classes will be searched, so the value returned may not actually be a field within this class. Returns NULL if there is no such field defined.

DCField getFieldByName ( string  name)

Returns a pointer to the DCField that shares the indicated name.

If the named field is not found in the current class, the parent classes will be searched, so the value returned may not actually be a field within this class. Returns NULL if there is no such field defined.

Returns the nth field field in the class and all of its ancestors.

This *used* to be the same thing as get_field_by_index(), back when the fields were numbered sequentially within a class's inheritance hierarchy. Now that fields have a globally unique index number, this is no longer true.

string getName ( )

Returns the name of this class.

int getNumber ( )

Returns a unique index number associated with this class.

This is defined implicitly when the .dc file(s) are read.

int getNumFields ( )

Returns the number of fields defined directly in this class, ignoring inheritance.

Returns the total number of field fields defined in this class and all ancestor classes.

int getNumParents ( )

Returns the number of base classes this class inherits from.

PyObject getOwnerClassDef ( )

Returns the owner class object that was previously associated with this DistributedClass.

This will return a new reference to the object.

DCClass getParent ( int  n)

Returns the nth parent class this class inherits from.

bool hasClassDef ( )

Returns true if the DCClass object has an associated Python class definition, false otherwise.

bool hasConstructor ( )

Returns true if this class has a constructor method, false if it just uses the default constructor.

bool hasOwnerClassDef ( )

Returns true if the DCClass object has an associated Python owner class definition, false otherwise.

Returns true if this class, or any class in the inheritance heirarchy for this class, is a "bogus" class--a forward reference to an as-yet-undefined class.

bool isBogusClass ( )

Returns true if the class has been flagged as a bogus class.

This is set for classes that are generated by the parser as placeholder for missing classes, as when reading a partial file; it should not occur in a normal valid dc file.

bool isStruct ( )

Returns true if the class has been identified with the "struct" keyword in the dc file, false if it was declared with "dclass".

output ( ostream  out)

Write a string representation of this instance to <out>.

Reimplemented from DCDeclaration.

bool packRequiredField ( DCPacker  packer,
PyObject  distobj,
DCField const  field 
)

Looks up the current value of the indicated field by calling the appropriate get*() function, then packs that value into the packer.

This field is presumably either a required field or a specified optional field, and we are building up a datagram for the generate-with-required message.

Returns true on success, false on failure.

bool packRequiredField ( Datagram  datagram,
PyObject  distobj,
DCField const  field 
)

Looks up the current value of the indicated field by calling the appropriate get*() function, then packs that value into the datagram.

This field is presumably either a required field or a specified optional field, and we are building up a datagram for the generate-with-required message.

Returns true on success, false on failure.

receiveUpdate ( PyObject  distobj,
DatagramIterator  di 
)

Extracts the update message out of the packer and applies it to the indicated object by calling the appropriate method.

receiveUpdateAllRequired ( PyObject  distobj,
DatagramIterator  di 
)

Processes a big datagram that includes all of the "required" fields that are sent when an avatar is created.

This is all of the atomic fields that are marked "required", whether they are broadcast or not.

receiveUpdateBroadcastRequired ( PyObject  distobj,
DatagramIterator  di 
)

Processes a big datagram that includes all of the "required" fields that are sent along with a normal "generate with required" message.

This is all of the atomic fields that are marked "broadcast required".

receiveUpdateBroadcastRequiredOwner ( PyObject  distobj,
DatagramIterator  di 
)

Processes a big datagram that includes all of the "required" fields that are sent along with a normal "generate with required" message.

This is all of the atomic fields that are marked "broadcast ownrecv". Should be used for 'owner-view' objects.

receiveUpdateOther ( PyObject  distobj,
DatagramIterator  di 
)

Processes a datagram that lists some additional fields that are broadcast in one chunk.

setClassDef ( PyObject  class_def)

Sets the class object associated with this DistributedClass.

This object will be used to construct new instances of the class.

setOwnerClassDef ( PyObject  owner_class_def)

Sets the owner class object associated with this DistributedClass.

This object will be used to construct new owner instances of the class.

Starts the PStats timer going on the "generate" task, that is, marks the beginning of the process of generating a new object, for the purposes of timing this process.

This should balance with a corresponding call to stop_generate().

Stops the PStats timer on the "generate" task.

This should balance with a preceding call to start_generate().

 All Classes Namespaces Functions Variables Enumerations Enumerator Properties