00001
00002
00003
00004
00005
00006
00007 #include "JanEvent.h"
00008 #include <cstring>
00009
00010 JanEvent::JanEvent()
00011 {
00012 memset(mLength, 0, sizeof(mLength));
00013 memset(mHeader, 0, sizeof(mHeader));
00014 memset(mTriggerData, 0, sizeof(mTriggerData));
00015 memset(mBemcData, 0, sizeof(mBemcData));
00016 memset(mEemcData, 0, sizeof(mEemcData));
00017 }
00018
00019 void JanEvent::setHeader(const char* header)
00020 {
00021 if (header) {
00022 mLength[0] = strlen(header);
00023 strcpy(mHeader, header);
00024 }
00025 }
00026
00027 void JanEvent::setTriggerData(char* trgData)
00028 {
00029 if (trgData) {
00030 mLength[1] = sizeof(mTriggerData);
00031 memcpy(mTriggerData, trgData, sizeof(mTriggerData));
00032 }
00033 }
00034
00035 void JanEvent::setBemcData(unsigned short* bemcData)
00036 {
00037 if (bemcData) {
00038 mLength[2] = sizeof(mBemcData);
00039 memcpy(mBemcData, bemcData, sizeof(mBemcData));
00040 }
00041 }
00042
00043 void JanEvent::setEemcData(unsigned short* eemcData)
00044 {
00045 if (eemcData) {
00046 mLength[3] = sizeof(mEemcData);
00047 memcpy(mEemcData, eemcData, sizeof(mEemcData));
00048 }
00049 }
00050
00051 istream& operator>>(istream& in, JanEvent& event)
00052 {
00053 in.read((char*)event.mLength, sizeof(event.mLength));
00054 in.read(event.mHeader, event.mLength[0]);
00055 in.read(event.mTriggerData, event.mLength[1]);
00056 in.read((char*)event.mBemcData, event.mLength[2]);
00057 in.read((char*)event.mEemcData, event.mLength[3]);
00058 return in;
00059 }
00060
00061 ostream& operator<<(ostream& out, const JanEvent& event)
00062 {
00063 out.write((char*)event.mLength, sizeof(event.mLength));
00064 out.write(event.mHeader, event.mLength[0]);
00065 out.write(event.mTriggerData, event.mLength[1]);
00066 out.write((char*)event.mBemcData, event.mLength[2]);
00067 out.write((char*)event.mEemcData, event.mLength[3]);
00068 return out;
00069 }