/*********************************************************************************
** Copyright (c) 1992-2025 MAK Technologies, Inc.
** All rights reserved.
*********************************************************************************/

/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!                                                                        !!!!!!!!!!!
!!!!!!!!! This is NOT an auto-generated file.  Any changes will NOT be destroyed !!!!!!!!!!!
!!!!!!!!!                                                                        !!!!!!!!!!!
!!!!!!!!! Lua code generator doesn't support Dictionary<>. Thanks, Bob H.        !!!!!!!!!!!
!!!!!!!!!                                                                        !!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/

#pragma once

#include "managedInterface/message.h"

#include <string>
#include <map>
#include <vector>

typedef std::map<std::string, std::vector<char> > UniversalAttributeMap;

class MANAGEDINTERFACE_DLL UniversalHlaObjStateMessage : public DtMessage
{
public:

  UniversalHlaObjStateMessage();
  virtual ~UniversalHlaObjStateMessage();

   virtual std::string getObjectClass();
   virtual void setObjectClass(const std::string& className);

   virtual std::string getObjectName();
   virtual void setObjectName(const std::string& objName);

   virtual UniversalAttributeMap& getAttributes();
   virtual void setAttributes(UniversalAttributeMap& attr);

   virtual int messageSize();
  
   static DtMessage* decode(unsigned char* buffer, int length);
   static std::string theMessageName();

protected:
   static std::string theFullName;

   std::string myObjectClass;
   std::string myObjectName;
   UniversalAttributeMap myAttributes;

   virtual void serialize(DtStreamWriter& writer);
   virtual void deserialize(DtStreamReader& reader);
};
