Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

Phx::NamedInterface Class Reference

The NamedInterface class is the base for interfaces that can be tracked by name and type. More...

#include <PhxNamedInterface.h>

Inheritance diagram for Phx::NamedInterface:

Phx::LockedPtrInterface< NamedInterface > Phx::Clock Phx::EventNotifier Phx::GraphicsEngine Phx::Log Phx::LogicalInputEngine Phx::RawInputEngine Phx::FrameClock Phx::WallClock List of all members.

Public Types

typedef ValueType< TypeClass,
uint32_t > 
Type
 A value type that identifies the type of an interface.
typedef ValueType< IdentifierClass,
uint32_t > 
Identifier
 A value type that represents a unique identifier for an instance of an NamedInterface class.

Public Member Functions

const Typetype (void) const
 Returns the type constant for the most specific interface class that this instance implements.
const Identifieridentifier (void) const
 Returns the unique identifier of this interface instance.
const String & name (void) const
 Returns the instance name of this interface instance.

Static Public Attributes

static const Type INVALID_TYPE
 A sentinel value that denotes an invalid type constant.
static const Identifier INVALID_IDENTIFIER
 A sentinel value that denotes an invalid identifier.

Friends

class Manager

Classes

class  Manager
 Manages interface types and constructs and manages instances of the NamedInterface class. More...

Detailed Description

The NamedInterface class is the base for interfaces that can be tracked by name and type.

A NamedInterface has identifier and name attributes that allow it to be tracked by a manager. Instances of NamedInterface can be entered into the manager and looked up by identifier or by name. In addition, instances of NamedInterface's can be instantiated by supplying the appropriate type constant, allowing runtime creation of entities and other objects.


Member Typedef Documentation

typedef ValueType<IdentifierClass, uint32_t> Phx::NamedInterface::Identifier
 

A value type that represents a unique identifier for an instance of an NamedInterface class.

Every instance of the NamedInterface class must have a unique identifier associated with it. This can be allocated locally or by a server.

typedef ValueType<TypeClass, uint32_t> Phx::NamedInterface::Type
 

A value type that identifies the type of an interface.

The type of an interface is the type constant assigned to the most specific class of an interface that derives ultimately from NamedInterface.


Member Function Documentation

const Identifier& Phx::NamedInterface::identifier void   )  const [inline]
 

Returns the unique identifier of this interface instance.

Note:
During construction this attribute is always INVALID_IDENTIFIER.
Returns:
The unique identifier constant that identifies this interface instance in the local system and over the network.

const String& Phx::NamedInterface::name void   )  const [inline]
 

Returns the instance name of this interface instance.

Note:
During construction this attribute is always "".
Returns:
The text name of this interface instance as was set by the owning Manager when the object was created.

const Type& Phx::NamedInterface::type void   )  const [inline]
 

Returns the type constant for the most specific interface class that this instance implements.

Each interface subclass that can be instantiated has a type constant associated with it. An object that implements an interface that inherits from other interfaces will implement all of the interfaces that it derives from. The type constant of the most specific interface class that the object implements is the "type" of the object. Even though the object is technically an instance of all of its inherited interfaces, its type is completely specified by returning the constant for the most derived class.

Note:
During construction this attribute is always INVALID_TYPE.
Returns:
The type of the most specific interface that this object instance implements.


The documentation for this class was generated from the following file:
Generated on Wed Dec 21 22:05:38 2005 for Phoenix OSFS by  doxygen 1.4.2