OPAL  Version 3.10.4
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,
OpalMixerNode
m_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

Create a new mixer node manager.

Destroy all mixer nodes. Calls ShutDown.


Member Function Documentation

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:
infoInitial info for node

Add an existing node.

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

Add node name to association list.

Parameters:
namealias name for node
nodenode associated with name

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:
infoInitial 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:
nameGUID or alias name for node
modeLock mode for returned pointer

Referenced by OpalMixerEndPoint::FindNode().

virtual PBoolean OpalMixerNodeManager::GarbageCollection ( ) [virtual]

Execute garbage collection of nodes. Returns true 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:
modeLock mode for returned pointer

References m_nodesByUID.

Referenced by OpalMixerEndPoint::GetFirstNode().

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

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

Referenced by OpalMixerEndPoint::RemoveNode().

void OpalMixerNodeManager::RemoveNodeName ( PString  name)

Remove node's name from association list.

Parameters:
namealias name for node
void OpalMixerNodeManager::RemoveNodeNames ( PStringList  names)

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

Parameters:
nameslist 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]

Referenced by GetFirstNode().


The documentation for this class was generated from the following file: