00001 #ifndef PSANA_SMLDATA_DDL_H
00002 #define PSANA_SMLDATA_DDL_H 1
00003
00004
00005
00006 #include <vector>
00007 #include <iosfwd>
00008 #include <cstring>
00009 #include "ndarray/ndarray.h"
00010 #include "pdsdata/xtc/TypeId.hh"
00011 #include "pdsdata/xtc/TypeId.hh"
00012 namespace Psana {
00013 namespace SmlData {
00014
00015
00016
00017
00018
00019
00020
00021 class ConfigV1 {
00022 public:
00023 enum { TypeId = Pds::TypeId::Id_SmlDataConfig };
00024 enum { Version = 1 };
00025 virtual ~ConfigV1();
00026 virtual uint32_t sizeThreshold() const = 0;
00027 };
00028
00029
00030
00031
00032
00033
00034 class ConfigV1;
00035
00036 class OrigDgramOffsetV1 {
00037 public:
00038 enum { TypeId = Pds::TypeId::Id_SmlDataOrigDgramOffset };
00039 enum { Version = 1 };
00040 virtual ~OrigDgramOffsetV1();
00041 virtual int64_t fileOffset() const = 0;
00042 virtual uint32_t extent() const = 0;
00043 };
00044
00045
00046
00047
00048
00049
00050 class ConfigV1;
00051
00052 class ProxyV1 {
00053 public:
00054 enum { TypeId = Pds::TypeId::Id_SmlDataProxy };
00055 enum { Version = 1 };
00056 virtual ~ProxyV1();
00057 virtual int64_t fileOffset() const = 0;
00058 virtual const Pds::TypeId& type() const = 0;
00059 virtual uint32_t extent() const = 0;
00060 };
00061 }
00062 }
00063 #endif // PSANA_SMLDATA_DDL_H