Hi,
I have been trying to use shared memory via the TMapFile. When my producer
creates a TH1F (like as in the tutorials), my consumer is able to open the map
file, ls() its contents showing that the THF1 exist, get the hist object, and
and perform a hist->Print(). But when my producer also creates a user defined
object which inherits from TNamed, my consumer does not see this object in the
map file unless my producer does a "Add(object,name)", and when I try to access
my object as I do for the hist object, my macro seg's.
Are there any tricks that I am missing which would fix these problems?
Thanks for any help..
Paul
--
--
Paul M. Eugenio
Dept. of Physics
Carnegie Mellon University
(412) 268 6949
eugenio@ernest.phys.cmu.edu
---------------------------------------------- my object
class DeB : public TNamed {
private:
Int_t fwptr; // write index
Int_t frptr; //read index
public:
DeB();
DeB(char *name, char *title);
virtual ~DeB();
void Init();
//void Clear();
void SetWptr(Int_t n) {fwptr = n;}
void SetRptr(Int_t n) {frptr = n;}
Int_t GetWptr() const { return fwptr;}
Int_t GetRptr() const { return frptr;}
void Print(ostream *os);
void Print();
ClassDef(DeB,1) //Scheme of evolution;
};
-------------------------------------------- macro consumer
{
gROOT->Reset();
gBenchmark->Start("test_client");
gSystem->Load("./libDeB.so");
int recieved=0;
TMapFile *mfile = TMapFile::Create("mockdeb.map");
DeB *buff = 0 ;
TH1F *hh=0;
while (1) {
mfile->Print();
mfile->ls();
hh = (TH1F *) mfile->Get("hpx", hh);
hh->Print();
buff = (DeB *) mfile->Get("myDeb", buff);// It seg's here
//buff->Print();
recieved++;
}
cerr<<"Received "<<recieved<<" events\n";
gBenchmark->Show("test_client");
}
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:24 MET