#pragma once#include "MessageGroups.h"namespaceROSBridge{//! @brief Abstract base class for all ROS Messages Types.//!//! Abstract base class for all ROS Messages Types. This class defines a basic interface//! every class must fullfill if it takes advantages of the \class ROSJsonFactory.//! Every class must define the public typedef Group, which associates it to a message Group (\see MessageGroups). The Group type//! is used by the \class ROSJsonFactory to determine the type of the message it creates. The//! MessageBaseClass belongs to the \struct EmptyGroup. Passing a class belonging to the \struct EmptyGroup to the//! \class ROSJsonFactory will yield an error.classMessageBaseClass{public:typedefMessageGroups::EmptyGroupGroup;MessageBaseClass(){};~MessageBaseClass(){};// Avoid sliceing (copy with ROSMessage::Clone or define subclass operator=)!MessageBaseClass(constMessageBaseClass&)=delete;MessageBaseClass&operator=(constMessageBaseClass&)=delete;virtualMessageBaseClass*Clone()const=0;};