initsenderlogger.h

来自「2009 ROBOCUP 仿真2DSERVER 源码」· C头文件 代码 · 共 336 行

H
336
字号
// -*-c++-*-/***************************************************************************                             initsenderlogger.h                  Classes for writing init messages for logger                             -------------------    begin                : 2008-02-16    copyright            : (C) 2008 by The RoboCup Soccer Simulator                           Maintenance Group.    email                : sserver-admin@lists.sourceforge.net***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU LGPL as published by the Free Software  * *   Foundation; either version 2 of the License, or (at your option) any  * *   later version.                                                        * *                                                                         * ***************************************************************************/#ifndef RCSS_INITSENDER_LOGGER_H#define RCSS_INITSENDER_LOGGER_H#include "initsender.h"#include <rcssbase/factory.hpp>class Logger;namespace rcss {class SerializerMonitor;class InitSenderLogger    : public InitSender {public:    class Params {    public:        std::ostream & M_transport;        const Logger & M_self;        const SerializerMonitor & M_serializer;        const Stadium & M_stadium;        Params( std::ostream & transport,                const Logger & self,                const SerializerMonitor & serializer,                const Stadium & stadium )            : M_transport( transport )            , M_self( self )            , M_serializer( serializer )            , M_stadium( stadium )          { }    };    typedef std::auto_ptr< InitSenderLogger > Ptr;    typedef Ptr (*Creator)( const Params & );    typedef rcss::Factory< Creator, int > FactoryHolder;private:    const SerializerMonitor & M_serializer;    /*:TODO: M_self needs to be replaced with a reference to a      InitObserver and InitObserver should have virtual functions for      stuff like velocity, stamina, etc */    const Logger & M_self;    const Stadium & M_stadium;public:    static    FactoryHolder & factory();    virtual    ~InitSenderLogger();protected:    InitSenderLogger( const Params & params,                      const boost::shared_ptr< InitSenderCommon > common );    const    SerializerMonitor & serializer() const      {          return M_serializer;      }    const    Logger & self() const      {          return M_self;      }    const    Stadium & stadium() const      {          return M_stadium;      }public:    void sendInit()      { }    void sendChangedPlayers()      { }    void sendScore()      { }    virtual    void sendHeader() = 0;    virtual    void sendPlayMode() = 0;    virtual    void sendTeam() = 0;};/*!  \class InitObserverLogger */class InitObserverLogger    : protected BaseObserver< InitSenderLogger > {public:    InitObserverLogger()      { }    InitObserverLogger( InitSenderLogger & sender )        : BaseObserver< InitSenderLogger >( sender )      { }    ~InitObserverLogger()      { }    void setInitSender( InitSenderLogger & sender )      {          BaseObserver< InitSenderLogger >::setSender( sender );      }    void setInitSender( std::auto_ptr< InitSenderLogger > sender )      {          BaseObserver< InitSenderLogger >::setSender( sender );      }    void sendHeader()      {          BaseObserver< InitSenderLogger >::sender().sendHeader();      }    void sendServerParams()      {          BaseObserver< InitSenderLogger >::sender().sendServerParams();      }    void sendPlayerParams()      {          BaseObserver< InitSenderLogger >::sender().sendPlayerParams();      }    void sendPlayerTypes()      {          BaseObserver< InitSenderLogger >::sender().sendPlayerTypes();      }    void sendPlayMode()      {          BaseObserver< InitSenderLogger >::sender().sendPlayMode();      }    void sendTeam()      {          BaseObserver< InitSenderLogger >::sender().sendTeam();      }};class InitSenderLoggerV1    : public InitSenderLogger {public:    InitSenderLoggerV1( const Params & params );protected:    InitSenderLoggerV1( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderLoggerV1();    virtual    void sendHeader();    virtual    void sendServerParams();    virtual    void sendPlayerParams();    virtual    void sendPlayerTypes();    virtual    void sendPlayMode();    virtual    void sendTeam();};class InitSenderLoggerV2    : public InitSenderLoggerV1 {public:    InitSenderLoggerV2( const Params & params );protected:    InitSenderLoggerV2( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderLoggerV2();    virtual    void sendHeader();    virtual    void sendServerParams();    virtual    void sendPlayerParams();    virtual    void sendPlayerTypes();    virtual    void sendPlayMode();    virtual    void sendTeam();};class InitSenderLoggerV3    : public InitSenderLoggerV2 {public:    InitSenderLoggerV3( const Params & params );protected:    InitSenderLoggerV3( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderLoggerV3();    virtual    void sendHeader();    virtual    void sendServerParams();    virtual    void sendPlayerParams();    virtual    void sendPlayerTypes();    virtual    void sendPlayMode();    virtual    void sendTeam();};class InitSenderLoggerV4    : public InitSenderLoggerV3 {public:    InitSenderLoggerV4( const Params & params );protected:    InitSenderLoggerV4( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderLoggerV4();    virtual    void sendHeader();    virtual    void sendServerParams();    virtual    void sendPlayerParams();    virtual    void sendPlayerTypes();    virtual    void sendPlayMode();    virtual    void sendTeam();};class InitSenderLoggerV5    : public InitSenderLoggerV4 {public:    InitSenderLoggerV5( const Params & params );protected:    InitSenderLoggerV5( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderLoggerV5();    virtual    void sendHeader();};}#endif

⌨️ 快捷键说明

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