#include <OSGConnectionFactory.h>
Public Member Functions | |
interface | |
| *GroupConnection * | createGroup (const std::string &name) |
| PointConnection * | createPoint (const std::string &name) |
Dump | |
| *void | dump (void) |
Static Public Member Functions | |
access | |
| *static ConnectionFactory & | the () |
Public Attributes | |
types | |
| *typedef std::map< std::string, ConnectionType * > | TypeMap |
Protected Member Functions | |
Constructors | |
| * | ConnectionFactory (void) |
Destructor | |
| *virtual | ~ConnectionFactory (void) |
Type information | |
| *void | addGroupType (ConnectionType *type) |
| void | addPointType (ConnectionType *type) |
| void | subGroupType (ConnectionType *type) |
| void | subPointType (ConnectionType *type) |
Protected Attributes | |
fields | |
| *TypeMap | _groupMap |
| TypeMap | _pointMap |
Private Member Functions | |
| ConnectionFactory (const ConnectionFactory &source) | |
| prohibit default function (move to 'public' if needed) | |
| void | operator= (const ConnectionFactory &source) |
| prohibit default function (move to 'public' if needed) | |
Static Private Attributes | |
| static ConnectionFactory * | _the = NULL |
Friends | |
| class | ConnectionType |
Connection *c = ConnectionFactory::the().create("Multicast");
if(!c)
{
SLOG << "Unknown connection:";
}
Each connection type must be registered to the factory. This is done by static initialisation. The following example shows registration of the Multicast connection.
ConnectionType MulticastConnection::_type(&MulticastConnection::create,
"Multicast");
Definition at line 55 of file OSGConnectionFactory.h.
|
|
Constructor documentation Definition at line 84 of file OSGConnectionFactory.cpp. Referenced by the().
|
|
|
Destructor documentation Definition at line 95 of file OSGConnectionFactory.cpp.
|
|
|
|
|
|
get singelton factory Definition at line 126 of file OSGConnectionFactory.cpp. References _the, and ConnectionFactory(). Referenced by osg::ClusterServer::acceptClient(), osg::ClusterNetwork::connectAllGroupToPoint(), osg::ClusterNetwork::connectAllPointToPoint(), osg::ConnectionType::ConnectionType(), osg::ClusterWindow::init(), and osg::ConnectionType::~ConnectionType(). 00127 { 00128 if(_the == NULL) 00129 _the=new ConnectionFactory(); 00130 return *_the; 00131 }
|
|
|
create group connection by name Definition at line 104 of file OSGConnectionFactory.cpp. References _groupMap. Referenced by osg::ClusterNetwork::connectAllGroupToPoint(), osg::ClusterNetwork::connectAllPointToPoint(), and osg::ClusterWindow::init(). 00105 { 00106 TypeMap::iterator i=_groupMap.find(name); 00107 if(i == _groupMap.end()) 00108 return NULL; 00109 else 00110 return i->second->createGroup(); 00111 }
|
|
|
create point connection by name Definition at line 115 of file OSGConnectionFactory.cpp. References _pointMap. Referenced by osg::ClusterNetwork::connectAllGroupToPoint(), and osg::ClusterNetwork::connectAllPointToPoint(). 00116 { 00117 TypeMap::iterator i=_pointMap.find(name); 00118 if(i == _pointMap.end()) 00119 return NULL; 00120 else 00121 return i->second->createPoint(); 00122 }
|
|
|
|
|
|
add new group type Definition at line 138 of file OSGConnectionFactory.cpp. References _groupMap, osg::ConnectionType::getName(), and SINFO. Referenced by osg::ConnectionType::ConnectionType(). 00139 { 00140 _groupMap[type->getName()]=type; 00141 SINFO << "Group Connection type " << type->getName() << " added" << std::endl; 00142 }
|
|
|
add new point type Definition at line 146 of file OSGConnectionFactory.cpp. References _pointMap, osg::ConnectionType::getName(), and SINFO. Referenced by osg::ConnectionType::ConnectionType(). 00147 { 00148 _pointMap[type->getName()]=type; 00149 SINFO << "Point Connection type " << type->getName() << " added" << std::endl; 00150 }
|
|
|
remove group type Definition at line 165 of file OSGConnectionFactory.cpp. References _groupMap, osg::ConnectionType::getName(), and SINFO. Referenced by osg::ConnectionType::~ConnectionType(). 00166 { 00167 TypeMap::iterator i=_groupMap.find(type->getName()); 00168 if(i != _groupMap.end() && i->second == type) 00169 _groupMap.erase(i); 00170 SINFO << "Group connection type " << type->getName() 00171 << " removed" << std::endl; 00172 }
|
|
|
remove point type Definition at line 154 of file OSGConnectionFactory.cpp. References _pointMap, osg::ConnectionType::getName(), and SINFO. Referenced by osg::ConnectionType::~ConnectionType(). 00155 { 00156 TypeMap::iterator i=_pointMap.find(type->getName()); 00157 if(i != _pointMap.end() && i->second == type) 00158 _pointMap.erase(i); 00159 SINFO << "Point connection type " << type->getName() 00160 << " removed" << std::endl; 00161 }
|
|
|
|
|
|
Definition at line 134 of file OSGConnectionFactory.h. |
|
|
Definition at line 64 of file OSGConnectionFactory.h. |
|
|
Definition at line 96 of file OSGConnectionFactory.h. Referenced by addGroupType(), createGroup(), and subGroupType(). |
|
|
Definition at line 97 of file OSGConnectionFactory.h. Referenced by addPointType(), createPoint(), and subPointType(). |
|
|
Definition at line 54 of file OSGConnectionFactory.cpp. Referenced by the(). |
1.4.3