Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TFitResultPtr.h
Go to the documentation of this file.
1 // @(#)root/mathcore:$Id$
2 // Author: David Gonzalez Maline Tue Nov 10 15:01:24 2009
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2009, 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 #ifndef ROOT_TFitResultPtr
13 #define ROOT_TFitResultPtr
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TFitResultPtr //
18 // //
19 // Provides an indirection to TFitResult class and with a semantics //
20 // identical to a TFitResult pointer //
21 // //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 #include "Rtypes.h"
26 
27 class TFitResult;
28 
29 #include <memory>
30 
31 class TFitResultPtr {
32 public:
33 
34  TFitResultPtr(int status = -1): fStatus(status), fPointer(0) {};
35 
36  TFitResultPtr(const std::shared_ptr<TFitResult> & p);
37 
38  TFitResultPtr(TFitResult *p);
39 
40  TFitResultPtr(const TFitResultPtr& rhs);
41 
42  operator int() const { return fStatus; }
43 
44  TFitResult& operator*() const;
45 
46  TFitResult* operator->() const;
47 
48  TFitResult* Get() const;
49 
50  TFitResultPtr& operator= (const TFitResultPtr& rhs);
51 
52  virtual ~TFitResultPtr();
53 
54 private:
55 
56  int fStatus; // fit status code
57  std::shared_ptr<TFitResult> fPointer; //! Smart Pointer to TFitResult class
58 
59  ClassDef(TFitResultPtr,2) //indirection to TFitResult
60 };
61 
62 namespace cling {
63  std::string printValue(const TFitResultPtr* val);
64 }
65 #endif