initsendermonitor.h
来自「2009 ROBOCUP 仿真2DSERVER 源码」· C头文件 代码 · 共 300 行
H
300 行
// -*-c++-*-/*************************************************************************** initsendermonitor.h Classes for sending sense init messages for monitors ------------------- begin : 2007-11-21 copyright : (C) 2007 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_MONITOR_H#define RCSS_INITSENDER_MONITOR_H#include "initsender.h"#include <rcssbase/factory.hpp>class Monitor;namespace rcss {class SerializerMonitor;/*! \class InitSenderMonitor \brief Base class for the init protocol for monitors.*/class InitSenderMonitor : public InitSender {public: class Params { public: std::ostream & M_transport; const Monitor & M_self; const SerializerMonitor & M_serializer; const Stadium & M_stadium; Params( std::ostream & transport, const Monitor & self, const SerializerMonitor & serializer, const Stadium & stadium ) : M_transport( transport ) , M_self( self ) , M_serializer( serializer ) , M_stadium( stadium ) { } }; typedef std::auto_ptr< InitSenderMonitor > 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 Monitor & M_self; const Stadium & M_stadium;public: static FactoryHolder & factory(); virtual ~InitSenderMonitor();protected: InitSenderMonitor( const Params & params, const boost::shared_ptr< InitSenderCommon > common ); const SerializerMonitor & serializer() const { return M_serializer; } const Monitor & self() const { return M_self; } const Stadium & stadium() const { return M_stadium; }public: void sendReconnect() { } virtual void sendTeamGraphic() = 0; virtual void sendPlayMode() = 0;};/*! \class InitObserverMonitor \brief interface for an object that receives init information */class InitObserverMonitor : protected BaseObserver< InitSenderMonitor > {public: InitObserverMonitor() { } InitObserverMonitor( InitSenderMonitor & sender ) : BaseObserver< InitSenderMonitor >( sender ) { } ~InitObserverMonitor() { } void setInitSender( InitSenderMonitor & sender ) { BaseObserver< InitSenderMonitor >::setSender( sender ); } void setInitSender( std::auto_ptr< InitSenderMonitor > sender ) { BaseObserver< InitSenderMonitor >::setSender( sender ); } void sendInit() { BaseObserver< InitSenderMonitor >::sender().sendInit(); } void sendServerParams() { BaseObserver< InitSenderMonitor >::sender().sendServerParams(); } void sendPlayerParams() { BaseObserver< InitSenderMonitor >::sender().sendPlayerParams(); } void sendPlayerTypes() { BaseObserver< InitSenderMonitor >::sender().sendPlayerTypes(); } void sendChangedPlayers() { BaseObserver< InitSenderMonitor >::sender().sendChangedPlayers(); } void sendScore() { BaseObserver< InitSenderMonitor >::sender().sendScore(); } void sendTeamGraphic() { BaseObserver< InitSenderMonitor >::sender().sendTeamGraphic(); } void sendPlayMode() { BaseObserver< InitSenderMonitor >::sender().sendPlayMode(); }};/*! \class InitSenderMonitorV1 \brief version 1 of the init protocol. */class InitSenderMonitorV1 : public InitSenderMonitor {public: InitSenderMonitorV1( const Params & params );protected: InitSenderMonitorV1( const Params & params, const boost::shared_ptr< InitSenderCommon > common );public: virtual ~InitSenderMonitorV1(); virtual void sendInit(); virtual void sendServerParams(); virtual void sendPlayerParams(); virtual void sendPlayerTypes(); virtual void sendChangedPlayers(); virtual void sendScore(); virtual void sendTeamGraphic(); virtual void sendPlayMode();};/*! \class InitSenderMonitorV2 \brief version 2 of the init protocol. */class InitSenderMonitorV2 : public InitSenderMonitorV1 {public: InitSenderMonitorV2( const Params & params );protected: InitSenderMonitorV2( const Params & params, const boost::shared_ptr< InitSenderCommon > common );public: virtual ~InitSenderMonitorV2(); virtual void sendServerParams(); virtual void sendPlayerParams(); virtual void sendPlayerTypes();};/*! \class InitSenderMonitorV3 \brief version 3 of the init protocol. The version of the common sender is "8". */class InitSenderMonitorV3 : public InitSenderMonitorV2 {public: InitSenderMonitorV3( const Params & params );protected: InitSenderMonitorV3( const Params & params, const boost::shared_ptr< InitSenderCommon > common );public: virtual ~InitSenderMonitorV3(); virtual void sendServerParams(); virtual void sendPlayerParams(); virtual void sendPlayerTypes(); virtual void sendScore(); virtual void sendTeamGraphic(); virtual void sendPlayMode();};}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?