Re: [ROOT] TBuffer and serialization

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Thu Apr 25 2002 - 17:40:12 MEST


Hi Ashley,

  the buffer pointed at by "my" is not a printable character string but
a binary string of given length. Cout char* stops printing at the first
'\0' and "my" may contain many 0's. You should write this buffer as a
binary file. But better is to use ROOT files to save session state.

Cheers, Fons.



On Thu, 2002-04-25 at 17:25, Ashley Cambrell wrote:
> Hi All,
> 
> I'm playing around with TBuffer to try and see how I might implement
> sessions for Carrot and I can't seem to get the posted TBuffer example
> to work
> 
> [ref:
> Re: [ROOT] TBuffer usage examples
> From: Rene Brun
> Date: Mon Apr 22 2002 - 22:43:35 MEST
> ]
> 
> $ root
>   *******************************************
>   *                                         *
>   *        W E L C O M E  to  R O O T       *
>   *                                         *
>   *   Version   3.02/07     18 April 2002   *
>   *                                         *
>   *  You are welcome to visit our Web site  *
>   *          http://root.cern.ch            *
>   *                                         *
>   *******************************************
> 
> Compiled for linux with thread support.
> 
> CINT/ROOT C/C++ Interpreter version 5.15.25, Jan 6 2002
> Type ? for help. Commands must be C++ statements.
> Enclose multiple statements between { }
> root [0] TBuffer t(TBuffer::kWrite);
> root [1] h1f= new TH1F("h1f","test",200,0,10);
> root [2] h1f->Streamer(t);
> root [3] char *my=t.Buffer();
> root [4] t.Length();
> root [5] cout << my << endl;
> @
> root [6] cout << t.Length() << endl;
> 1308
> root [7]
> 
> Shouldn't cout << my << endl; output the buffer?  What am I doing/got wrong?
> 
> Thank you
> 
> Ashley Cambrell
> 
-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7679480



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:51 MET