// @(#)root/net:$Id$
// Author: Jan Fiete Grosse-Oetringhaus   06/10/2004

/*************************************************************************
 * Copyright (C) 1995-2004, 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_TGridJobStatus
#define ROOT_TGridJobStatus

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGridJobStatus                                                       //
//                                                                      //
// Abstract base class containing the status of a Grid job.             //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TNamed.h"

namespace ROOT::Deprecated {

class TGridJobStatus : public TNamed {

public:
   // Subset of Grid job states for common GetStatus function
   enum EGridJobStatus {
// clang++ <v20 (-Wshadow) complains about shadowing TQpSolverBase.h global enum ETerminationCode. Let's silence warning:
#if defined(__clang__) && __clang_major__ < 20
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"
#endif
         kUNKNOWN,
#if defined(__clang__) && __clang_major__ < 20
#pragma clang diagnostic pop
#endif
      kWAITING, kRUNNING, kABORTED, kFAIL, kDONE };

  TGridJobStatus() { }
  virtual ~TGridJobStatus() { }

  // These functions reduces the possible job states to the subset given above
  // in EGridJobStatus, for detailed status information query the specific
  // implementation
  virtual EGridJobStatus GetStatus() const = 0;

  ClassDefOverride(TGridJobStatus,1)  // ABC defining status of a Grid job
};

} // namespace ROOT::Deprecated

using TGridJobStatus R__DEPRECATED(6, 42, "TGridJobStatus is expected to be unused and thus deprecated") =
   ROOT::Deprecated::TGridJobStatus;

#endif
