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

📄 fedtime.cc

📁 certi-SHM-3.0.tar 不错的开源的分布式方针软件 大家多多支持 他是linux
💻 CC
字号:
// -*- 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: FedTime.cc,v 3.4 2003/02/19 18:07:29 breholee Exp $// ----------------------------------------------------------------------------#include <config.h>#include "fedtime.hh"namespace certi {// ----------------------------------------------------------------------------// FedTimeFactory// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------FedTime*FedTimeFactory::makeZero(void)    throw (MemoryExhausted){    RTIfedTime *fedtime ;    fedtime = new RTIfedTime();    fedtime->_fedTime = 0 ;    return fedtime ;}// ----------------------------------------------------------------------------FedTime*FedTimeFactory::decode(const char *)    throw (MemoryExhausted){    //not implemented    throw MemoryExhausted();}// ----------------------------------------------------------------------------// FedTime// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------FedTime::~FedTime(void){}// ----------------------------------------------------------------------------// RTIfedTime// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------RTIfedTime::RTIfedTime(void){    _fedTime = 0 ;    _zero = 0 ;}// ----------------------------------------------------------------------------RTIfedTime::RTIfedTime(const Double &dble){    _fedTime = dble ;    initZero();}// ----------------------------------------------------------------------------RTIfedTime::RTIfedTime(const FedTime &time){    RTIfedTime *tmp ;    tmp = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (tmp) {        _fedTime = tmp->_fedTime ;        _zero = tmp->_zero ;    }}// ----------------------------------------------------------------------------RTIfedTime::RTIfedTime(const RTIfedTime &time) : FedTime(){    _fedTime = time._fedTime ;    _zero = time._zero ;}// ----------------------------------------------------------------------------RTIfedTime::~RTIfedTime(void){}// ----------------------------------------------------------------------------// Overloaded functions from FedTime// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------voidRTIfedTime::setZero(void){    _zero = 0 ;}// ----------------------------------------------------------------------------BooleanRTIfedTime::isZero(void){    return ((_zero == 0) ? RTI_TRUE : RTI_FALSE);}// ----------------------------------------------------------------------------voidRTIfedTime::setEpsilon(void){    //not implemented}// ----------------------------------------------------------------------------voidRTIfedTime::setPositiveInfinity(void){    //not implemented}// ----------------------------------------------------------------------------BooleanRTIfedTime::isPositiveInfinity(void){    //not implemented    return RTI_FALSE ; // compatibilite avec le type retourne}// ----------------------------------------------------------------------------intRTIfedTime::encodedLength(void) const{    //not implemented    return 0 ; // compatibilite avec le type retourne}// ----------------------------------------------------------------------------voidRTIfedTime::encode(char *) const{    //not implemented}// ----------------------------------------------------------------------------intRTIfedTime::getPrintableLength(void) const{    //not implemented    return 0 ; // compatibilite avec le type retourne}// ----------------------------------------------------------------------------voidRTIfedTime::getPrintableString(char *){    //not implemented}// ----------------------------------------------------------------------------// Overloaded operators from FedTime// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------FedTime&RTIfedTime::operator+= (const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        _fedTime += fedtime->_fedTime ;        initZero();        return *this ;    }    else throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------FedTime&RTIfedTime::operator-= (const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        _fedTime -= fedtime->_fedTime ;        initZero();        return *this ;    }    else throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------BooleanRTIfedTime::operator<= (const FedTime &time) const    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        if (_fedTime <= fedtime->_fedTime) return RTI_TRUE ;        else return RTI_FALSE ;    }    else throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------BooleanRTIfedTime::operator<(const FedTime &time) const    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        if (_fedTime < fedtime->_fedTime)            return RTI_TRUE ;        else            return RTI_FALSE ;    }    else        throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------BooleanRTIfedTime::operator>= (const FedTime &time) const    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        if (_fedTime >= fedtime->_fedTime)            return RTI_TRUE ;        else            return RTI_FALSE ;    }    else        throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------BooleanRTIfedTime::operator>(const FedTime &time) const    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        if (_fedTime > fedtime->_fedTime)            return RTI_TRUE ;        else            return RTI_FALSE ;    }    else        throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------BooleanRTIfedTime::operator== (const FedTime &time) const    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        if (_fedTime == fedtime->_fedTime)            return RTI_TRUE ;        else            return RTI_FALSE ;    }    else        throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------FedTime&RTIfedTime::operator= (const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        _fedTime = fedtime->_fedTime ;        initZero();        return *this ;    }    else        throw (new InvalidFederationTime());}// ----------------------------------------------------------------------------// Implementation functions// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------DoubleRTIfedTime::getTime(void) const{    return _fedTime ;}// ----------------------------------------------------------------------------// Implementation operators// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------BooleanRTIfedTime::operator!= (const FedTime &time) const    throw (InvalidFederationTime){    RTIfedTime *fedtime ;    fedtime = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (fedtime) {        if (_fedTime != fedtime->_fedTime)            return RTI_TRUE ;        else            return RTI_FALSE ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------FedTime&RTIfedTime::operator= (const RTIfedTime &time)    throw (InvalidFederationTime){    // RTIfedTime *fedtime = new RTIfedTime();    // fedtime->_fedTime = ((RTIfedTime)time)._fedTime ;    _fedTime = time._fedTime ;    _zero = time._zero ;    return *this ;}// ----------------------------------------------------------------------------RTIfedTimeRTIfedTime::operator+(const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = _fedTime + param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------RTIfedTimeRTIfedTime::operator-(const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = _fedTime - param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------RTIfedTimeRTIfedTime::operator*(const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = _fedTime * param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------RTIfedTimeRTIfedTime::operator/(const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = _fedTime / param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------// Implementation friends// ----------------------------------------------------------------------------//ostream& operator<<(ostream&, const FedTime&)// ----------------------------------------------------------------------------// Global operators// ----------------------------------------------------------------------------// ----------------------------------------------------------------------------RTIfedTimeoperator+(const Double &d, const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = d + param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------RTIfedTimeoperator-(const Double &d, const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = d - param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------RTIfedTimeoperator*(const Double &d, const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = d * param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}// ----------------------------------------------------------------------------RTIfedTimeoperator/(const Double &d, const FedTime &time)    throw (InvalidFederationTime){    RTIfedTime *param ;    param = dynamic_cast<RTIfedTime *>(& (const_cast<FedTime&>(time)));    if (param) {        RTIfedTime fedtime = d / param->_fedTime ;        fedtime.initZero();        return fedtime ;    }    else        throw InvalidFederationTime();}} // namespace certi// $Id: FedTime.cc,v 3.4 2003/02/19 18:07:29 breholee Exp $

⌨️ 快捷键说明

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