/usr/include/odinseq/seqclass.h is in libodin-dev 1.8.8-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) 2000-2014 by Thies H. Jochimsen
email : thies@jochimsen.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
|