/*******************************************************************************
** Copyright (c) 1992-2025 MAK Technologies, Inc
** All rights reserved.
*******************************************************************************/
//! \file unicodeDatatypeRep.h
//! \ingroup omtReader
#pragma once



#include "datatypeRep.h"

#include <vlutil/vlString.h>
#ifdef DtUSE_UTILITIES_NAMESPACE
namespace DtUSE_UTILITIES_NAMESPACE
{
#endif
//! OMT Datatype of type unicode (utf8 Endian string)
//! \ingroup omtReader
class DT_DLL_OMTREADER DtUtf8DatatypeRep : public DtDatatypeRep
{
public:
   
   //! Default Constructor
   DtUtf8DatatypeRep();
   
   //! Destructor
   virtual ~DtUtf8DatatypeRep();
   
   //! Copy Constructor
   DtUtf8DatatypeRep(const DtUtf8DatatypeRep& orig);
   
   //! Assignment Operator
   DtUtf8DatatypeRep& operator=(const DtUtf8DatatypeRep& rhs); 
   
   //! @return "string"
   virtual const char* datatype() const;
   
   //! @return an exact copy of the byte stream
   virtual DtString stringRep(const void* ptr, int* size = 0) const;

   //! @return the reverse of string rep
   virtual std::vector<char> valueFromStringRep(const DtString& stringRep) const;

   //! The alignment size in bytes for this representation.
   virtual int byteAlignment() const { return 1; };
};



#ifdef DtUSE_UTILITIES_NAMESPACE
} // end of namespace DtUSE_UTILITIES_NAMESPACE
#endif
