OpalMixerNodeManager Class Reference

#include <opalmixer.h>

Inheritance diagram for OpalMixerNodeManager:

[legend]
Collaboration diagram for OpalMixerNodeManager:
[legend]

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)
OpalManagerGetManager () const
 Get manager.

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

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 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:
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 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:
mode  Lock mode for returned pointer

OpalManager& OpalMixerNodeManager::GetManager (  )  const [inline]

Get manager.

Reimplemented in OpalMixerEndPoint.

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

Call back when mixed node state information changes.

Default behaviour does nothing.

Parameters:
node  Node that has changed state
change  Change 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:
name  alias name for node

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

Reimplemented in OpalMixerEndPoint.


Field Documentation

OpalManager& OpalMixerNodeManager::m_manager [protected]

PSafeDictionary<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 21 Jun 2013 for OPAL by  doxygen 1.4.7