00001 #ifndef __PXXPayloadFactory__H__ 00002 #define __PXXPayloadFactory__H__ 00003 00012 00013 #include "payloads-unpacker/base/PXXObject.h" 00014 #include "payloads-unpacker/payloads/PXXVPayload.h" 00015 00016 class PXXPayloadFactory; 00017 00018 #ifdef __USEROOT__ 00019 typedef PXXPayloadFactory* PXXPayloadFactoryPtr; 00020 #else 00021 typedef shared_ptr<PXXPayloadFactory> PXXPayloadFactoryPtr; 00022 #endif 00023 00024 class PXXPayloadFactory : public PXXObject { 00025 00026 public: 00027 00028 SET_LOGGER("PXXPayloadFactory"); 00029 00034 static const Int32b_t PAYLOAD_ID_UNKNOWN ; 00035 static const Int32b_t PAYLOAD_ID_SIMPLE_HIT ; 00036 static const Int32b_t PAYLOAD_ID_MULTI_HIT ; 00037 static const Int32b_t PAYLOAD_ID_ENGFORMAT_HIT ; 00038 static const Int32b_t PAYLOAD_ID_TCAL ; 00039 static const Int32b_t PAYLOAD_ID_MON ; 00040 static const Int32b_t PAYLOAD_ID_ENGFORMAT_TRIGGER ; 00041 static const Int32b_t PAYLOAD_ID_ENGFORMAT_HIT_TRIGGER ; 00042 static const Int32b_t PAYLOAD_ID_READOUT_REQUEST ; 00043 static const Int32b_t PAYLOAD_ID_TRIGGER_REQUEST ; 00044 static const Int32b_t PAYLOAD_ID_ENGFORMAT_HIT_DATA ; 00045 static const Int32b_t PAYLOAD_ID_READOUT_DATA ; 00046 static const Int32b_t PAYLOAD_ID_EVENT ; 00047 static const Int32b_t PAYLOAD_ID_EVENT_V2 ; 00048 static const Int32b_t PAYLOAD_ID_LASTVALID ; 00049 //------------------------------------------------------------------------------ 00050 00054 virtual ~PXXPayloadFactory(); 00055 //------------------------------------------------------------------------------ 00056 00060 static PXXPayloadFactoryPtr GetInstancePtr(); 00061 //------------------------------------------------------------------------------ 00062 00067 virtual PXXVPayloadPtr CreateAPayload(const PXXPayloadEnvelope &envl); 00068 //------------------------------------------------------------------------------ 00069 00070 protected: 00071 00075 PXXPayloadFactory(); 00076 //------------------------------------------------------------------------------ 00077 00078 private: 00079 00080 static PXXPayloadFactoryPtr fInstancePtr_; // poInt32b_ter to singleton 00081 00082 ClassDef(PXXPayloadFactory, 0) // PayloadFactory 00083 00084 }; 00085 00086 #endif // __PXXPayloadFactory__H__ 00087