00001
00002 #ifndef INCLUDED_WorldStateSerializer_h
00003 #define INCLUDED_WorldStateSerializer_h
00004
00005 #include "Behaviors/BehaviorBase.h"
00006 #include "Shared/Config.h"
00007
00008 class Socket;
00009
00010
00011
00012
00013 class WorldStateSerializerBehavior : public BehaviorBase {
00014 public:
00015 WorldStateSerializerBehavior();
00016
00017 virtual void DoStart();
00018 virtual void DoStop();
00019 virtual void processEvent(const EventBase& e);
00020 virtual std::string getName() const { return "World State Serializer"; }
00021 static std::string getClassDescription() {
00022 char tmp[80];
00023 sprintf(tmp,"Sends sensor information to port %d and current pid values to port %d",config->main.wsjoints_port,config->main.wspids_port);
00024 return tmp;
00025 }
00026
00027 protected:
00028
00029 template<class T>
00030 inline static void encode(char **dst, const T& value) {
00031 memcpy(*dst, &value, sizeof(T));
00032
00033
00034 (*dst) += sizeof(T);
00035 }
00036
00037
00038 template<class T>
00039 inline static void encode(char **dst, const T * src, int num) {
00040 memcpy(*dst, src, num*sizeof(T));
00041 (*dst) += num*sizeof(T);
00042 }
00043
00044 Socket *wsJoints;
00045 Socket *wsPIDs;
00046
00047 private:
00048 WorldStateSerializerBehavior(const WorldStateSerializerBehavior&);
00049 WorldStateSerializerBehavior& operator= (const WorldStateSerializerBehavior&);
00050 };
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063 #endif