OPAL  Version 3.14.3
OpalMixerNodeManager Class Reference

#include <opalmixer.h>

Inheritance diagram for OpalMixerNodeManager:
Collaboration diagram for OpalMixerNodeManager:

Public Member Functions

Construction
 OpalMixerNodeManager (OpalManager &manager)
 
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 (const PStringSet &names)
 
virtual PString CreateInternalURI (const PGloballyUniqueID &guid)
 
virtual void OnNodeStatusChanged (const OpalMixerNode &node, OpalConferenceState::ChangeType change)
 
virtual OpalAudioStreamMixerCreateAudioMixer (const OpalMixerNodeInfo &info)
 Create the instance of the audio mixer. More...
 
virtual OpalVideoStreamMixerCreateVideoMixer (const OpalMixerNodeInfo &info)
 Create the instance of the video mixer. More...
 
OpalManagerGetManager () const
 Get manager. More...
 

Protected Attributes

OpalManagerm_manager
 
PSafeDictionary
< PGloballyUniqueID,
OpalMixerNode
m_nodesByUID
 
PSafeDictionary< 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

OpalMixerNodeManager::OpalMixerNodeManager ( OpalManager manager)

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 OpalAudioStreamMixer* OpalMixerNodeManager::CreateAudioMixer ( const OpalMixerNodeInfo info)
virtual

Create the instance of the audio mixer.

virtual PString OpalMixerNodeManager::CreateInternalURI ( const PGloballyUniqueID &  guid)
virtual

Internal function to get internal URI string.

Reimplemented in OpalMixerEndPoint.

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 OpalVideoStreamMixer* OpalMixerNodeManager::CreateVideoMixer ( const OpalMixerNodeInfo info)
virtual

Create the instance of the video mixer.

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
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.

Reimplemented in OpalMixerEndPoint.

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.

OpalManager& OpalMixerNodeManager::GetManager ( ) const
inline

Get manager.

References m_manager.

virtual void OpalMixerNodeManager::OnNodeStatusChanged ( const OpalMixerNode node,
OpalConferenceState::ChangeType  change 
)
virtual

Call back when mixed node state information changes.

Default behaviour does nothing.

Parameters
nodeNode that has changed state
changeChange that occurred

Reimplemented in OpalMixerEndPoint.

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
namealias name for node
void OpalMixerNodeManager::RemoveNodeNames ( const PStringSet &  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.

Reimplemented in OpalMixerEndPoint.

Field Documentation

OpalManager& OpalMixerNodeManager::m_manager
protected

Referenced by GetManager().

PSafeDictionary<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: