996
|
1 // Binding.cpp
|
|
2
|
|
3 #include "lib.h"
|
|
4 #include "Var.h"
|
|
5 #include "Binding.h"
|
|
6
|
|
7 using namespace std;
|
|
8
|
|
9 Binding::Binding()
|
|
10 : data(NULL)
|
|
11 {
|
|
12 }
|
|
13
|
|
14 Binding::Binding(Var * newData)
|
|
15 {
|
|
16 data = newData;
|
|
17 if (!null())
|
|
18 {
|
|
19 data->acquire();
|
|
20 }
|
|
21 }
|
|
22
|
|
23 Binding::~Binding()
|
|
24 {
|
|
25 if (!null())
|
|
26 {
|
|
27 data->release();
|
|
28 }
|
|
29 }
|
|
30
|
|
31 Binding::Binding(Binding const & right)
|
|
32 {
|
|
33 data = right.data;
|
|
34 if (!null())
|
|
35 {
|
|
36 data->acquire();
|
|
37 }
|
|
38 }
|
|
39
|
|
40 Binding & Binding::operator=(Binding const & right)
|
|
41 {
|
|
42 Binding temp(right);
|
|
43 swap(data, temp.data);
|
|
44 return *this;
|
|
45 }
|
|
46
|
|
47 Var * Binding::operator->(void)
|
|
48 {
|
|
49 return data;
|
|
50 }
|
|
51
|
|
52 Var const * Binding::operator->(void) const
|
|
53 {
|
|
54 return data;
|
|
55 }
|
|
56
|
|
57 Var & Binding::operator*(void)
|
|
58 {
|
|
59 return *data;
|
|
60 }
|
|
61
|
|
62 Var const & Binding::operator*(void) const
|
|
63 {
|
|
64 return*data;
|
|
65 }
|
|
66
|
|
67 bool Binding::null(void)
|
|
68 {
|
|
69 return data == NULL;
|
|
70 }
|