// @(#)root/mathcore:$Id$
// Author: David Gonzalez Maline Tue Nov 10 15:01:24 2009

/*************************************************************************
 * Copyright (C) 1995-2009, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TFitResultPtr
#define ROOT_TFitResultPtr

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TFitResultPtr                                                        //
//                                                                      //
// Provides an indirection to TFitResult class and with a semantics     //
// identical to a TFitResult pointer                                    //
//                                                                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif

class TFitResult;

class TFitResultPtr {
public:

   TFitResultPtr(int status = -1): fStatus(status), fPointer(0) {};

   TFitResultPtr(TFitResult* p);

   TFitResultPtr(const TFitResultPtr& rhs);

   operator int() const { return fStatus; }

   TFitResult& operator*() const;

   TFitResult* operator->() const;

   TFitResult* Get() const { return fPointer; }

   TFitResultPtr& operator= (const TFitResultPtr& rhs);

   virtual ~TFitResultPtr();

private:

   int fStatus;          // fit status code
   TFitResult* fPointer; // Smart Pointer to TFitResult class

   ClassDef(TFitResultPtr,1)  //indirection to TFitResult
};

#endif
 TFitResultPtr.h:1
 TFitResultPtr.h:2
 TFitResultPtr.h:3
 TFitResultPtr.h:4
 TFitResultPtr.h:5
 TFitResultPtr.h:6
 TFitResultPtr.h:7
 TFitResultPtr.h:8
 TFitResultPtr.h:9
 TFitResultPtr.h:10
 TFitResultPtr.h:11
 TFitResultPtr.h:12
 TFitResultPtr.h:13
 TFitResultPtr.h:14
 TFitResultPtr.h:15
 TFitResultPtr.h:16
 TFitResultPtr.h:17
 TFitResultPtr.h:18
 TFitResultPtr.h:19
 TFitResultPtr.h:20
 TFitResultPtr.h:21
 TFitResultPtr.h:22
 TFitResultPtr.h:23
 TFitResultPtr.h:24
 TFitResultPtr.h:25
 TFitResultPtr.h:26
 TFitResultPtr.h:27
 TFitResultPtr.h:28
 TFitResultPtr.h:29
 TFitResultPtr.h:30
 TFitResultPtr.h:31
 TFitResultPtr.h:32
 TFitResultPtr.h:33
 TFitResultPtr.h:34
 TFitResultPtr.h:35
 TFitResultPtr.h:36
 TFitResultPtr.h:37
 TFitResultPtr.h:38
 TFitResultPtr.h:39
 TFitResultPtr.h:40
 TFitResultPtr.h:41
 TFitResultPtr.h:42
 TFitResultPtr.h:43
 TFitResultPtr.h:44
 TFitResultPtr.h:45
 TFitResultPtr.h:46
 TFitResultPtr.h:47
 TFitResultPtr.h:48
 TFitResultPtr.h:49
 TFitResultPtr.h:50
 TFitResultPtr.h:51
 TFitResultPtr.h:52
 TFitResultPtr.h:53
 TFitResultPtr.h:54
 TFitResultPtr.h:55
 TFitResultPtr.h:56
 TFitResultPtr.h:57
 TFitResultPtr.h:58
 TFitResultPtr.h:59
 TFitResultPtr.h:60