Logo ROOT  
Reference Guide
TInterpreterValue.h
Go to the documentation of this file.
1// @(#)root/core/meta:$Id$e
2// Author: Vassil Vassilev 13/03/2013
3
4/*******************************************************************************
5 * Copyright (C) 1995-2013, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 ******************************************************************************/
11
12////////////////////////////////////////////////////////////////////////////////
13// //
14// Class representing a value coming from the interpreter. Its main use case //
15// is to TCallFunc. When TCallFunc returns by-value, i.e. a temporary //
16// variable, its lifetime has to be extended. TInterpreterValue provides a //
17// way to extend the temporaries lifetime and gives the user to control it. //
18// //
19// The class needs to be derived from for the actual interpreter, //
20// see TClingValue. //
21// //
22////////////////////////////////////////////////////////////////////////////////
23
24#ifndef ROOT_TInterpreterValue
25#define ROOT_TInterpreterValue
26
27#include "RtypesCore.h"
28
29#include <string>
30#include <utility>
31
33private:
36public:
38 virtual ~TInterpreterValue() { }
39
40 virtual const void* GetValAddr() const = 0;
41 virtual void* GetValAddr() = 0;
42 virtual std::pair<std::string, std::string> ToTypeAndValueString() const = 0;
43
44 virtual Bool_t IsValid() const = 0;
45 virtual Double_t GetAsDouble() const = 0;
46 virtual Long_t GetAsLong() const = 0;
47 virtual ULong_t GetAsUnsignedLong() const = 0;
48 virtual void* GetAsPointer() const = 0;
49 virtual std::string ToString() const = 0;
50};
51
52#endif // ROOT_TInterpreterValue
unsigned long ULong_t
Definition: RtypesCore.h:55
long Long_t
Definition: RtypesCore.h:54
bool Bool_t
Definition: RtypesCore.h:63
double Double_t
Definition: RtypesCore.h:59
virtual ULong_t GetAsUnsignedLong() const =0
virtual Bool_t IsValid() const =0
virtual Long_t GetAsLong() const =0
virtual void * GetAsPointer() const =0
virtual Double_t GetAsDouble() const =0
virtual std::pair< std::string, std::string > ToTypeAndValueString() const =0
TInterpreterValue(const TInterpreterValue &)=delete
virtual void * GetValAddr()=0
virtual ~TInterpreterValue()
TInterpreterValue & operator=(TInterpreterValue &)=delete
virtual std::string ToString() const =0
virtual const void * GetValAddr() const =0