ROOT logo
//-*- Mode: C++ -*-
// $Id$
#ifndef ALIHLTHOMERSOURCEDESC_H
#define ALIHLTHOMERSOURCEDESC_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   AliHLTHOMERSourceDesc.h
    @author Jochen Thaeder
    @date   
    @brief  Container for HOMER Sources
*/

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

/**
 * @defgroup alihlt_homer HOMER handling for AliROOT
 * This section describes the handling of HOMER Sources, Blocks 
 * and the HOMER Reader inside the HLT and AliROOT
 */

#include "TString.h"
#include "TNamed.h"

/**
 * @class AliHLTHOMERSourceDesc
 * This class contains the information of 1 homer source: hostname, port for the HOMER 
 * interface as well as data specifications. It used in order to fill these sources in 
 * TLists. ( It has to inherit from TObject ). Further more it knows if this source was
 * selected for read from a user. Mainly used in the AliEVEHOMERManager, as source 
 * objects for AliEVE.
 * 
 * @ingroup alihlt_homer
 */
class AliHLTHOMERSourceDesc : public TNamed {

public:

  /**  constructor */
  AliHLTHOMERSourceDesc();       

  /** destructor */
  virtual ~AliHLTHOMERSourceDesc();

  /*
   * ---------------------------------------------------------------------------------
   *                        Selection - public
   * ---------------------------------------------------------------------------------
   */

  // -- SELECTION --

  /** Set selection state
   * @param state      state, either kTRUE or kFALSE
   */
  void SetState( Bool_t state ) { fSelected = state; }

  /** Checks if Source is selected to readout 
   * @return           returns state, either kTRUE or kFALSE
   */
  Bool_t IsSelected()           { return fSelected; }

  /** Select this source */
  void Select()                 { fSelected = kTRUE; }
  
  /** Deselect this source */
  void Deselect()               { fSelected = kFALSE; }

  /*
   * ---------------------------------------------------------------------------------
   *                        Setter - public
   * ---------------------------------------------------------------------------------
   */

  /** Set Service of this source 
   *  @param hostname  hostname of the source
   *  @param port      port of the source
   *  @param origin    HLT data origin
   *  @param type      HLT data type
   *  @param spec      HLT data specification
   */
  void SetService( TString hostname, Int_t port, TString origin, 
		   TString type, TString spec );

  /*
   * ---------------------------------------------------------------------------------
   *                        Getter - public
   * ---------------------------------------------------------------------------------
   */

  /** Get node name of this source 
   * @return           hostname
   */
  TString& GetHostname()       { return fHostname; }

  /** Get node name of this source 
   * @return           port
   */
  Int_t   GetPort()           { return fPort; }

  /** Get name of this source 
   * @return           name
   */
  TString& GetSourceName()     { return fSourceName; }

  /** Get detector of this source 
   * @return           detector
   */
  TString& GetDetector()       { return fDetector; }

  /** Get sub detector of this source 
   * @return           subdetector
   */
  Int_t   GetSubDetector()    { return fSubDetector; }

  /** Get sub sub detector of this source 
   * @return           subsubdetector
   */
  Int_t   GetSubSubDetector() { return fSubSubDetector; }

  /** Get HLT data type of this source
   * @return           HLT data type
   */
  TString& GetDataType()       { return fDataType; }

  /** Get HLT specification of this source
   * @return           HLT specification
   */
  ULong_t GetSpecification()  { return fSpecification; }

  ///////////////////////////////////////////////////////////////////////////////////

private:

  /** copy constructor prohibited */
  AliHLTHOMERSourceDesc(const AliHLTHOMERSourceDesc&);
  
  /** assignment operator prohibited */
  AliHLTHOMERSourceDesc& operator=(const AliHLTHOMERSourceDesc&);

  /*
   * ---------------------------------------------------------------------------------
   *                            Members - private
   * ---------------------------------------------------------------------------------
   */

  /** is selected to read out */
  Bool_t fSelected;             // see above

  /** Name of Source */
  TString fSourceName;          // see above

  // -- Service Specifications --
  // ----------------------------

  /** Name of HOMER Node */
  TString fHostname;            // see above

  /** Name of HOMER port */
  Int_t fPort;                  // see above

  // -- Data Specifications --
  // -------------------------

  /** HLT DataType */
  TString fDataType;            // see above

  /** Detector Name, e.g. PHOS 
   *  corresponds to HLT origin
   */
  TString fDetector;            // see above

  /** HLT Specification */
  ULong_t fSpecification;       // see above

  /** SubDetector Name e.g. MODULE */
  Int_t   fSubDetector;         // see above

  /** SubSubDetector Name e.g. PARTITION */
  Int_t   fSubSubDetector;      // see above

  ClassDef( AliHLTHOMERSourceDesc, 0 )
};

#endif
 AliHLTHOMERSourceDesc.h:1
 AliHLTHOMERSourceDesc.h:2
 AliHLTHOMERSourceDesc.h:3
 AliHLTHOMERSourceDesc.h:4
 AliHLTHOMERSourceDesc.h:5
 AliHLTHOMERSourceDesc.h:6
 AliHLTHOMERSourceDesc.h:7
 AliHLTHOMERSourceDesc.h:8
 AliHLTHOMERSourceDesc.h:9
 AliHLTHOMERSourceDesc.h:10
 AliHLTHOMERSourceDesc.h:11
 AliHLTHOMERSourceDesc.h:12
 AliHLTHOMERSourceDesc.h:13
 AliHLTHOMERSourceDesc.h:14
 AliHLTHOMERSourceDesc.h:15
 AliHLTHOMERSourceDesc.h:16
 AliHLTHOMERSourceDesc.h:17
 AliHLTHOMERSourceDesc.h:18
 AliHLTHOMERSourceDesc.h:19
 AliHLTHOMERSourceDesc.h:20
 AliHLTHOMERSourceDesc.h:21
 AliHLTHOMERSourceDesc.h:22
 AliHLTHOMERSourceDesc.h:23
 AliHLTHOMERSourceDesc.h:24
 AliHLTHOMERSourceDesc.h:25
 AliHLTHOMERSourceDesc.h:26
 AliHLTHOMERSourceDesc.h:27
 AliHLTHOMERSourceDesc.h:28
 AliHLTHOMERSourceDesc.h:29
 AliHLTHOMERSourceDesc.h:30
 AliHLTHOMERSourceDesc.h:31
 AliHLTHOMERSourceDesc.h:32
 AliHLTHOMERSourceDesc.h:33
 AliHLTHOMERSourceDesc.h:34
 AliHLTHOMERSourceDesc.h:35
 AliHLTHOMERSourceDesc.h:36
 AliHLTHOMERSourceDesc.h:37
 AliHLTHOMERSourceDesc.h:38
 AliHLTHOMERSourceDesc.h:39
 AliHLTHOMERSourceDesc.h:40
 AliHLTHOMERSourceDesc.h:41
 AliHLTHOMERSourceDesc.h:42
 AliHLTHOMERSourceDesc.h:43
 AliHLTHOMERSourceDesc.h:44
 AliHLTHOMERSourceDesc.h:45
 AliHLTHOMERSourceDesc.h:46
 AliHLTHOMERSourceDesc.h:47
 AliHLTHOMERSourceDesc.h:48
 AliHLTHOMERSourceDesc.h:49
 AliHLTHOMERSourceDesc.h:50
 AliHLTHOMERSourceDesc.h:51
 AliHLTHOMERSourceDesc.h:52
 AliHLTHOMERSourceDesc.h:53
 AliHLTHOMERSourceDesc.h:54
 AliHLTHOMERSourceDesc.h:55
 AliHLTHOMERSourceDesc.h:56
 AliHLTHOMERSourceDesc.h:57
 AliHLTHOMERSourceDesc.h:58
 AliHLTHOMERSourceDesc.h:59
 AliHLTHOMERSourceDesc.h:60
 AliHLTHOMERSourceDesc.h:61
 AliHLTHOMERSourceDesc.h:62
 AliHLTHOMERSourceDesc.h:63
 AliHLTHOMERSourceDesc.h:64
 AliHLTHOMERSourceDesc.h:65
 AliHLTHOMERSourceDesc.h:66
 AliHLTHOMERSourceDesc.h:67
 AliHLTHOMERSourceDesc.h:68
 AliHLTHOMERSourceDesc.h:69
 AliHLTHOMERSourceDesc.h:70
 AliHLTHOMERSourceDesc.h:71
 AliHLTHOMERSourceDesc.h:72
 AliHLTHOMERSourceDesc.h:73
 AliHLTHOMERSourceDesc.h:74
 AliHLTHOMERSourceDesc.h:75
 AliHLTHOMERSourceDesc.h:76
 AliHLTHOMERSourceDesc.h:77
 AliHLTHOMERSourceDesc.h:78
 AliHLTHOMERSourceDesc.h:79
 AliHLTHOMERSourceDesc.h:80
 AliHLTHOMERSourceDesc.h:81
 AliHLTHOMERSourceDesc.h:82
 AliHLTHOMERSourceDesc.h:83
 AliHLTHOMERSourceDesc.h:84
 AliHLTHOMERSourceDesc.h:85
 AliHLTHOMERSourceDesc.h:86
 AliHLTHOMERSourceDesc.h:87
 AliHLTHOMERSourceDesc.h:88
 AliHLTHOMERSourceDesc.h:89
 AliHLTHOMERSourceDesc.h:90
 AliHLTHOMERSourceDesc.h:91
 AliHLTHOMERSourceDesc.h:92
 AliHLTHOMERSourceDesc.h:93
 AliHLTHOMERSourceDesc.h:94
 AliHLTHOMERSourceDesc.h:95
 AliHLTHOMERSourceDesc.h:96
 AliHLTHOMERSourceDesc.h:97
 AliHLTHOMERSourceDesc.h:98
 AliHLTHOMERSourceDesc.h:99
 AliHLTHOMERSourceDesc.h:100
 AliHLTHOMERSourceDesc.h:101
 AliHLTHOMERSourceDesc.h:102
 AliHLTHOMERSourceDesc.h:103
 AliHLTHOMERSourceDesc.h:104
 AliHLTHOMERSourceDesc.h:105
 AliHLTHOMERSourceDesc.h:106
 AliHLTHOMERSourceDesc.h:107
 AliHLTHOMERSourceDesc.h:108
 AliHLTHOMERSourceDesc.h:109
 AliHLTHOMERSourceDesc.h:110
 AliHLTHOMERSourceDesc.h:111
 AliHLTHOMERSourceDesc.h:112
 AliHLTHOMERSourceDesc.h:113
 AliHLTHOMERSourceDesc.h:114
 AliHLTHOMERSourceDesc.h:115
 AliHLTHOMERSourceDesc.h:116
 AliHLTHOMERSourceDesc.h:117
 AliHLTHOMERSourceDesc.h:118
 AliHLTHOMERSourceDesc.h:119
 AliHLTHOMERSourceDesc.h:120
 AliHLTHOMERSourceDesc.h:121
 AliHLTHOMERSourceDesc.h:122
 AliHLTHOMERSourceDesc.h:123
 AliHLTHOMERSourceDesc.h:124
 AliHLTHOMERSourceDesc.h:125
 AliHLTHOMERSourceDesc.h:126
 AliHLTHOMERSourceDesc.h:127
 AliHLTHOMERSourceDesc.h:128
 AliHLTHOMERSourceDesc.h:129
 AliHLTHOMERSourceDesc.h:130
 AliHLTHOMERSourceDesc.h:131
 AliHLTHOMERSourceDesc.h:132
 AliHLTHOMERSourceDesc.h:133
 AliHLTHOMERSourceDesc.h:134
 AliHLTHOMERSourceDesc.h:135
 AliHLTHOMERSourceDesc.h:136
 AliHLTHOMERSourceDesc.h:137
 AliHLTHOMERSourceDesc.h:138
 AliHLTHOMERSourceDesc.h:139
 AliHLTHOMERSourceDesc.h:140
 AliHLTHOMERSourceDesc.h:141
 AliHLTHOMERSourceDesc.h:142
 AliHLTHOMERSourceDesc.h:143
 AliHLTHOMERSourceDesc.h:144
 AliHLTHOMERSourceDesc.h:145
 AliHLTHOMERSourceDesc.h:146
 AliHLTHOMERSourceDesc.h:147
 AliHLTHOMERSourceDesc.h:148
 AliHLTHOMERSourceDesc.h:149
 AliHLTHOMERSourceDesc.h:150
 AliHLTHOMERSourceDesc.h:151
 AliHLTHOMERSourceDesc.h:152
 AliHLTHOMERSourceDesc.h:153
 AliHLTHOMERSourceDesc.h:154
 AliHLTHOMERSourceDesc.h:155
 AliHLTHOMERSourceDesc.h:156
 AliHLTHOMERSourceDesc.h:157
 AliHLTHOMERSourceDesc.h:158
 AliHLTHOMERSourceDesc.h:159
 AliHLTHOMERSourceDesc.h:160
 AliHLTHOMERSourceDesc.h:161
 AliHLTHOMERSourceDesc.h:162
 AliHLTHOMERSourceDesc.h:163
 AliHLTHOMERSourceDesc.h:164
 AliHLTHOMERSourceDesc.h:165
 AliHLTHOMERSourceDesc.h:166
 AliHLTHOMERSourceDesc.h:167
 AliHLTHOMERSourceDesc.h:168
 AliHLTHOMERSourceDesc.h:169
 AliHLTHOMERSourceDesc.h:170
 AliHLTHOMERSourceDesc.h:171
 AliHLTHOMERSourceDesc.h:172
 AliHLTHOMERSourceDesc.h:173
 AliHLTHOMERSourceDesc.h:174
 AliHLTHOMERSourceDesc.h:175
 AliHLTHOMERSourceDesc.h:176
 AliHLTHOMERSourceDesc.h:177
 AliHLTHOMERSourceDesc.h:178
 AliHLTHOMERSourceDesc.h:179
 AliHLTHOMERSourceDesc.h:180
 AliHLTHOMERSourceDesc.h:181
 AliHLTHOMERSourceDesc.h:182
 AliHLTHOMERSourceDesc.h:183
 AliHLTHOMERSourceDesc.h:184
 AliHLTHOMERSourceDesc.h:185
 AliHLTHOMERSourceDesc.h:186
 AliHLTHOMERSourceDesc.h:187
 AliHLTHOMERSourceDesc.h:188
 AliHLTHOMERSourceDesc.h:189
 AliHLTHOMERSourceDesc.h:190
 AliHLTHOMERSourceDesc.h:191