Hi,
If you look at the Event.h example, you will see the following members:
char *fEventName; //run+event number in character format
Int_t fNvertex;
Float_t *fClosestDistance; //[fNvertex]
The automatically generated Streamer will be able to stream fEventname
as well as fClosestDistance. The comment field [fNvertex] indicates
that another data member (must be an int) contains the effective length
of the array.
For this to work, you must specify the "+" in the #pragma statement
in the LinkDef.h file.
I take this opportunity to indicate once more that you should always use
the option "+" in the pragma if you want to take advantage of the
I/O facilities introduced in version 3, in particular the automatic
schema evolution.
Rene Brun
On Tue, 24 Sep 2002, Salkind, Lou wrote:
> Rene,
>
> Sorry to be stupid here, but after rereading the things you suggested, I
> still don't know the answer to either of my questions.
>
> For question 1), are you saying that if I want to stream a string stored in
> a class as an old C style char * pointer, I would have to write a specific
> streamer for that class that knew how to write out an object (presumably by
> doing a strlen(), streaming the count, and then streaming the bytes)?
>
> For question 2), I am not sure how the ios references in the Dict.cxx file
> (it has code that does G__search_typename2("ios& (*)(ios&) ") ultimately get
> resolved. Is there a file or library I need to include? I am including all
> the libraries that are used in building make Event.
>
> -----Original Message-----
> From: Rene Brun [mailto:brun@pcbrun.cern.ch]
> Sent: Tuesday, September 24, 2002 10:39 AM
> To: Salkind, Lou
> Cc: 'roottalk@pcroot.cern.ch'
> Subject: Re: [ROOT] A couple of root dictionary questions
>
>
> Hi Lou,
>
> Please read chapter about Streaming at page 201 of the Users Guide. Read
> section "Dynamic Arrays" See a concrete example at
> $ROOTSYS/test/Event.h,cxx, MainEvent.cxx. To build this example, run
> gmake Event
>
> You do not need to include <iostream.h> on Linux.
> Should be <iostream> by the way.
>
> Rene Brun
>
> On Tue, 24 Sep 2002, Salkind, Lou wrote:
>
> > Dear Rooters,
> >
> > I have created a LinkDef.h file for my application, but I am getting
> > the following errors/warnings:
> >
> > 1) When building the dictionary with rootcint (RedHat 7.3, gcc 2.96),
> > all "char *" strings in my classes generate an error such as
> > Error: ** Datamember XXX::comment: no size indication!
> > Error: ** Datamember XXX::comment: pointer to fundamental type
> > (need manual intervention) Is there a simple way to stream char *
> > strings to a file?
> >
> > 2) When I start up my application, I get the error
> > Error: class,struct,union or type ios not defined FILE: LINE:0
> > *** Interpreter error recovered ***
> > I am including iostream.h from the root/cint/include directory in my
> > rootcint command. Is there any way to get the appropriate ios
> > definitions included by rootcint?
> >
> > Any help would be appreciated.
> >
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:11 MET