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



#include "datatypeRep.h"

#include <vlutil/vlString.h>
#ifdef DtUSE_UTILITIES_NAMESPACE
namespace DtUSE_UTILITIES_NAMESPACE
{
#endif
//! OMT Datatype that works by taking a size and
//! showing a list of datatypes. This rep
//! is useful more as an internal display since it
//! needs a pointer size to be truly useful.
//! \ingroup omtReader
class DT_DLL_OMTREADER DtArrayDatatypeRep : public DtDatatypeRep
{
public:
   
   //! Default Constructor
   DtArrayDatatypeRep();
   
   //! Destructor
   virtual ~DtArrayDatatypeRep();
   
   //! Copy Constructor
   DtArrayDatatypeRep(const DtArrayDatatypeRep& orig);
   
   //! Assignment Operator
   DtArrayDatatypeRep& operator=(const DtArrayDatatypeRep& rhs); 
   
   //! @return "array"
   virtual const char* datatype() const;
   
   //! @return nothing. As no size was specified
   virtual DtString stringRep(const void* ptr, int* size = 0) const { return "";} 

   //! @return an exact copy of the byte stream in hex format
   virtual DtString stringRep(const void* ptr, int ptrSize,
                                 int* size = 0) 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
