//*CMZ : 1.00/06 23/03/97 11.01.59 by Rene Brun
//*-- Author : Rene Brun 15/11/95
//*KEEP,CopyRight,T=C.
/*************************************************************************
* Copyright(c) 1995-1999, The ROOT System, All rights reserved. *
* Authors: Rene Brun, Fons Rademakers. *
* For list of contributors see $ROOTSYS/AA_CREDITS. *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation for non-commercial purposes is hereby granted without *
* fee, provided that the above copyright notice appears in all copies *
* and that both the copyright notice and this permission notice appear *
* in the supporting documentation. The authors make no claims about the *
* suitability of this software for any purpose. It is provided "as is" *
* without express or implied warranty. *
*************************************************************************/
//*KEND.
//________________________________________________________________________
//////////////////////////////////////////////////////////////////////////
// //
// TStringLong //
// //
// The long string class (unlimited number of chars in I/O). //
// //
// This class redefines only the I/O member functions of TString. //
// It uses 4 bytes to store the string length (1 byte only for TString).//
// //
//////////////////////////////////////////////////////////////////////////
//*KEEP,TStringLong.
#include "TStringLong.h"
//*KEEP,TBuffer.
#include "TBuffer.h"
//*KEEP,Bytes.
#include "Bytes.h"
//*KEND.
ClassImp(TStringLong)
//______________________________________________________________________________
TStringLong::TStringLong() : TString()
{
}
//______________________________________________________________________________
TStringLong::TStringLong(Ssiz_t ic) : TString(ic)
{
}
//______________________________________________________________________________
TStringLong::TStringLong(const TString& s) : TString(s)
{
}
//______________________________________________________________________________
TStringLong::TStringLong(const char* cs) : TString(cs)
{
}
//______________________________________________________________________________
TStringLong::TStringLong(const char* cs, Ssiz_t n) : TString(cs,n)
{
}
//______________________________________________________________________________
TStringLong::TStringLong(char c) : TString(c)
{
}
//______________________________________________________________________________
TStringLong::TStringLong(char c, Ssiz_t n) : TString(c,n)
{
}
//______________________________________________________________________________
TStringLong::TStringLong(const TSubString& substr) : TString(substr)
{
}
//______________________________________________________________________________
TStringLong::~TStringLong()
{
}
//______________________________________________________________________________
void TStringLong::FillBuffer(char *&buffer)
{
Int_t nchars = Length();
tobuf(buffer, nchars);
for (Int_t i = 0; i < nchars; i++) buffer[i] = fData[i];
buffer += nchars;
}
//______________________________________________________________________________
void TStringLong::ReadBuffer(char *&buffer)
{
Pref()->UnLink();
Int_t nchars;
frombuf(buffer, &nchars);
fData = TStringRef::GetRep(nchars, nchars)->Data();
for (Int_t i = 0; i < nchars; i++) frombuf(buffer, &fData[i]);
}
//______________________________________________________________________________
Int_t TStringLong::Sizeof() const
{
return Length()+4;
}
//_______________________________________________________________________
void TStringLong::Streamer(TBuffer &b)
{
// Stream a long (>255 characters) string object.
Int_t nwh;
if (b.IsReading()) {
b >> nwh;
fData = TStringRef::GetRep(nwh, nwh)->Data();
for (int i = 0; i < nwh; i++) b >> fData[i];
} else {
nwh = Length();
b << nwh;
for (int i = 0; i < nwh; i++) b << fData[i];
}
}
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.