Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Xtc package defines several classes

Class Src

Defined in pdsdata/xtc/Src.hh

Class BldInfo

This is a base class for any source of information in the xtc file (e.g. Detector, Beamline, Process). Defined in pdsdata/xtc/BldInfoSrc.hh
Inherits from Src

Public TypesMember Functions:

Code Block
    enum Type { EBeam, PhaseCavity, FEEGasDetEnergy, NumberOf };

Public Member Functions

...

// Constructors
    

...

Src()

...

;
    

...

Src(Level::Type 

...

level);

...


    uint32_t 

...

log()

...

 

...

  const;

...

Static Public Member Functions

Code Block

    static// const char* name(const BldInfo&);

Class ClockTime

Defined in pdsdata/xtc/ClockTime.hh.

Public Member Functions:

...

Code Block

    ClockTime();
    ClockTime(const ClockTime& t);
    ClockTime(unsigned sec, unsigned nsec);

...

logical identifier
    uint32_t phy()   const;    // physical identifier

    

...

Level::Type level() const; 

...

// level

    

...

bool 

...

operator==(const Src& s) const

...

;

...


...

Protected Attributes

Code Block

    

...

uint32_t _log; // logical  identifier
    uint32_t _phy; // physical identifier

Class BldInfo

...

Beamline data Information. This is a derived class that inherits from Src.


Defined in pdsdata/xtc/DamageBldInfo.hh, inline implementation.

Public Types:

Code Block
    enum ValueType {
      DroppedContribution    EBeam = 10,
      OutOfOrder             PhaseCavity = 121,
      OutOfSynch             = 13,
      UserDefined            = 14,
      IncompleteContribution = 15,
      ContainsIncomplete     = 16
    };
    // reserve the top byte to augment user defined errors
    enum {NotUserBitsMask=0x00FFFFFF, UserBitsShift = 24};

...

 FEEGasDetEnergy = 2, NumberOf = 3 };

Public Member Functions

  • Constructors and Destructor
    Code Block
    
        

...

  • BldInfo() {}
        

...

  • BldInfo(uint32_t 

...

  • processId, 

...

  • Type type);
    
  • Accessors
    Code Block
    
        uint32_t 

...

  • processId() const;
        Type     type()  const;
    

Static Public Member Functions

Code Block
  { return _damage; }
    voidstatic const char*   increase(Damage::Value v)  { _damage |= ((1<<vname(const BldInfo&);

Class ProcInfo

Process information class. This is a derived class that inherits from Src.
Holds process info for all Levels except Source.

Public Member Functions:

Code Block
) & NotUserBitsMask); }
    void// Constructor
    increase(uint32_t v)ProcInfo(Level::Type level,     //
   { _damage |= v & NotUserBitsMask; }
    uint32_t bits()processId, const          // 
     { return _damage & NotUserBitsMask;}
    uint32_t userBits(ipAddr) const;      // 

    { return _damage >> UserBitsShift; }
    void uint32_t processId() const;
    userBits(uint32_t vipAddr() {
      _damage &= NotUserBitsMaskconst;
    void   _damage |= ipAddr(v << UserBitsShiftint);
    }

Class DetInfo

Detector information. Inherits from Src. Defined in pdsdata/xtc/DetInfo.hh and implemented in pdsdata/xtc/src/DetInfo.cc.

...

Code Block
    enum Detector {
      NoDetector    = 0,
      AmoIms        = 1,  // AMO Ion Momentum Spectrometer
      AmoGasdet     = 2,  // AMO Gas Detector (in FrontEnd Enclosure)
      AmoETof       = 3,  // AMO Electron Time-of-flight
      AmoITof       = 4,  // AMO Ion Time-of-flight
      AmoMbes       = 5,  // AMO Magnetic bottle electron spectrometer
      AmoVmi        = 6,  // AMO Velocity map imaging
      AmoBps        = 7,  // AMO Beam position screen
      Camp          = 8,  // CFel-ASG-Multi-Purpose EndStation
      EpicsArch     = 9,  // 
      BldEb         = 10,
      SxrBeamline   = 11,
      SxrEndstation = 12,
      XppSb1Ipm     = 13,
      XppSb1Pim     = 14,
      XppMonPim     = 15,
      XppSb2Ipm     = 16,
      XppSb3Ipm     = 17,
      XppSb3Pim     = 18,
      XppSb4Pim     = 19,
      XppGon        = 20,
      XppLas        = 21,
      XppEndstation = 22,
      AmoEndstation = 23,
      CxiEndstation = 24,
      XcsEndstation = 25,
      MecEndstation = 26,
      NumDetector   = 27
    };
    enum Device {
      NoDevice  = 0,
      Evr       = 1,
      Acqiris   = 2,
      Opal1000  = 3,
      TM6740    = 4,
      pnCCD     = 5,
      Princeton = 6,
      Fccd      = 7,
      Ipimb     = 8,
      Encoder   = 9,
      Cspad     = 10,
      NumDevice = 11
    };

...

Code Block
    // Constructors
    DetInfo() {}
    DetInfo(uint32_t   processId,   //
            Detector   det,         //
            uint32_t   detId,       //
            Device     dev,         //
            uint32_t   devId);      //

    bool operator==(const DetInfo &) const;

    uint32_t processId() const; 
    Detector detector() const; 
    Device device() const;   
    uint32_t detId() const;  
    uint32_t devId() const;  

Static Public Member Functions

Code Block



    static const char *name(Detector);
    static const char *name(Device);
    static const char *name(const DetInfo &);

Class ClockTime

Defined in pdsdata/xtc/ClockTime.hh.

Public Member Functions:

  • Constructors (ClockTime has no destructor)
    Code Block
    
        ClockTime();
        ClockTime(const ClockTime& t);
        ClockTime(unsigned sec, unsigned nsec);
    
  • Accessors:
    Code Block
    
        unsigned seconds    () const {return _high;}
        unsigned nanoseconds() const {return _low;}
    
  • Operators
    Code Block
    
        ClockTime& operator=(const ClockTime&);
        bool operator> (const ClockTime&) const;
        bool operator==(const ClockTime&) const;
    

Class Damage

Defined in pdsdata/xtc/Damage.hh, inline implementation.

Public Types:

Code Block

    enum Value {
      DroppedContribution    = 1,
      OutOfOrder             = 12,
      OutOfSynch             = 13,
      UserDefined            = 14,
      IncompleteContribution = 15,
      ContainsIncomplete     = 16
    };
    // reserve the top byte to augment user defined errors
    enum {NotUserBitsMask=0x00FFFFFF, UserBitsShift = 24};

Public Member Functions:

Code Block

    // Constructor
    Damage(uint32_t v) : _damage(v) {}

    uint32_t  value() const             { return _damage; }
    void     increase(Damage::Value v)  { _damage |= ((1<<v) & NotUserBitsMask); }
    void     increase(uint32_t v)       { _damage |= v & NotUserBitsMask; }
    uint32_t bits() const               { return _damage & NotUserBitsMask;}
    uint32_t userBits() const           { return _damage >> UserBitsShift; }
    void     userBits(uint32_t v) {
      _damage &= NotUserBitsMask;
      _damage |= (v << UserBitsShift);
    }

Class Dgram

Datagram - structure of a piece of information within the xtc file.

Public Attributes:

Code Block

     PDS_DGRAM_STRUCT // #define PDS_DGRAM_STRUCT Sequence seq; Env env; Xtc xtc

Class Sequence

Defined in pdsdata/xtc/Sequence.hh.

Public Types:

Code Block

    enum Type    {Event = 0, Occurrence = 1, Marker = 2};
    enum         {NumberOfTypes = 3};

Public Member Functions:

Code Block

    // Constructors
    Sequence() {}
    Sequence(const Sequence&);
    Sequence(const ClockTime& clock, const TimeStamp& stamp);
    Sequence(Type, TransitionId::Value, const ClockTime&, const TimeStamp&);

    Type type() const;
    TransitionId::Value  service() const;
    bool isExtended() const;
    bool isEvent() const;
    const ClockTime& clock() const {return _clock;}
    const TimeStamp& stamp() const {return _stamp;}

    Sequence& operator=(const Sequence&);

Class Env

Defined in pdsdata/xtc/Env.hh

Public Member Functions

Code Block

    // Constructors
    Env() {}
    Env(const Env& in) : _env(in._env) {}
    Env(uint32_t env);

    uint32_t value() const;

    const Env& operator=(const Env& that);

Class Xtc

Class Level

Defined in pdsdata/xtc/Level.hh

Public Types:

Code Block

  enum Type{Control, Source, Segment, Event, Recorder, Observer, Reporter,
            NumberOfLevels};

Static Public Member Functions

Code Block

  static const char* name(Type type);

Class TimeStamp

Class

Class