📄 serializer.h
字号:
// -*-c++-*-/*************************************************************************** serializer.h Classes for serializing data to clients ------------------- begin : 27-JAN-2002 copyright : (C) 2002 by The RoboCup Soccer Server 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 _SERIALIZER_H_#define _SERIALIZER_H_#include <string>#include <iostream>#include <map>#include "types.h"#include <rcssbase/lib/factory.hpp>namespace rcss{ namespace clang { class Msg; } class SerializerCommon { protected: SerializerCommon(); virtual ~SerializerCommon(); public: typedef const SerializerCommon&(*Creator)(); typedef rcss::lib::Factory< Creator, int > Factory; static Factory& factory(); virtual void serializeServerParamBegin( std::ostream& ) const {} virtual void serializeServerParamEnd( std::ostream& ) const {} virtual void serializePlayerParamBegin( std::ostream& ) const {} virtual void serializePlayerParamEnd( std::ostream& ) const {} virtual void serializePlayerTypeBegin( std::ostream& ) const {} virtual void serializePlayerTypeEnd( std::ostream& ) const {} virtual void serializeParam( std::ostream&, int ) const {} virtual void serializeParam( std::ostream&, unsigned int ) const {} virtual void serializeParam( std::ostream&, bool ) const {} virtual void serializeParam( std::ostream&, double ) const {} virtual void serializeParam( std::ostream&, const std::string& ) const {} virtual void serializeParam( std::ostream&, const std::string&, int ) const {} virtual void serializeParam( std::ostream&, const std::string&, bool ) const {} virtual void serializeParam( std::ostream&, const std::string&, double ) const {} virtual void serializeParam( std::ostream&, const std::string&, const std::string& ) const {} }; class Serializer { public: Serializer( const SerializerCommon& common ) : m_common( common ) {} protected: const SerializerCommon& commonSerializer() const { return m_common; } public: void serializeServerParamBegin( std::ostream& strm ) const { commonSerializer().serializeServerParamBegin( strm ); } void serializeServerParamEnd( std::ostream& strm ) const { commonSerializer().serializeServerParamEnd( strm ); } void serializePlayerParamBegin( std::ostream& strm ) const { commonSerializer().serializePlayerParamBegin( strm ); } void serializePlayerParamEnd( std::ostream& strm ) const { commonSerializer().serializePlayerParamEnd( strm ); } void serializePlayerTypeBegin( std::ostream& strm ) const { commonSerializer().serializePlayerTypeBegin( strm ); } void serializePlayerTypeEnd( std::ostream& strm ) const { commonSerializer().serializePlayerTypeEnd( strm ); } void serializeParam( std::ostream& strm, int value ) const { commonSerializer().serializeParam( strm, value ); } void serializeParam( std::ostream& strm, unsigned int value ) const { commonSerializer().serializeParam( strm, value ); } void serializeParam( std::ostream& strm, bool value ) const { commonSerializer().serializeParam( strm, value ); } void serializeParam( std::ostream& strm, double value ) const { commonSerializer().serializeParam( strm, value ); } void serializeParam( std::ostream& strm, const std::string& value ) const { commonSerializer().serializeParam( strm, value ); } void serializeParam( std::ostream& strm, const std::string& name, int value ) const { commonSerializer().serializeParam( strm, name, value ); } void serializeParam( std::ostream& strm, const std::string& name, bool value ) const { commonSerializer().serializeParam( strm, name, value ); } void serializeParam( std::ostream& strm, const std::string& name, double value ) const { commonSerializer().serializeParam( strm, name, value ); } void serializeParam( std::ostream& strm, const std::string& name, const std::string& value ) const { commonSerializer().serializeParam( strm, name, value ); } private: const SerializerCommon& m_common; }; class SerializerPlayer : public Serializer { public: typedef const SerializerPlayer*(*Creator)(); typedef rcss::lib::Factory< Creator, int > Factory; static Factory& factory(); protected: SerializerPlayer( const SerializerCommon& common ); virtual ~SerializerPlayer(); public: virtual void serializeRefAudio( std::ostream& strm, const int& time, const char* msg ) const = 0; virtual void serializeCoachAudio( std::ostream& strm, const int& time, const std::string& name, const char* msg ) const = 0; virtual void serializeCoachStdAudio( std::ostream& strm, const int& time, const std::string& name, const clang::Msg& msg ) const = 0; virtual void serializeSelfAudio( std::ostream& strm, const int& time, const char* msg ) const = 0; virtual void serializePlayerAudio( std::ostream& strm, const int& time, const double& dir, const char* msg ) const = 0; virtual void serializeAllyAudioFull( std::ostream&, const int, const double, const int, const char* ) const {} virtual void serializeOppAudioFull( std::ostream&, const int, const double, const char* ) const {} virtual void serializeAllyAudioShort( std::ostream&, const int, const int ) const {} virtual void serializeOppAudioShort( std::ostream&, const int ) const {} virtual void serializeVisualBegin( std::ostream&, int ) const {} virtual void serializeVisualEnd( std::ostream& ) const {} virtual void serializeVisualObject( std::ostream&, const char*, int ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, double, double ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, double, double, double ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, double, double, double, double ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, double, double, int, int ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, bool ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, int, bool ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, double, double, int, int, bool ) const {} virtual void serializeVisualObject( std::ostream&, const char*, double, int, double, double, int, int, int, bool ) const {} virtual void serializeBodyBegin( std::ostream&, int ) const {} virtual void serializeBodyEnd( std::ostream& ) const {} virtual void
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -