#ifndef ROOT_TSchemaRule
#define ROOT_TSchemaRule
class TBuffer;
class TVirtualObject;
class TObjArray;
#include "TObject.h"
#include "Rtypes.h"
#include "TString.h"
#include <vector>
#include <utility>
namespace ROOT {
class TSchemaRule: public TObject
{
public:
typedef enum
{
kReadRule = 0,
kReadRawRule = 1,
kNone = 99999
} RuleType_t;
typedef void (*ReadFuncPtr_t)( char*, TVirtualObject* );
typedef void (*ReadRawFuncPtr_t)( char*, TBuffer&);
TSchemaRule();
virtual ~TSchemaRule();
TSchemaRule( const TSchemaRule& rhs );
TSchemaRule& operator = ( const TSchemaRule& rhs );
Bool_t SetVersion( const TString& version );
Bool_t TestVersion( Int_t version ) const;
Bool_t SetChecksum( const TString& checksum );
Bool_t TestChecksum( UInt_t checksum ) const;
void SetSourceClass( const TString& classname );
TString GetSourceClass() const;
void SetTarget( const TString& target );
const TObjArray* GetTarget() const;
void SetSource( const TString& source );
const TObjArray* GetSource() const;
void SetEmbed( Bool_t embed );
Bool_t GetEmbed() const;
Bool_t IsAliasRule() const;
Bool_t IsRenameRule() const;
Bool_t IsValid() const;
void SetCode( const TString& code );
TString GetCode() const;
Bool_t HasTarget( const TString& target ) const;
Bool_t HasSource( const TString& source ) const;
void SetReadFunctionPointer( ReadFuncPtr_t ptr );
ReadFuncPtr_t GetReadFunctionPointer() const;
void SetReadRawFunctionPointer( ReadRawFuncPtr_t ptr );
ReadRawFuncPtr_t GetReadRawFunctionPointer() const;
void SetInclude( const TString& include );
const TObjArray* GetInclude() const;
void SetRuleType( RuleType_t type );
RuleType_t GetRuleType() const;
Bool_t Conflicts( const TSchemaRule* rule ) const;
ClassDef( TSchemaRule, 1 );
private:
Bool_t ProcessVersion( const TString& version ) const;
Bool_t ProcessChecksum( const TString& checksum ) const;
static void ProcessList( TObjArray* array, const TString& list );
static void ProcessDeclaration( TObjArray* array, const TString& list );
TString fVersion;
mutable std::vector<std::pair<Int_t, Int_t> >* fVersionVect;
TString fChecksum;
mutable std::vector<UInt_t>* fChecksumVect;
TString fSourceClass;
TString fTarget;
mutable TObjArray* fTargetVect;
TString fSource;
mutable TObjArray* fSourceVect;
TString fInclude;
mutable TObjArray* fIncludeVect;
TString fCode;
Bool_t fEmbed;
ReadFuncPtr_t fReadFuncPtr;
ReadRawFuncPtr_t fReadRawFuncPtr;
RuleType_t fRuleType;
};
}
#endif // ROOT_TSchemaRule
Last change: Mon Sep 22 15:41:15 2008
Last generated: 2008-09-22 15:41
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.