00001 #ifndef _UNEVT_EventPtr_H_ // -*-c++-*-
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifdef __GNUG__
00022 # pragma interface
00023 #endif
00024
00025
00026
00027
00028
00029 #ifndef _UNEVT_Event_H_
00030 # include <UniEvent/Event.h>
00031 #endif
00032 #include <LCore/RefCountPtrT.h>
00033
00034 #define _UNEVT_EventPtr_H_
00035
00036 namespace strmod {
00037 namespace unievent {
00038
00039
00040
00041
00042 class EventPtr : public lcore::RefCountPtrT<Event>
00043 {
00044 public:
00045
00046 typedef lcore::RefCountPtrT<Event> super1;
00047 static const UNEVT_ClassIdent identifier;
00048
00049
00050
00051
00052
00053
00054 inline EventPtr(Event *eptr = 0);
00055 inline EventPtr(const EventPtr &b);
00056 inline EventPtr(const super1 &b);
00057
00058
00059
00060
00061
00062
00063
00064 inline const EventPtr &operator =(const EventPtr &b);
00065 inline const EventPtr &operator =(const super1 &b);
00066 inline const EventPtr &operator =(Event *b);
00067
00068
00069 protected:
00070 virtual const lcore::ClassIdent *i_GetIdent() const { return &identifier; }
00071 };
00072
00073
00074
00075 inline EventPtr::EventPtr(Event *eptr)
00076 {
00077 if (eptr) {
00078 i_SetPtr(eptr);
00079 }
00080 }
00081
00082 inline EventPtr::EventPtr(const EventPtr &b)
00083 {
00084 if (b.GetPtr()) {
00085 i_SetPtr(b.GetPtr());
00086 }
00087 }
00088
00089 inline EventPtr::EventPtr(const super1 &b)
00090 {
00091 if (b.GetPtr()) {
00092 i_SetPtr(b.GetPtr());
00093 }
00094 }
00095
00096 inline const EventPtr &EventPtr::operator =(const EventPtr &b)
00097 {
00098 super1::operator =(b);
00099 return(*this);
00100 }
00101
00102 inline const EventPtr &EventPtr::operator =(const super1 &b)
00103 {
00104 super1::operator =(b);
00105 return(*this);
00106 }
00107
00108 inline const EventPtr &EventPtr::operator =(Event *b)
00109 {
00110 super1::operator =(b);
00111 return(*this);
00112 }
00113
00114 }
00115 }
00116
00117 #endif