1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: ObjectService.h,v 1.7 2008/07/03 08:25:12 loizides Exp $
|
3 |
//
|
4 |
// ObjectService
|
5 |
// Class for storing event objects:
|
6 |
// It assumes ownership of the object.
|
7 |
// It is needed to force the THashTable to call Hash on a TNamed
|
8 |
// to allow lookup using the hash value given the object's name
|
9 |
// (as opposed to its pointer value, as is done for TObject's).
|
10 |
//
|
11 |
//
|
12 |
// Authors: C.Loizides
|
13 |
//--------------------------------------------------------------------------------------------------
|
14 |
|
15 |
#ifndef MITPROD_NAMEDOBJECT_H
|
16 |
#define MITPROD_NAMEDOBJECT_H
|
17 |
|
18 |
#include <TNamed.h>
|
19 |
|
20 |
namespace mithep
|
21 |
{
|
22 |
template<class T>
|
23 |
class NamedObject : public TNamed
|
24 |
{
|
25 |
public:
|
26 |
NamedObject(T *ptr) : TNamed(((TObject*)ptr)->GetName(),0), fPtr(ptr) {}
|
27 |
NamedObject(T *ptr, const char *n) : TNamed(n,0), fPtr(ptr) {}
|
28 |
~NamedObject() { delete fPtr; }
|
29 |
T *Get() { return fPtr; }
|
30 |
const T *Get() const { return fPtr; }
|
31 |
|
32 |
private:
|
33 |
T *fPtr; //pointer to object
|
34 |
};
|
35 |
}
|
36 |
#endif
|