00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __VEHICLE_COMM__
00010 #define __VEHICLE_COMM__
00011
00012 #include "ace/Synch.h"
00013 #include "ace/INET_Addr.h"
00014
00015 #include <Utils/SystemDefs.h>
00016 #include <Comm/VehicleNetConfig.h>
00017
00018 class ACE_SOCK_Dgram_Mcast;
00019
00020
00021 class VehicleComm
00022 {
00023 public:
00024 VehicleComm();
00025 explicit VehicleComm(VehicleNetConfig *myConfig);
00026
00027 virtual ~VehicleComm();
00028
00029 int Connect(VehicleNetConfig *myConfig);
00030
00031 int SendMessage(SystemDefs::VehicleID_t destID, void *pMessage, unsigned int msgLength);
00032 int BroadcastMessage(void *pMessage, unsigned int msgLength);
00033
00034 int GetMessage(void *pMessage, unsigned int maxMsgLength);
00035 int GetMessage(void *pMessage, unsigned int maxMsgLength, SystemDefs::VehicleID_t &srcID);
00036
00037 protected:
00038 int GetMessage(void *pMessage, unsigned int maxMsgLength, ACE_INET_Addr &whoFrom);
00039
00040 ACE_SOCK_Dgram_Mcast * m_pMySocket;
00041 VehicleNetConfig * m_pMyConfig;
00042 };
00043
00044 #endif
00045