psddl_pds2psana/include/pnccd.ddl.h

Go to the documentation of this file.
00001 #ifndef PSDDL_PDS2PSANA_PNCCD_DDL_H
00002 #define PSDDL_PDS2PSANA_PNCCD_DDL_H 1
00003 
00004 // *** Do not edit this file, it is auto-generated ***
00005 
00006 #include <vector>
00007 #include <boost/shared_ptr.hpp>
00008 #include "psddl_psana/pnccd.ddl.h"
00009 #include "pdsdata/psddl/pnccd.ddl.h"
00010 namespace psddl_pds2psana {
00011 namespace PNCCD {
00012 
00013 class ConfigV1 : public Psana::PNCCD::ConfigV1 {
00014 public:
00015   typedef Pds::PNCCD::ConfigV1 XtcType;
00016   typedef Psana::PNCCD::ConfigV1 PsanaType;
00017   ConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr);
00018   virtual ~ConfigV1();
00019   virtual uint32_t numLinks() const;
00020   virtual uint32_t payloadSizePerLink() const;
00021   const XtcType& _xtcObj() const { return *m_xtcObj; }
00022 private:
00023   boost::shared_ptr<const XtcType> m_xtcObj;
00024 };
00025 
00026 
00027 class ConfigV2 : public Psana::PNCCD::ConfigV2 {
00028 public:
00029   typedef Pds::PNCCD::ConfigV2 XtcType;
00030   typedef Psana::PNCCD::ConfigV2 PsanaType;
00031   ConfigV2(const boost::shared_ptr<const XtcType>& xtcPtr);
00032   virtual ~ConfigV2();
00033   virtual uint32_t numLinks() const;
00034   virtual uint32_t payloadSizePerLink() const;
00035   virtual uint32_t numChannels() const;
00036   virtual uint32_t numRows() const;
00037   virtual uint32_t numSubmoduleChannels() const;
00038   virtual uint32_t numSubmoduleRows() const;
00039   virtual uint32_t numSubmodules() const;
00040   virtual uint32_t camexMagic() const;
00041   virtual const char* info() const;
00042   virtual const char* timingFName() const;
00043   virtual std::vector<int> info_shape() const;
00044   virtual std::vector<int> timingFName_shape() const;
00045   const XtcType& _xtcObj() const { return *m_xtcObj; }
00046 private:
00047   boost::shared_ptr<const XtcType> m_xtcObj;
00048 };
00049 
00050 
00051 template <typename Config>
00052 class FrameV1 : public Psana::PNCCD::FrameV1 {
00053 public:
00054   typedef Pds::PNCCD::FrameV1 XtcType;
00055   typedef Psana::PNCCD::FrameV1 PsanaType;
00056   FrameV1(const boost::shared_ptr<const XtcType>& xtcPtr, const boost::shared_ptr<const Config>& cfgPtr);
00057   virtual ~FrameV1();
00058   virtual uint32_t specialWord() const;
00059   virtual uint32_t frameNumber() const;
00060   virtual uint32_t timeStampHi() const;
00061   virtual uint32_t timeStampLo() const;
00062   virtual ndarray<const uint16_t, 1> _data() const;
00063   virtual ndarray<const uint16_t, 2> data() const;
00064   const XtcType& _xtcObj() const { return *m_xtcObj; }
00065 private:
00066   boost::shared_ptr<const XtcType> m_xtcObj;
00067   boost::shared_ptr<const Config> m_cfgPtr;
00068 };
00069 
00070 
00071 class FullFrameV1 : public Psana::PNCCD::FullFrameV1 {
00072 public:
00073   typedef Pds::PNCCD::FullFrameV1 XtcType;
00074   typedef Psana::PNCCD::FullFrameV1 PsanaType;
00075   FullFrameV1(const boost::shared_ptr<const XtcType>& xtcPtr);
00076   virtual ~FullFrameV1();
00077   virtual uint32_t specialWord() const;
00078   virtual uint32_t frameNumber() const;
00079   virtual uint32_t timeStampHi() const;
00080   virtual uint32_t timeStampLo() const;
00081   virtual ndarray<const uint16_t, 2> data() const;
00082   const XtcType& _xtcObj() const { return *m_xtcObj; }
00083 private:
00084   boost::shared_ptr<const XtcType> m_xtcObj;
00085 };
00086 
00087 
00088 template <typename Config>
00089 class FramesV1 : public Psana::PNCCD::FramesV1 {
00090 public:
00091   typedef Pds::PNCCD::FramesV1 XtcType;
00092   typedef Psana::PNCCD::FramesV1 PsanaType;
00093   FramesV1(const boost::shared_ptr<const XtcType>& xtcPtr, const boost::shared_ptr<const Config>& cfgPtr);
00094   virtual ~FramesV1();
00095   virtual const Psana::PNCCD::FrameV1& frame(uint32_t i0) const;
00096   virtual uint32_t numLinks() const;
00097   virtual std::vector<int> frame_shape() const;
00098   const XtcType& _xtcObj() const { return *m_xtcObj; }
00099 private:
00100   boost::shared_ptr<const XtcType> m_xtcObj;
00101   boost::shared_ptr<const Config> m_cfgPtr;
00102   std::vector< psddl_pds2psana::PNCCD::FrameV1<Config> > _frames;
00103 };
00104 
00105 } // namespace PNCCD
00106 } // namespace psddl_pds2psana
00107 #endif // PSDDL_PDS2PSANA_PNCCD_DDL_H

Generated on 19 Dec 2016 for PSDMSoftware by  doxygen 1.4.7