aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2007-06-18 22:49:39 +0000
committerMike Buland <eichlan@xagasoft.com>2007-06-18 22:49:39 +0000
commit8a7fed8386c152023ddae611fe274b966287370a (patch)
tree0f6029b5a7d8795469f27ebfb37a00db3a23b8a6
parent33012c4ef4d39efad4fbc2b19f494f5c860fff51 (diff)
downloadlibbu++-8a7fed8386c152023ddae611fe274b966287370a.tar.gz
libbu++-8a7fed8386c152023ddae611fe274b966287370a.tar.bz2
libbu++-8a7fed8386c152023ddae611fe274b966287370a.tar.xz
libbu++-8a7fed8386c152023ddae611fe274b966287370a.zip
Added more helper guys to atom, it seems weird, but I think it's ok...
-rw-r--r--src/atom.h14
-rw-r--r--src/tests/atom.cpp8
2 files changed, 22 insertions, 0 deletions
diff --git a/src/atom.h b/src/atom.h
index f876274..a0469b6 100644
--- a/src/atom.h
+++ b/src/atom.h
@@ -84,6 +84,20 @@ namespace Bu
84 return *this; 84 return *this;
85 } 85 }
86 86
87 t *operator ->()
88 {
89 if( !pData )
90 throw Bu::ExceptionBase("Not set");
91 return pData;
92 }
93
94 t &operator *()
95 {
96 if( !pData )
97 throw Bu::ExceptionBase("Not set");
98 return *pData;
99 }
100
87 private: 101 private:
88 t *pData; 102 t *pData;
89 talloc ta; 103 talloc ta;
diff --git a/src/tests/atom.cpp b/src/tests/atom.cpp
index cf076b1..2077bfd 100644
--- a/src/tests/atom.cpp
+++ b/src/tests/atom.cpp
@@ -2,10 +2,18 @@
2#include <stdio.h> 2#include <stdio.h>
3#include <stdlib.h> 3#include <stdlib.h>
4 4
5typedef struct bob
6{
7 int a, b;
8} bob;
5int main() 9int main()
6{ 10{
7 Bu::Atom<int> aInt; 11 Bu::Atom<int> aInt;
8 Bu::Atom<char *> aStr; 12 Bu::Atom<char *> aStr;
13 Bu::Atom<bob> aBob;
14
15 aBob = bob();
16 aBob->a = 5;
9 17
10 aStr.set("Hey there, dude"); 18 aStr.set("Hey there, dude");
11 aInt.set( 55 ); 19 aInt.set( 55 );