TDataElement.hh

TDataElementクラスの解説 TDataElement.cc
// ============================================================================
//  $Id$
//  $Name$
// ============================================================================
#ifndef __TDATAELEMENT_HH
#define __TDATAELEMENT_HH

#include "TGlobals.hh"
#include "TStreamableObject.hh"
#include "TOutputObjectFile.hh"

class TOutputObjectStream;
class TOutputObjectFile;
class TModule;

class TDataElement
  : public TStreamableObject
{

  private:
    Tvoid* theData;
    Telement_t theElementType;
    Tint theNumberOfPrimitives;

  public:
    TDataElement( Tvoid* data, Telement_t type, Tint id = tIDunknown );
    TDataElement( Telement_t type, Tint id = tIDunknown );
    ~TDataElement();

  public:
    Tint WriteData( TOutputObjectStream* output );
    Tint GetDataSize();
    Tvoid Print( Tostream& tos = Tstd::Tcout );

  public:
    inline Tvoid* GetData() const;
    inline Tvoid SetData( Tvoid* data );
    inline Telement_t GetElementType() const;
    inline Tvoid SetElementType( Telement_t elementtype );
    inline Tint GetNumberOfPrimitives() const;
    inline Tvoid SetNumberOfPrimitives( Tint nprimitives );

    inline Tvoid FillData( Tvoid* data, Telement_t elementtype );
    inline Tvoid FillData( Tvoid* data );

  private:
    Tvoid freeDataSpace();
    Tvoid allocateDataSpace( Tvoid* data );

};

inline Tvoid TDataElement::FillData( Tvoid* data, Telement_t elementtype )
{
  freeDataSpace();
  theElementType = elementtype;
  allocateDataSpace( data );
  return;
}

inline Tvoid TDataElement::FillData( Tvoid* data )
{
  SetData( data );
  return;
}

inline Tvoid* TDataElement::GetData() const
{
  return( theData );
}

inline Tvoid TDataElement::SetData( Tvoid* data )
{
  FillData( data, theElementType );
  return;
}

inline Telement_t TDataElement::GetElementType() const
{
  return( theElementType );
}

inline Tvoid TDataElement::SetElementType( Telement_t elementtype )
{
  theElementType = elementtype;
  return;
}

inline Tint TDataElement::GetNumberOfPrimitives() const
{
  return( theNumberOfPrimitives );
}

inline Tvoid TDataElement::SetNumberOfPrimitives( Tint nprimitives )
{
  theNumberOfPrimitives = nprimitives;
  return;
}

#endif
$Id$
$Name$