source: flair-dev/trunk/include/FlairCore/IODataElement.h @ 2

Last change on this file since 2 was 2, checked in by Sanahuja Guillaume, 5 years ago

initial commit flaircore

File size: 1.4 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file IODataElement.h
7 * \brief Abstract class for accessing an element of an io_data.
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2014/11/26
10 * \version 4.0
11 */
12
13#ifndef IODATAELEMENT_H
14#define IODATAELEMENT_H
15
16#include "io_data.h"
17
18namespace flair { namespace core {
19
20    class DataType;
21
22    /*! \class IODataElement
23    *
24    * \brief Abstract class for accessing an element of an io_data.
25    */
26    class IODataElement: public Object
27    {
28        public:
29            /*!
30            * \brief Constructor
31            *
32            * Construct an IODataElement. \n
33            *
34            */
35            IODataElement(const io_data* parent,std::string name): Object(parent,name)
36            {
37                this->parent=parent;
38            }
39            size_t Size() const
40            {
41                return size;
42            }
43
44            virtual void CopyData(char* dst) const=0;
45
46            /*!
47            * \brief DataType
48            *
49            * \return type of data
50            */
51            virtual DataType const &GetDataType(void) const=0;
52
53        protected:
54            size_t size;
55
56        private:
57            const io_data* parent;
58
59    };
60
61} // end namespace core
62} // end namespace framework
63
64#endif // IODATAELEMENT_H
Note: See TracBrowser for help on using the repository browser.