/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef EVENTREADOUTFORMAT_ROMFRAGMENT_H 00002 #define EVENTREADOUTFORMAT_ROMFRAGMENT_H 00003 00004 /* 00005 * RomFragment.h 00006 * EventReadoutFormat 00007 * 00008 * Created by Simon Patton on 7/19/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 #include "EventReadoutFormat/EventBuffer.h" 00013 00014 namespace DybDaq { 00015 class ByteBuffer; 00016 class EventReadout; 00017 class EventTraits; 00018 class RomData; 00019 class RomExpandable; 00020 class RomHeader; 00021 } 00022 00023 #include "DaqReadoutFormat/DaqContainer.h" 00024 00025 namespace DybDaq { 00026 00027 class RomFragment : public DaqContainer { 00028 00029 public: 00030 00031 friend class EventReadout; 00032 00036 virtual ~RomFragment(); 00037 00038 /* 00039 * Returns the RomHeader for this fragment. 00040 */ 00041 const RomHeader& header() const; 00042 00043 /* 00044 * Returns the RomData for this fragment. 00045 */ 00046 const RomData& data() const; 00047 00048 /* 00049 * Returns the base RomData for this fragment, unwrapping any CBLT that may exist. 00050 */ 00051 const RomData& unwrappedData() const; 00052 00056 virtual unsigned int bufferSize() const; 00057 00058 protected: 00059 00063 RomFragment(const unsigned int site, 00064 const unsigned int detector, 00065 const unsigned int moduleType, 00066 const unsigned int slot, 00067 const RomData* data, 00068 const EventTraits& traits, 00069 const bool cbltWrapping, 00070 DaqExpandable& expandable); 00071 00075 RomFragment(const ByteBuffer& byteBuffer, 00076 const EventTraits& traits, 00077 const bool cbltWrapping); 00078 00082 virtual unsigned int gatherComponents(OutputBufferList& outputBuffers) const; 00083 00087 virtual unsigned int inspectComponents(DaqBuffer::Bytes& inspectors) const; 00088 00092 virtual void expanded(const unsigned int size); 00093 00094 private: 00095 00099 RomFragment(); 00100 00104 RomFragment(RomFragment& rhs); 00105 00109 RomFragment& operator=(RomFragment& rhs); 00110 00114 mutable RomHeader* m_header; 00115 00119 mutable const RomData* m_data; 00120 00124 bool m_cbltWrapping; 00125 }; 00126 00127 } 00128 00129 #endif // EVENTREADOUTFORMAT_ROMFRAGMENT_H