initsenderplayer.h

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

H
281
字号
// -*-c++-*-/***************************************************************************                             initsenderplayer.h                  Classes for sending sense init messages to players                             -------------------    begin                : 2008-02-17    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_PLAYER_H#define RCSS_INITSENDER_PLAYER_H#include "initsender.h"#include <rcssbase/factory.hpp>class Player;namespace rcss {class SerializerPlayer;/*!//===================================================================////  CLASS: InitSenderPlayer////  DESC: Base class for the init protocol for players.////===================================================================*/class InitSenderPlayer    : public InitSender {public:    class Params {    public:        std::ostream & M_transport;        const Player & M_self;        const SerializerPlayer & M_serializer;        const Stadium & M_stadium;        Params( std::ostream & transport,                const Player & self,                const SerializerPlayer & serializer,                const Stadium & stadium )            : M_transport( transport )            , M_self( self )            , M_serializer( serializer )            , M_stadium( stadium )          { }    };public:    typedef std::auto_ptr< InitSenderPlayer > Ptr;    typedef Ptr (*Creator)( const Params & );    typedef rcss::Factory< Creator, int > FactoryHolder;    static    FactoryHolder & factory();    virtual    ~InitSenderPlayer();protected:    InitSenderPlayer( const Params & params,                      const boost::shared_ptr< InitSenderCommon > common );    const    SerializerPlayer & serializer() const      {          return M_serializer;      }    const    Player & self() const      {          return M_self;      }    const    Stadium & stadium() const      {          return M_stadium;      }private:    const SerializerPlayer & 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 Player & M_self;    const Stadium & M_stadium;public:    virtual    void sendReconnect() = 0;};/*!//===================================================================////  CLASS: InitObserverPlayer////  DESC: Interface for an object that receives init information.////===================================================================*/class InitObserverPlayer    : protected BaseObserver< InitSenderPlayer > {public:    InitObserverPlayer()      { }    InitObserverPlayer( InitSenderPlayer & sender )        : BaseObserver< InitSenderPlayer >( sender )      { }    InitObserverPlayer( std::auto_ptr< InitSenderPlayer > sender )        : BaseObserver< InitSenderPlayer >( sender )      { }    ~InitObserverPlayer()      { }    void setInitSender( InitSenderPlayer & sender )      {          BaseObserver< InitSenderPlayer >::setSender( sender );      }    void setInitSender( std::auto_ptr< InitSenderPlayer > sender )      {          BaseObserver< InitSenderPlayer >::setSender( sender );      }    void sendInit()      {          BaseObserver< InitSenderPlayer >::sender().sendInit();      }    void sendReconnect()      {          BaseObserver< InitSenderPlayer >::sender().sendReconnect();      }    void sendServerParams()      {          BaseObserver< InitSenderPlayer >::sender().sendServerParams();      }    void sendPlayerParams()      {          BaseObserver< InitSenderPlayer >::sender().sendPlayerParams();      }    void sendPlayerTypes()      {          BaseObserver< InitSenderPlayer >::sender().sendPlayerTypes();      }    void sendChangedPlayers()      {          BaseObserver< InitSenderPlayer >::sender().sendChangedPlayers();      }    void sendScore()      {          BaseObserver< InitSenderPlayer >::sender().sendScore();      }};/*!//===================================================================////  CLASS: InitSenderPlayerV1////  DESC: version 1 of the init protocol.////===================================================================*/class InitSenderPlayerV1    : public InitSenderPlayer {public:    InitSenderPlayerV1( const Params & params );protected:    InitSenderPlayerV1( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderPlayerV1();    virtual    void sendInit();    virtual    void sendReconnect();    virtual    void sendScore();    virtual    void sendChangedPlayers();};/*!//===================================================================////  CLASS: InitSenderPlayerV7////  DESC: version 7 of the init protocol.////===================================================================*/class InitSenderPlayerV7    : public InitSenderPlayerV1 {public:    InitSenderPlayerV7( const Params & params );protected:    InitSenderPlayerV7( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderPlayerV7();    virtual    void sendChangedPlayers();};/*!//===================================================================////  CLASS: InitSenderPlayerV8////  DESC: version 8 of the init protocol.////===================================================================*/class InitSenderPlayerV8    : public InitSenderPlayerV7 {public:    InitSenderPlayerV8( const Params & params );protected:    InitSenderPlayerV8( const Params & params,                        const boost::shared_ptr< InitSenderCommon > common );public:    virtual    ~InitSenderPlayerV8();};}#endif

⌨️ 快捷键说明

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