Encapsulates a value of type T (really!). More...
#include <TDbiRegistryItemXxx.hxx>
Public Member Functions | |
TDbiRegistryItemXxx () | |
~TDbiRegistryItemXxx () | |
void | Dump () const |
void | Print (Option_t *="") const |
virtual std::ostream & | PrintStream (std::ostream &os) const |
virtual std::istream & | ReadStream (std::istream &is) |
virtual const type_info & | GetType () const |
virtual const char * | GetTypeAsString () const |
template<> | |
void | Streamer (TBuffer &buf) |
template<> | |
void | Streamer (TBuffer &buf) |
template<> | |
std::ostream & | PrintStream (std::ostream &os) const |
template<> | |
std::istream & | ReadStream (std::istream &is) |
template<> | |
~TDbiRegistryItemXxx () | |
template<> | |
TDbiRegistryItem * | Dup (void) const |
template<> | |
TDbiRegistryItem * | Dup (void) const |
template<> | |
void | Streamer (TBuffer &buf) |
template<> | |
void | Streamer (TBuffer &buf) |
template<> | |
~TDbiRegistryItemXxx () | |
template<> | |
std::ostream & | PrintStream (std::ostream &os) const |
template<> | |
std::istream & | ReadStream (std::istream &is) |
template<> | |
const char * | GetTypeAsString (void) const |
template<> | |
const char * | GetTypeAsString (void) const |
template<> | |
const char * | GetTypeAsString (void) const |
template<> | |
const char * | GetTypeAsString (void) const |
template<> | |
const char * | GetTypeAsString (void) const |
template<> | |
std::ostream & | PrintStream (std::ostream &os) const |
template<> | |
std::istream & | ReadStream (std::istream &is) |
Private Member Functions | |
TDbiRegistryItemXxx (T *data) | |
T * | Get (void) |
void | Set (T *data) |
TDbiRegistryItem * | Dup (void) const |
Private Attributes | |
T * | fData |
Friends | |
class | TDbiRegistry |
Encapsulates a value of type T (really!).
Contact: A.Finch@lancaster.ac.uk bv@bnl.gov
Created on: Wed Oct 25 17:11:44 2000
Definition at line 28 of file TDbiRegistryItemXxx.hxx.
TDbiRegistryItemXxx< T >::TDbiRegistryItemXxx | ( | ) |
TDbiRegistryItemXxx< T >::~TDbiRegistryItemXxx | ( | ) | [inline] |
Definition at line 97 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
TDbiRegistryItemXxx< T >::TDbiRegistryItemXxx | ( | T * | data | ) | [inline, private] |
Definition at line 92 of file TDbiRegistryItemXxx.hxx.
00092 : fData(data) 00093 { 00094 }
TDbiRegistryItemXxx< const char * >::~TDbiRegistryItemXxx | ( | ) | [inline] |
Definition at line 206 of file TDbiRegistryItemXxx.cxx.
References TDbiRegistryItemXxx< T >::fData.
TDbiRegistryItemXxx< const char * >::~TDbiRegistryItemXxx | ( | ) | [inline] |
void TDbiRegistryItemXxx< T >::Dump | ( | void | ) | const [inline] |
Definition at line 37 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
00037 { std::cerr << *fData; }
TDbiRegistryItem * TDbiRegistryItemXxx< const char * >::Dup | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
TDbiRegistryItem * TDbiRegistryItemXxx< const char * >::Dup | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 219 of file TDbiRegistryItemXxx.cxx.
References TDbiRegistryItemXxx< T >::fData.
00220 { 00221 char** ppc = new char*; 00222 (*ppc) = new char [strlen(*fData)+1]; 00223 strcpy(*ppc,*fData); 00224 const char** ppcc = const_cast<const char**>(ppc); 00225 return new TDbiRegistryItemXxx< const char* >(ppcc); 00226 }
TDbiRegistryItem * TDbiRegistryItemXxx< T >::Dup | ( | void | ) | const [inline, private, virtual] |
Implements TDbiRegistryItem.
Definition at line 103 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
00104 { 00105 return new TDbiRegistryItemXxx<T>(new T (*fData)); 00106 }
T * TDbiRegistryItemXxx< T >::Get | ( | void | ) | [inline, private] |
Definition at line 113 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
Referenced by TDbiRegistry::Get().
00114 { 00115 return fData; 00116 }
virtual const type_info& TDbiRegistryItemXxx< T >::GetType | ( | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 48 of file TDbiRegistryItemXxx.hxx.
const char * TDbiRegistryItemXxx< TDbiRegistry >::GetTypeAsString | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
const char * TDbiRegistryItemXxx< const char * >::GetTypeAsString | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
const char * TDbiRegistryItemXxx< double >::GetTypeAsString | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
const char * TDbiRegistryItemXxx< int >::GetTypeAsString | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
const char * TDbiRegistryItemXxx< char >::GetTypeAsString | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
virtual const char* TDbiRegistryItemXxx< T >::GetTypeAsString | ( | void | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 49 of file TDbiRegistryItemXxx.hxx.
void TDbiRegistryItemXxx< T >::Print | ( | Option_t * | = "" |
) | const [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 38 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
00038 { std::cout << *fData; }
std::ostream & TDbiRegistryItemXxx< TDbiRegistry >::PrintStream | ( | std::ostream & | os | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
std::ostream & TDbiRegistryItemXxx< const char * >::PrintStream | ( | std::ostream & | os | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
std::ostream & TDbiRegistryItemXxx< const char * >::PrintStream | ( | std::ostream & | os | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 179 of file TDbiRegistryItemXxx.cxx.
References TDbiRegistryItemXxx< T >::fData.
00180 { 00181 os << "'" << *fData << "'"; 00182 return os; 00183 }
virtual std::ostream& TDbiRegistryItemXxx< T >::PrintStream | ( | std::ostream & | os | ) | const [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 40 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
00040 { 00041 return os << *fData; 00042 }
std::istream & TDbiRegistryItemXxx< TDbiRegistry >::ReadStream | ( | std::istream & | is | ) | [inline, virtual] |
Implements TDbiRegistryItem.
std::istream & TDbiRegistryItemXxx< const char * >::ReadStream | ( | std::istream & | is | ) | [inline, virtual] |
Implements TDbiRegistryItem.
std::istream & TDbiRegistryItemXxx< const char * >::ReadStream | ( | std::istream & | is | ) | [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 187 of file TDbiRegistryItemXxx.cxx.
References TDbiRegistryItemXxx< T >::fData, and Util::read_quoted_string().
00188 { 00189 std::string stot = Util::read_quoted_string(is); 00190 00191 if (!fData) { 00192 char** ppchar = new char*; 00193 *ppchar = 0; 00194 fData = const_cast<const char**>(ppchar); 00195 } 00196 if (*fData) delete [] *fData; 00197 00198 char* pchar = new char[stot.length() + 1]; 00199 strcpy(pchar,stot.c_str()); 00200 *fData = const_cast<const char*>(pchar); 00201 return is; 00202 }
virtual std::istream& TDbiRegistryItemXxx< T >::ReadStream | ( | std::istream & | is | ) | [inline, virtual] |
Implements TDbiRegistryItem.
Definition at line 43 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
void TDbiRegistryItemXxx< T >::Set | ( | T * | data | ) | [inline, private] |
Definition at line 119 of file TDbiRegistryItemXxx.hxx.
References TDbiRegistryItemXxx< T >::fData.
void TDbiRegistryItemXxx< char >::Streamer | ( | TBuffer & | buf | ) | [inline] |
void TDbiRegistryItemXxx< const char * >::Streamer | ( | TBuffer & | buf | ) | [inline] |
void TDbiRegistryItemXxx< char >::Streamer | ( | TBuffer & | buf | ) | [inline] |
Definition at line 160 of file TDbiRegistryItemXxx.cxx.
References TDbiRegistryItemXxx< T >::fData, and TDbiRegistryItemXxx< T >::Streamer().
00161 { 00162 if (buf.IsReading()) { 00163 Version_t v = buf.ReadVersion(); 00164 if (v) { } 00165 TDbiRegistryItem::Streamer(buf); 00166 00167 char c; 00168 buf >> c; 00169 fData = new char(c); 00170 } 00171 else { 00172 buf.WriteVersion(IsA()); 00173 TDbiRegistryItem::Streamer(buf); 00174 buf << *fData; 00175 } 00176 }
void TDbiRegistryItemXxx< T >::Streamer | ( | TBuffer & | buf | ) | [inline] |
Definition at line 127 of file TDbiRegistryItemXxx.cxx.
References TDbiRegistryItemXxx< T >::fData.
Referenced by TDbiRegistryItemXxx< T >::Streamer().
00128 { 00129 if (buf.IsReading()) { 00130 Version_t v = buf.ReadVersion(); 00131 if (v) { } 00132 TDbiRegistryItem::Streamer(buf); 00133 00134 std::string str = ""; 00135 char x[2]; 00136 x[1] = '\0'; 00137 00138 do { // read out string one byte at a time 00139 buf >> x[0]; 00140 str += x; 00141 } while (x[0]); 00142 00143 char** ppchar = new char*; 00144 *ppchar = new char[str.length() + 1]; 00145 strcpy(*ppchar,str.c_str()); 00146 (*ppchar)[str.length()] = '\0'; // paranoia 00147 fData = const_cast<const char**>(ppchar); 00148 } 00149 else { 00150 buf.WriteVersion(IsA()); 00151 TDbiRegistryItem::Streamer(buf); 00152 buf << (*fData); 00153 } 00154 00155 00156 }
friend class TDbiRegistry [friend] |
Definition at line 32 of file TDbiRegistryItemXxx.hxx.
T* TDbiRegistryItemXxx< T >::fData [private] |
Definition at line 58 of file TDbiRegistryItemXxx.hxx.
Referenced by TDbiRegistryItemXxx< T >::Dump(), TDbiRegistryItemXxx< T >::Dup(), TDbiRegistryItemXxx< T >::Get(), TDbiRegistryItemXxx< T >::Print(), TDbiRegistryItemXxx< T >::PrintStream(), TDbiRegistryItemXxx< T >::ReadStream(), TDbiRegistryItemXxx< T >::Set(), TDbiRegistryItemXxx< T >::Streamer(), and TDbiRegistryItemXxx< T >::~TDbiRegistryItemXxx().