OPAL  Version 3.10.10
OpalMixerNodeManager Class Reference

#include <opalmixer.h>

Inheritance diagram for OpalMixerNodeManager:

Data Structures

struct  UserInput
 

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)
 
void QueueUserInput (const PSafePtr< OpalMixerNode > &node, const OpalMixerConnection *connection, const PString &value)
 

Protected Attributes

PSafeDictionary< PGloballyUniqueID, OpalMixerNodem_nodesByUID
 
PDictionary< PString, OpalMixerNodem_nodesByName
 
PQueuedThreadPool< UserInputm_userInputPool
 

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

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
void OpalMixerNodeManager::AddNode ( OpalMixerNode 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
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
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().

void OpalMixerNodeManager::QueueUserInput ( const PSafePtr< OpalMixerNode > &  node,
const OpalMixerConnection connection,
const PString &  value 
)

Queue user input for braodcast

Parameters
nodeNode to qhich user input is broadcast
connectionConnection NOT to send to
valueString value of indication
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().

PQueuedThreadPool<UserInput> OpalMixerNodeManager::m_userInputPool
protected

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