OpalMixerNodeManager Class Reference

#include <opalmixer.h>


Public Member Functions

Construction
 OpalMixerNodeManager ()
virtual ~OpalMixerNodeManager ()
virtual void ShutDown ()
virtual PBoolean GarbageCollection ()
Operations
virtual OpalMixerNodeCreateNode (OpalMixerNodeInfo *info)
virtual PSafePtr< OpalMixerNodeAddNode (OpalMixerNodeInfo *info)
void AddNode (OpalMixerNode *node)
PSafePtr< OpalMixerNodeGetFirstNode (PSafetyMode mode=PSafeReference) const
virtual PSafePtr< OpalMixerNodeFindNode (const PString &name, PSafetyMode mode=PSafeReference)
virtual void RemoveNode (OpalMixerNode &node)
void AddNodeName (PString name, OpalMixerNode *node)
void RemoveNodeName (PString name)
void RemoveNodeNames (PStringList names)

Protected Attributes

PSafeDictionary< PGloballyUniqueID,
OpalMixerNode
m_nodesByUID
PDictionary< PString, OpalMixerNodem_nodesByName


Detailed Description

Mixer node manager. This class is a collection of OpalMixerNodes. It provides access to nodes by GUID or name.


Constructor & Destructor Documentation

OpalMixerNodeManager::OpalMixerNodeManager (  ) 

Create a new mixer node manager.

virtual OpalMixerNodeManager::~OpalMixerNodeManager (  )  [virtual]

Destroy all mixer nodes. Calls ShutDown.


Member Function Documentation

void OpalMixerNodeManager::AddNode ( OpalMixerNode node  ) 

Add an existing node.

virtual PSafePtr<OpalMixerNode> OpalMixerNodeManager::AddNode ( OpalMixerNodeInfo info  )  [virtual]

Add a new node. The info variable should be created on the heap and it is subsequently owned by the node. NULL can be passed if defaults are to be used. Calls CreateNode.

Parameters:
info  Initial info for node

void OpalMixerNodeManager::AddNodeName ( PString  name,
OpalMixerNode node 
)

Add node name to association list.

Parameters:
name  alias name for node
node  node associated with name

virtual OpalMixerNode* OpalMixerNodeManager::CreateNode ( OpalMixerNodeInfo info  )  [virtual]

Create a new node. This should create the new instance of the OpalMixerNode as required by the derived class, if any. The info variable should be created on the heap and it is subsequently owned by the node. NULL can be passed if defaults are to be used.

Parameters:
info  Initial info for node

virtual PSafePtr<OpalMixerNode> OpalMixerNodeManager::FindNode ( const PString &  name,
PSafetyMode  mode = PSafeReference 
) [virtual]

Find a new node. This will search for the mixer node using GUID and then name.

Parameters:
name  GUID or alias name for node
mode  Lock mode for returned pointer

virtual PBoolean OpalMixerNodeManager::GarbageCollection (  )  [virtual]

Execute garbage collection of nodes. Returns PTrue if all garbage has been collected. Default behaviour deletes the objects that have been removed from the m_nodesByUID list.

PSafePtr<OpalMixerNode> OpalMixerNodeManager::GetFirstNode ( PSafetyMode  mode = PSafeReference  )  const [inline]

Get the first node. The active nodes may be enumerated by the ++ operator on the PSafePtr.

Parameters:
mode  Lock mode for returned pointer

virtual void OpalMixerNodeManager::RemoveNode ( OpalMixerNode node  )  [virtual]

Remove a node. Shut down all active connections with node, remove its name associations and delete it.

void OpalMixerNodeManager::RemoveNodeName ( PString  name  ) 

Remove node's name from association list.

Parameters:
name  alias name for node

void OpalMixerNodeManager::RemoveNodeNames ( PStringList  names  ) 

Remove list of node names from association list. Commonly used when node destroyed.

Parameters:
names  list of alias names for nodes

virtual void OpalMixerNodeManager::ShutDown (  )  [virtual]

Shuts down, removes and destroys all mixer nodes.


Field Documentation

PDictionary<PString, OpalMixerNode> OpalMixerNodeManager::m_nodesByName [protected]

PSafeDictionary<PGloballyUniqueID, OpalMixerNode> OpalMixerNodeManager::m_nodesByUID [protected]


The documentation for this class was generated from the following file:
Generated on Mon Feb 21 20:19:23 2011 for OPAL by  doxygen 1.4.7