diff options
author | Mike Buland <eichlan@xagasoft.com> | 2007-05-17 05:56:26 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2007-05-17 05:56:26 +0000 |
commit | e0e7932a122614a0ff566fbfd8de5776de8b9f6d (patch) | |
tree | ae87ab46b677bfd05f340051a56f1edbc94862a9 /src/old/singleton.h | |
parent | dda94f3b53e02e117e6eb5758afa1410e1664c9f (diff) | |
download | libbu++-e0e7932a122614a0ff566fbfd8de5776de8b9f6d.tar.gz libbu++-e0e7932a122614a0ff566fbfd8de5776de8b9f6d.tar.bz2 libbu++-e0e7932a122614a0ff566fbfd8de5776de8b9f6d.tar.xz libbu++-e0e7932a122614a0ff566fbfd8de5776de8b9f6d.zip |
Lots of cool new stuff, the Server class actually works for everything except
actually interacting with clients, and the Client class is almost there, except
that it doesn't really do anything yet.
Diffstat (limited to 'src/old/singleton.h')
-rw-r--r-- | src/old/singleton.h | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/old/singleton.h b/src/old/singleton.h deleted file mode 100644 index 47adbd5..0000000 --- a/src/old/singleton.h +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | #ifndef SINGLETON_H | ||
2 | #define SINGLETON_H | ||
3 | |||
4 | #include <stdio.h> | ||
5 | |||
6 | /** | ||
7 | * Provides singleton functionality in a modular sort of way. Make this the | ||
8 | * base class of any other class and you immediately gain singleton | ||
9 | * functionality. Be sure to make your constructor and various functions use | ||
10 | * intellegent scoping. Cleanup and instantiation are performed automatically | ||
11 | * for you at first use and program exit. There are two things that you must | ||
12 | * do when using this template, first is to inherit from it with the name of | ||
13 | * your class filling in for T and then make this class a friend of your class. | ||
14 | *@code | ||
15 | * // Making the Single Singleton: | ||
16 | * class Single : public Singleton<Single> | ||
17 | * { | ||
18 | * friend class Singleton<Single>; | ||
19 | * protected: | ||
20 | * Single(); | ||
21 | * ... | ||
22 | * }; | ||
23 | @endcode | ||
24 | * You can still add public functions and variables to your new Singleton child | ||
25 | * class, but your constructor should be protected (hence the need for the | ||
26 | * friend decleration). | ||
27 | *@author Mike Buland | ||
28 | */ | ||
29 | template <class T> | ||
30 | class Singleton | ||
31 | { | ||
32 | protected: | ||
33 | /** | ||
34 | * Private constructor. This constructor is empty but has a body so that | ||
35 | * you can make your own override of it. Be sure that you're override is | ||
36 | * also protected. | ||
37 | */ | ||
38 | Singleton() {}; | ||
39 | |||
40 | private: | ||
41 | /** | ||
42 | * Copy constructor, defined so that you could write your own as well. | ||
43 | */ | ||
44 | Singleton( const Singleton& ); | ||
45 | |||
46 | public: | ||
47 | /** | ||
48 | * Get a handle to the contained instance of the contained class. It is | ||
49 | * a reference. | ||
50 | *@returns A reference to the contained object. | ||
51 | */ | ||
52 | static T &getInstance() | ||
53 | { | ||
54 | static T i; | ||
55 | return i; | ||
56 | } | ||
57 | }; | ||
58 | |||
59 | #endif | ||