This file is indexed.

/usr/include/odinseq/seqclass.h is in libodin-dev 1.8.5-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/***************************************************************************
                          seqclass.h  -  description
                             -------------------
    begin                : Sun Jan 20 2002
    copyright            : (C) 2001 by Thies H. Jochimsen
    email                : jochimse@cns.mpg.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef SEQCLASS_H
#define SEQCLASS_H


#include <tjutils/tjtypes.h>
#include <tjutils/tjstring.h>
#include <tjutils/tjstatic.h>
#include <tjutils/tjlog.h>
#include <tjutils/tjlabel.h>
#include <tjutils/tjindex.h>
#include <tjutils/tjhandler.h>
#include <tjutils/tjvector.h>

#include <odinpara/reco.h>
#include <odinpara/geometry.h>
#include <odinpara/seqpars.h>
#include <odinpara/study.h>
#include <odinpara/system.h>


/**
  * @addtogroup odinseq_internals
  * @{
  */


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

// For debugging the Seq component
class Seq {
 public:
  static const char* get_compName();
};

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

class SeqVector; //forward declaration

/**
  * This is the base class for all Seq* classes. It provides
  * functions that are common to all classes of the sequence library,
  * e.g. functions for error/debug message handling and acces to
  * proxies, i.e. geometryInfo, studyInfo and systemInfo.
  */
class SeqClass : public virtual Labeled, public StaticHandler<SeqClass> {

 public:


/**
  * Mark object as temporary so that it will be deleted automatically
  */
  SeqClass& set_temporary();


  System& get_systemInfo() {return *systemInfo;}

  // functions to initialize/delete static members by the StaticHandler template class
  static void init_static();
  static void destroy_static();


 protected:

  // prevent direct construction/assignment/destruction of this class
  SeqClass();
  virtual ~SeqClass();
  SeqClass& operator = (const SeqClass& sc);

/**
  * Writes a marshalling error, i.e. mashalling without appropriate sub-object, to the log
  */
  void marshall_error() const;

/**
  * Delete all temporary objects
  */
  static void clear_temporary();

/**
  * Overload this function in case the class is a container object, i.e.
  * it contains other sequence objects. The function should clear all
  * references to other sequence objects, i.e. to thos it contains.
  */
  virtual void clear_container() {}


/**
  * Clear the contents of all container objects
  */
  static void clear_containers();

/**
  * Overload this function to prepare objects before the measurement. This function
  * will then be called automatically after editing the sequence parameters and
  * before the measurement is started. This function should not alter the physical
  * properties of the sequence object, e.g. its duration.
  */
  virtual bool prep() {prepped=true; return true;}


  // call prep() of all objects
  static bool prep_all();


  // points to systemInfo of the currently active platform
  SystemInterface& systemInfo;

  // points to the geometry parameters
  static SingletonHandler<Geometry,false>  geometryInfo;

  // points to the geometry parameters
  static SingletonHandler<Study,false>  studyInfo;

  // points to the reco parameters
  static SingletonHandler<RecoPars,false> recoInfo;


  static SeqVector& get_dummyvec();


 private:
  friend class SeqOperator;
  friend class SeqMethod;
  friend class SeqMethodProxy;
  friend class SystemInterface;
  friend class SeqPlatformProxy;


  // remove all references to other sequence objects
  static void clear_objlists();

  bool prepped;

  // List to hold references to SeqClass objects
  struct SeqClassList : public STD_list<SeqClass *>, public Labeled {};

  static SingletonHandler<SeqClassList,false> allseqobjs;
  static SingletonHandler<SeqClassList,false> tmpseqobjs;

  static SingletonHandler<SeqClassList,false> seqobjs2prep;
  static SingletonHandler<SeqClassList,false> seqobjs2clear;

  static SystemInterface* systemInfo_ptr;

  static SeqVector* dummyvec;
};



/** @}
  */
#endif