File: data.h

package info (click to toggle)
c%2B%2B-annotations 12.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,044 kB
  • sloc: cpp: 24,337; makefile: 1,517; ansic: 165; sh: 121; perl: 90
file content (45 lines) | stat: -rw-r--r-- 799 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef INCLUDED_DATA_
#define INCLUDED_DATA_

#include "../union/union.h"

class Data
{
    Union::Field d_field;
    Union d_union;

    public:
        Data(int value = 0);             // 1.cc
        Data(Data const &other);         // 2.cc
        Data(Data &&tmp);                // 3.cc

        Data(std::string const &text);   // 4.cc

        ~Data();

        Data &operator=(Data const &other);
        Data &operator=(Data &&tmp);

        void swap(Data &other);

        Union::Field field() const;
        std::string const &text() const;
        int value() const;
};

inline Union::Field Data::field() const
{
    return d_field;
}

inline std::string const &Data::text() const
{
    return d_union.text();
}

inline int Data::value() const
{
    return d_union.value();
}

#endif