rootobject.cc

来自「certi-SHM-3.0.tar 不错的开源的分布式方针软件 大家多多支持 他」· CC 代码 · 共 157 行

CC
157
字号
// -*- mode:C++ ; tab-width:4 ; c-basic-offset:4 ; indent-tabs-mode:nil -*-// ----------------------------------------------------------------------------// CERTI - HLA RunTime Infrastructure// Copyright (C) 2002, 2003  ONERA//// This file is part of CERTI-libCERTI//// CERTI-libCERTI is free software ; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License// as published by the Free Software Foundation ; either version 2 of// the License, or (at your option) any later version.//// CERTI-libCERTI is distributed in the hope that it will be useful, but// WITHOUT ANY WARRANTY ; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this program ; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307// USA//// $Id: RootObject.cc,v 3.7 2003/03/12 10:07:18 breholee Exp $// ----------------------------------------------------------------------------#include "RootObject.hh"namespace certi {static pdCDebug D("ROOTOBJECT", "(RootObject) ");// ----------------------------------------------------------------------------//! The SocketServer can be NULL on the RTIA.RootObject::RootObject(SecurityServer *security_server)    : server(security_server){    ObjectClasses = new ObjectClassSet(server);    Interactions = new InteractionSet(server);    objects = new ObjectSet(server);}// ----------------------------------------------------------------------------//! Delete object classes, interactions, objects and routing spaces.RootObject::~RootObject(void){    delete ObjectClasses ;    delete Interactions ;    delete objects ;    for (int i = 1 ; i < routingSpaces.size(); i++)        delete routingSpaces[i] ;    routingSpaces.clear();}// ----------------------------------------------------------------------------//! Print the Root Object tree to the standard output.voidRootObject::display(void) const{    cout << endl << "Root Object Tree :" << endl ;    ObjectClasses->display();    Interactions->display();    if (routingSpaces.size() > 0) {        cout << "+ Routing Spaces :" << endl ;        for (vector<RoutingSpace *>::const_iterator i = routingSpaces.begin();             i != routingSpaces.end();             i++) {            (*i)->display();        }    }}// ----------------------------------------------------------------------------/*! Return the LevelID of the level whose name is 'theLevelName' if the  security server is defined, else return PublicLevelID(on the RTIA).*/SecurityLevelIDRootObject::GetSecurityLevelID(SecurityLevelName theLevelName){    if (server != NULL)        return server->getLevelIDWithName(theLevelName);    else        return PublicLevelID ;}// ----------------------------------------------------------------------------//! registerFederate.voidRootObject::registerFederate(const char *the_federate,                             SecurityLevelID the_level_id){    if (server != NULL)        server->registerFederate(the_federate, the_level_id);}// ----------------------------------------------------------------------------//! add a routing space[HLA 1.3]voidRootObject::addRoutingSpace(RoutingSpace *rs){    if (rs != 0) {        routingSpaces.push_back(rs);    }}// ----------------------------------------------------------------------------//! get a routing space handleSpaceHandleRootObject::getRoutingSpaceHandle(string rs)    throw (NameNotFound){    vector<RoutingSpace *>::const_iterator i ;    for (i = routingSpaces.begin(); i != routingSpaces.end(); i++) {        if ((*i)->getName() == rs) {            return (*i)->getHandle();        }    }    throw new NameNotFound();}// ----------------------------------------------------------------------------//! get a routing space namestringRootObject::getRoutingSpaceName(SpaceHandle handle)    throw (SpaceNotDefined){    vector<RoutingSpace *>::const_iterator i ;    for (i = routingSpaces.begin(); i != routingSpaces.end(); i++) {        if ((*i)->getHandle() == handle) {            return (*i)->getName().c_str();        }    }    throw new SpaceNotDefined();}// ----------------------------------------------------------------------------//! get a routing spaceRoutingSpace *RootObject::getRoutingSpace(SpaceHandle handle)    throw (SpaceNotDefined){    vector<RoutingSpace *>::const_iterator i ;    for (i = routingSpaces.begin(); i != routingSpaces.end(); i++) {        if ((*i)->getHandle() == handle) {            return *i ;        }    }    throw new SpaceNotDefined();}} // namespace certi// $Id: RootObject.cc,v 3.7 2003/03/12 10:07:18 breholee Exp $

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?