00001 #ifndef DIM_RPC_READER_H 00002 #define DIM_RPC_READER_H 00003 00004 #include <pthread.h> 00005 #include <string> 00006 #include <stdint.h> 00007 00008 class AutoEnlargeBuffer; 00009 class DimRpcInfo; 00010 00011 class DimRpcReader 00012 { 00013 public : 00014 00015 typedef const std::string ReaderArgType; 00016 00017 DimRpcReader(ReaderArgType& name); 00018 virtual ~DimRpcReader(); 00019 00020 const uint32_t* nextEvent(); 00021 const uint32_t* currentEvent() const; 00022 uint32_t runNo(); 00023 std::string currentFile(); 00024 uint32_t stat(); 00025 00026 00027 private : 00028 00029 DimRpcReader(); //stop default 00030 00031 00032 private : 00033 00034 int m_inCode; 00035 int m_outCode; 00036 AutoEnlargeBuffer *m_buffer; 00037 00038 DimRpcInfo *m_rpc; 00039 00040 static pthread_mutex_t m_rpcLock; 00041 }; 00042 00043 #endif