// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} /*! * \file IODataElement.h * \brief Abstract class for accessing an element of an io_data. * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253 * \date 2014/11/26 * \version 4.0 */ #ifndef IODATAELEMENT_H #define IODATAELEMENT_H #include "io_data.h" namespace flair { namespace core { class DataType; /*! \class IODataElement * * \brief Abstract class for accessing an element of an io_data. */ class IODataElement: public Object { public: /*! * \brief Constructor * * Construct an IODataElement. \n * */ IODataElement(const io_data* parent,std::string name): Object(parent,name) { this->parent=parent; } size_t Size() const { return size; } virtual void CopyData(char* dst) const=0; /*! * \brief DataType * * \return type of data */ virtual DataType const &GetDataType(void) const=0; protected: size_t size; private: const io_data* parent; }; } // end namespace core } // end namespace framework #endif // IODATAELEMENT_H