⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 federationservices.cc

📁 分布式仿真 开放源码
💻 CC
字号:
// ----------------------------------------------------------------------------// CERTI - HLA RunTime Infrastructure// Copyright (C) 2002, 2003  ONERA//// This file is part of CERTI-libRTI//// CERTI-libRTI 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-libRTI 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: FederationServices.cc,v 3.2 2004/03/04 20:19:05 breholee Exp $// ----------------------------------------------------------------------------#include <config.h>#include "RTIambassador.hh"#include "Message.hh"namespace certi {static pdCDebug D("LIBRTI", "(libRTI FM) - ");// ===========================================================================// FEDERATION  MANAGEMENT// ===========================================================================// ----------------------------------------------------------------------------//! Create Federation Execution./*! Send a CREATE_FEDERATION_EXECUTION request type to inform rtia process a  new federation is being created.*/voidRTIambassador::createFederationExecution(const char *executionName,                                         const char */* FED */)    throw (FederationExecutionAlreadyExists,           ConcurrentAccessAttempted,           CouldNotOpenFED, //not implemented           ErrorReadingFED, //not implemented           SaveInProgress,           RestoreInProgress,           RTIinternalError){    Message req, rep ;    req.type = Message::CREATE_FEDERATION_EXECUTION ;    req.setFederationName(executionName);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Destroy Federation Execution.voidRTIambassador::destroyFederationExecution(const char *executionName)    throw (FederatesCurrentlyJoined,           FederationExecutionDoesNotExist,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError){    Message req, rep ;    req.type = Message::DESTROY_FEDERATION_EXECUTION ;    req.setFederationName(executionName);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Join Federation Execution.FederateHandleRTIambassador::joinFederationExecution(const char *yourName,				       const char *executionName,				       FederateAmbassadorPtr fedamb)    throw (FederateAlreadyExecutionMember,           FederationExecutionDoesNotExist,           CouldNotOpenRID, //CERTI           ErrorReadingRID, //CERTI           CouldNotOpenFED, //not implemented           ErrorReadingFED, //not implemented           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError){    Message req, rep ;    fed_amb = (FederateAmbassador *) fedamb ;    req.type = Message::JOIN_FEDERATION_EXECUTION ;    req.setFederateName(yourName);    req.setFederationName(executionName);    executeService(&req, &rep);    return rep.getFederate();}// ----------------------------------------------------------------------------//! Resign Federation Execution.voidRTIambassador::resignFederationExecution(ResignAction theAction)    throw (FederateOwnsAttributes,           FederateNotExecutionMember,           InvalidResignAction,           ConcurrentAccessAttempted,           RTIinternalError){    Message req, rep ;    req.type = Message::RESIGN_FEDERATION_EXECUTION ;    req.setResignAction(theAction);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Register Federation Synchronization PointvoidRTIambassador::registerFederationSynchronizationPoint(const char *label,                                                      const char *the_tag)    throw (FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError){    Message req, rep ;    req.type = Message::REGISTER_FEDERATION_SYNCHRONIZATION_POINT ;    req.setLabel(label);    req.setTag(the_tag);    executeService(&req, &rep);}// ----------------------------------------------------------------------------voidRTIambassador::registerFederationSynchronizationPoint(const char *label,						      const char *theTag,						      const FederateHandleSet &)    throw (FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError,           UnimplementedService) //CERTI{    throw UnimplementedService();    Message req, rep ;    req.type = Message::REGISTER_FEDERATION_SYNCHRONIZATION_POINT ;    req.setLabel(label);    req.setTag(theTag);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Synchronization Point AchievedvoidRTIambassador::synchronizationPointAchieved(const char *label)    throw (SynchronizationPointLabelWasNotAnnounced,           FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError){    Message req, rep ;    req.type = Message::SYNCHRONIZATION_POINT_ACHIEVED ;    req.setLabel(label);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Request Federation Save.voidRTIambassador::requestFederationSave(const char *label,                                     const FedTime& theTime)    throw (FederationTimeAlreadyPassed,           InvalidFederationTime,           FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError){    throw UnimplementedService();    Message req, rep ;    req.type = Message::REQUEST_FEDERATION_SAVE ;    req.setFedTime(theTime);    req.setLabel(label);    req.setBoolean(RTI_TRUE);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Request Federation Save.voidRTIambassador::requestFederationSave(const char *label)    throw (FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError){    throw UnimplementedService();    Message req, rep ;    req.type = Message::REQUEST_FEDERATION_SAVE ;    req.setLabel(label);    req.setBoolean(RTI_FALSE);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Federate Save Begun.voidRTIambassador::federateSaveBegun()    throw (SaveNotInitiated,           FederateNotExecutionMember,           ConcurrentAccessAttempted,           RestoreInProgress,           RTIinternalError){    throw UnimplementedService();    Message req, rep ;    req.type = Message::FEDERATE_SAVE_BEGUN ;    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Federate Save Complete.voidRTIambassador::federateSaveComplete()    throw (SaveNotInitiated,           FederateNotExecutionMember,           ConcurrentAccessAttempted,           RestoreInProgress,           RTIinternalError){    throw UnimplementedService();    Message req, rep ;    req.type = Message::FEDERATE_SAVE_COMPLETE ;    executeService(&req, &rep);}// ----------------------------------------------------------------------------// Federate Save Not Complete.voidRTIambassador::federateSaveNotComplete()    throw (SaveNotInitiated,           FederateNotExecutionMember,           ConcurrentAccessAttempted,           RestoreInProgress,           RTIinternalError){    throw UnimplementedService();    Message req, rep ;    req.type = Message::FEDERATE_SAVE_NOT_COMPLETE ;    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Request Restore.voidRTIambassador::requestFederationRestore(const char *label)    throw (SpecifiedSaveLabelDoesNotExist, //CERTI           FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RestoreInProgress,           RTIinternalError,           UnimplementedService) //CERTI{    throw UnimplementedService();    Message req, rep ;    req.type = Message::REQUEST_FEDERATION_RESTORE ;    req.setLabel(label);    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Restore Complete.voidRTIambassador::federateRestoreComplete()    throw (UnknownLabel,           RestoreNotRequested,           RTICannotRestore,           FederateNotExecutionMember,           ConcurrentAccessAttempted,           SaveInProgress,           RTIinternalError,           UnimplementedService) //CERTI{    throw UnimplementedService();    Message req, rep ;    req.type = Message::FEDERATE_RESTORE_COMPLETE ;    executeService(&req, &rep);}// ----------------------------------------------------------------------------//! Federate Restore Not Complete.voidRTIambassador::federateRestoreNotComplete()    throw (UnknownLabel,           RestoreNotRequested,           FederateNotExecutionMember,           RTICannotRestore,           ConcurrentAccessAttempted,           SaveInProgress,           RTIinternalError,           UnimplementedService) //CERTI{    throw UnimplementedService();    Message req, rep ;    req.type = Message::FEDERATE_RESTORE_NOT_COMPLETE ;    executeService(&req, &rep);}}// $Id: FederationServices.cc,v 3.2 2004/03/04 20:19:05 breholee Exp $

⌨️ 快捷键说明

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