ROOT logo
//-*- Mode: C++ -*-
// @(#) $Id$

#ifndef ALIHLTSHUTTLEINTERFACE_H
#define ALIHLTSHUTTLEINTERFACE_H
//* This file is property of and copyright by the ALICE HLT Project        * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//* See cxx source for full Copyright notice                               *

/**
 * @file   AliHLTShuttleInterface.h
 * @author Matthias Richter
 * @date   2008-01-22
 * @brief  Pure virtual interface to the HLT shuttle methods
 */

// see below for class documentation
// or
// refer to README to build package
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt

#include "TObject.h"

class AliHLTPreprocessor;
class TMap;
class AliCDBMetaData;
class AliCDBEntry;

/**
 * @class AliHLTShuttleInterface
 * This class implements the redirection of the shuttle access methods for
 * AliHLTModulePreprocessor classes. The AliHLTShuttleInterface has been
 * declared pure virtual to avoid dependencies between the libHLTshuttle and
 * the component libraries. It implements the same interface to the shuttle
 * as the AliPreprocessor.
 *
 * The AliHLTPreprocessor initializes each AliHLTModulePreprocessor with this
 * interface. From the interface methods of AliHLTModulePreprocessor classes,
 * the call is redirected via AliHLTShuttleInterface to the AliHLTPreprocessor,
 * which makes the methods publicly available AliPreprocessor.
 *
 * @author Matthias Richter
 */
class AliHLTShuttleInterface
{
public:
  /** Constructor*/
  AliHLTShuttleInterface();
  /** Destructor */
  virtual ~AliHLTShuttleInterface();

  /** Get the run no */
  virtual Int_t PreprocessorGetRun() = 0;

  /** Get the start time */
  virtual UInt_t PreprocessorGetStartTime() = 0;

  /** Get the end time */
  virtual UInt_t PreprocessorGetEndTime() = 0;

  // the AliPreprocessor interface, all functions redirected via the
  // AliHLTPreprocessor
  virtual Bool_t PreprocessorStore(const char* pathLevel2, const char* pathLevel3, TObject* object,
	       AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) = 0;
  virtual Bool_t PreprocessorStoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object,
			    AliCDBMetaData* metaData) = 0;
  virtual Bool_t PreprocessorStoreReferenceFile(const char* localFile, const char* gridFileName) = 0;

  virtual Bool_t PreprocessorStoreRunMetadataFile(const char* localFile, const char* gridFileName) = 0;

  virtual const char* PreprocessorGetFile(Int_t system, const char* id, const char* source) = 0;

  virtual TList* PreprocessorGetFileSources(Int_t system, const char* id = 0) = 0;

  virtual TList* PreprocessorGetFileIDs(Int_t system, const char* source) = 0;

  virtual const char* PreprocessorGetRunParameter(const char* param) = 0;

  virtual AliCDBEntry* PreprocessorGetFromOCDB(const char* pathLevel2, const char* pathLevel3) = 0;

  virtual const char* PreprocessorGetRunType() = 0;

  virtual void PreprocessorLog(const char* message) = 0;

protected:

private:
  /** copy constructor prohibited */
  AliHLTShuttleInterface(const AliHLTShuttleInterface&);
  /** assignment operator prohibited */
  AliHLTShuttleInterface& operator=(const AliHLTShuttleInterface&);

  ClassDef(AliHLTShuttleInterface, 0);
};
#endif
 AliHLTShuttleInterface.h:1
 AliHLTShuttleInterface.h:2
 AliHLTShuttleInterface.h:3
 AliHLTShuttleInterface.h:4
 AliHLTShuttleInterface.h:5
 AliHLTShuttleInterface.h:6
 AliHLTShuttleInterface.h:7
 AliHLTShuttleInterface.h:8
 AliHLTShuttleInterface.h:9
 AliHLTShuttleInterface.h:10
 AliHLTShuttleInterface.h:11
 AliHLTShuttleInterface.h:12
 AliHLTShuttleInterface.h:13
 AliHLTShuttleInterface.h:14
 AliHLTShuttleInterface.h:15
 AliHLTShuttleInterface.h:16
 AliHLTShuttleInterface.h:17
 AliHLTShuttleInterface.h:18
 AliHLTShuttleInterface.h:19
 AliHLTShuttleInterface.h:20
 AliHLTShuttleInterface.h:21
 AliHLTShuttleInterface.h:22
 AliHLTShuttleInterface.h:23
 AliHLTShuttleInterface.h:24
 AliHLTShuttleInterface.h:25
 AliHLTShuttleInterface.h:26
 AliHLTShuttleInterface.h:27
 AliHLTShuttleInterface.h:28
 AliHLTShuttleInterface.h:29
 AliHLTShuttleInterface.h:30
 AliHLTShuttleInterface.h:31
 AliHLTShuttleInterface.h:32
 AliHLTShuttleInterface.h:33
 AliHLTShuttleInterface.h:34
 AliHLTShuttleInterface.h:35
 AliHLTShuttleInterface.h:36
 AliHLTShuttleInterface.h:37
 AliHLTShuttleInterface.h:38
 AliHLTShuttleInterface.h:39
 AliHLTShuttleInterface.h:40
 AliHLTShuttleInterface.h:41
 AliHLTShuttleInterface.h:42
 AliHLTShuttleInterface.h:43
 AliHLTShuttleInterface.h:44
 AliHLTShuttleInterface.h:45
 AliHLTShuttleInterface.h:46
 AliHLTShuttleInterface.h:47
 AliHLTShuttleInterface.h:48
 AliHLTShuttleInterface.h:49
 AliHLTShuttleInterface.h:50
 AliHLTShuttleInterface.h:51
 AliHLTShuttleInterface.h:52
 AliHLTShuttleInterface.h:53
 AliHLTShuttleInterface.h:54
 AliHLTShuttleInterface.h:55
 AliHLTShuttleInterface.h:56
 AliHLTShuttleInterface.h:57
 AliHLTShuttleInterface.h:58
 AliHLTShuttleInterface.h:59
 AliHLTShuttleInterface.h:60
 AliHLTShuttleInterface.h:61
 AliHLTShuttleInterface.h:62
 AliHLTShuttleInterface.h:63
 AliHLTShuttleInterface.h:64
 AliHLTShuttleInterface.h:65
 AliHLTShuttleInterface.h:66
 AliHLTShuttleInterface.h:67
 AliHLTShuttleInterface.h:68
 AliHLTShuttleInterface.h:69
 AliHLTShuttleInterface.h:70
 AliHLTShuttleInterface.h:71
 AliHLTShuttleInterface.h:72
 AliHLTShuttleInterface.h:73
 AliHLTShuttleInterface.h:74
 AliHLTShuttleInterface.h:75
 AliHLTShuttleInterface.h:76
 AliHLTShuttleInterface.h:77
 AliHLTShuttleInterface.h:78
 AliHLTShuttleInterface.h:79
 AliHLTShuttleInterface.h:80
 AliHLTShuttleInterface.h:81
 AliHLTShuttleInterface.h:82
 AliHLTShuttleInterface.h:83
 AliHLTShuttleInterface.h:84
 AliHLTShuttleInterface.h:85
 AliHLTShuttleInterface.h:86
 AliHLTShuttleInterface.h:87
 AliHLTShuttleInterface.h:88
 AliHLTShuttleInterface.h:89
 AliHLTShuttleInterface.h:90
 AliHLTShuttleInterface.h:91
 AliHLTShuttleInterface.h:92
 AliHLTShuttleInterface.h:93
 AliHLTShuttleInterface.h:94
 AliHLTShuttleInterface.h:95
 AliHLTShuttleInterface.h:96