removing warnings, hdfmutexlib moved from class member in dataprocessor to just arguments when required in dataprocessor (setupfilewriter and createvirtualfile)

This commit is contained in:
2022-01-05 15:20:06 +01:00
parent 4fce0dcd9c
commit ae9691e848
3 changed files with 19 additions and 19 deletions

View File

@ -34,15 +34,14 @@ DataProcessor::DataProcessor(int index, detectorType detectorType, Fifo *fifo,
uint32_t *streamingTimerInMs, uint32_t *streamingTimerInMs,
uint32_t *streamingStartFnum, bool *framePadding, uint32_t *streamingStartFnum, bool *framePadding,
std::vector<int> *ctbDbitList, int *ctbDbitOffset, std::vector<int> *ctbDbitList, int *ctbDbitOffset,
int *ctbAnalogDataBytes, std::mutex *hdf5Lib) int *ctbAnalogDataBytes)
: ThreadObject(index, typeName_), fifo_(fifo), detectorType_(detectorType), : ThreadObject(index, typeName_), fifo_(fifo), detectorType_(detectorType),
dataStreamEnable_(dataStreamEnable), activated_(activated), dataStreamEnable_(dataStreamEnable), activated_(activated),
streamingFrequency_(streamingFrequency), streamingFrequency_(streamingFrequency),
streamingTimerInMs_(streamingTimerInMs), streamingTimerInMs_(streamingTimerInMs),
streamingStartFnum_(streamingStartFnum), framePadding_(framePadding), streamingStartFnum_(streamingStartFnum), framePadding_(framePadding),
ctbDbitList_(ctbDbitList), ctbDbitOffset_(ctbDbitOffset), ctbDbitList_(ctbDbitList), ctbDbitOffset_(ctbDbitOffset),
ctbAnalogDataBytes_(ctbAnalogDataBytes), firstStreamerFrame_(false), ctbAnalogDataBytes_(ctbAnalogDataBytes), firstStreamerFrame_(false) {
hdf5Lib_(hdf5Lib) {
LOG(logDEBUG) << "DataProcessor " << index << " created"; LOG(logDEBUG) << "DataProcessor " << index << " created";
@ -124,16 +123,16 @@ void DataProcessor::DeleteFiles() {
void DataProcessor::SetupFileWriter(const bool filewriteEnable, void DataProcessor::SetupFileWriter(const bool filewriteEnable,
const bool masterFilewriteEnable, const bool masterFilewriteEnable,
const fileFormat fileFormatType, const fileFormat fileFormatType,
const int modulePos) { const int modulePos, std::mutex *hdf5Lib) {
DeleteFiles(); DeleteFiles();
if (filewriteEnable) { if (filewriteEnable) {
switch (fileFormatType) { switch (fileFormatType) {
#ifdef HDF5C #ifdef HDF5C
case HDF5: case HDF5:
dataFile_ = new HDF5DataFile(index, hdf5Lib_); dataFile_ = new HDF5DataFile(index, hdf5Lib);
if (modulePos == 0 && index == 0) { if (modulePos == 0 && index == 0) {
if (masterFilewriteEnable) { if (masterFilewriteEnable) {
masterFile_ = new HDF5MasterFile(hdf5Lib_); masterFile_ = new HDF5MasterFile(hdf5Lib);
} }
} }
break; break;
@ -208,12 +207,13 @@ void DataProcessor::CreateVirtualFile(
const uint64_t fileIndex, const bool overWriteEnable, const bool silentMode, const uint64_t fileIndex, const bool overWriteEnable, const bool silentMode,
const int modulePos, const int numUnitsPerReadout, const int modulePos, const int numUnitsPerReadout,
const uint32_t maxFramesPerFile, const uint64_t numImages, const uint32_t maxFramesPerFile, const uint64_t numImages,
const uint32_t dynamicRange, const int numModX, const int numModY) { const uint32_t dynamicRange, const int numModX, const int numModY,
std::mutex *hdf5Lib) {
if (virtualFile_) { if (virtualFile_) {
delete virtualFile_; delete virtualFile_;
} }
virtualFile_ = new HDF5VirtualFile(hdf5Lib_); virtualFile_ = new HDF5VirtualFile(hdf5Lib);
uint64_t numImagesProcessed = GetProcessedIndex() + 1; uint64_t numImagesProcessed = GetProcessedIndex() + 1;
// maxframesperfile = 0 for infinite files // maxframesperfile = 0 for infinite files

View File

@ -32,7 +32,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
uint32_t *streamingFrequency, uint32_t *streamingTimerInMs, uint32_t *streamingFrequency, uint32_t *streamingTimerInMs,
uint32_t *streamingStartFnum, bool *framePadding, uint32_t *streamingStartFnum, bool *framePadding,
std::vector<int> *ctbDbitList, int *ctbDbitOffset, std::vector<int> *ctbDbitList, int *ctbDbitOffset,
int *ctbAnalogDataBytes, std::mutex *hdf5Lib); int *ctbAnalogDataBytes);
~DataProcessor() override; ~DataProcessor() override;
@ -52,7 +52,8 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
void DeleteFiles(); void DeleteFiles();
void SetupFileWriter(const bool filewriteEnable, void SetupFileWriter(const bool filewriteEnable,
const bool masterFilewriteEnable, const bool masterFilewriteEnable,
const fileFormat fileFormatType, const int modulePos); const fileFormat fileFormatType, const int modulePos,
std::mutex *hdf5Lib);
void CreateFirstFiles(MasterAttributes *attr, const std::string filePath, void CreateFirstFiles(MasterAttributes *attr, const std::string filePath,
const std::string fileNamePrefix, const std::string fileNamePrefix,
@ -73,7 +74,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
const uint32_t maxFramesPerFile, const uint32_t maxFramesPerFile,
const uint64_t numImages, const uint64_t numImages,
const uint32_t dynamicRange, const int numModX, const uint32_t dynamicRange, const int numModX,
const int numModY); const int numModY, std::mutex *hdf5Lib);
void LinkDataInMasterFile(const bool silentMode); void LinkDataInMasterFile(const bool silentMode);
#endif #endif
void UpdateMasterFile(bool silentMode); void UpdateMasterFile(bool silentMode);
@ -188,7 +189,6 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
File *dataFile_{nullptr}; File *dataFile_{nullptr};
File *masterFile_{nullptr}; File *masterFile_{nullptr};
std::mutex *hdf5Lib_;
#ifdef HDF5C #ifdef HDF5C
File *virtualFile_{nullptr}; File *virtualFile_{nullptr};
#endif #endif

View File

@ -174,7 +174,7 @@ void Implementation::setDetectorType(const detectorType d) {
i, detType, fifo_ptr, &activated, &dataStreamEnable, i, detType, fifo_ptr, &activated, &dataStreamEnable,
&streamingFrequency, &streamingTimerInMs, &streamingStartFnum, &streamingFrequency, &streamingTimerInMs, &streamingStartFnum,
&framePadding, &ctbDbitList, &ctbDbitOffset, &framePadding, &ctbDbitList, &ctbDbitOffset,
&ctbAnalogDataBytes, &hdf5Lib)); &ctbAnalogDataBytes));
} catch (...) { } catch (...) {
listener.clear(); listener.clear();
dataProcessor.clear(); dataProcessor.clear();
@ -237,7 +237,7 @@ void Implementation::setModulePositionId(const int id) {
for (const auto &it : dataProcessor) for (const auto &it : dataProcessor)
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable, it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
fileFormatType, modulePos); fileFormatType, modulePos, &hdf5Lib);
assert(numMods[1] != 0); assert(numMods[1] != 0);
for (unsigned int i = 0; i < listener.size(); ++i) { for (unsigned int i = 0; i < listener.size(); ++i) {
uint16_t row = 0, col = 0; uint16_t row = 0, col = 0;
@ -345,7 +345,7 @@ void Implementation::setFileFormat(const fileFormat f) {
} }
for (const auto &it : dataProcessor) for (const auto &it : dataProcessor)
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable, it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
fileFormatType, modulePos); fileFormatType, modulePos, &hdf5Lib);
} }
LOG(logINFO) << "File Format: " << sls::ToString(fileFormatType); LOG(logINFO) << "File Format: " << sls::ToString(fileFormatType);
@ -382,7 +382,7 @@ void Implementation::setFileWriteEnable(const bool b) {
fileWriteEnable = b; fileWriteEnable = b;
for (const auto &it : dataProcessor) for (const auto &it : dataProcessor)
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable, it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
fileFormatType, modulePos); fileFormatType, modulePos, &hdf5Lib);
} }
LOG(logINFO) << "File Write Enable: " LOG(logINFO) << "File Write Enable: "
<< (fileWriteEnable ? "enabled" : "disabled"); << (fileWriteEnable ? "enabled" : "disabled");
@ -397,7 +397,7 @@ void Implementation::setMasterFileWriteEnable(const bool b) {
masterFileWriteEnable = b; masterFileWriteEnable = b;
for (const auto &it : dataProcessor) for (const auto &it : dataProcessor)
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable, it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
fileFormatType, modulePos); fileFormatType, modulePos, &hdf5Lib);
} }
LOG(logINFO) << "Master File Write Enable: " LOG(logINFO) << "Master File Write Enable: "
<< (masterFileWriteEnable ? "enabled" : "disabled"); << (masterFileWriteEnable ? "enabled" : "disabled");
@ -566,7 +566,7 @@ void Implementation::stopReceiver() {
dataProcessor[0]->CreateVirtualFile( dataProcessor[0]->CreateVirtualFile(
filePath, fileName, fileIndex, overwriteEnable, silentMode, filePath, fileName, fileIndex, overwriteEnable, silentMode,
modulePos, numThreads, framesPerFile, numberOfTotalFrames, modulePos, numThreads, framesPerFile, numberOfTotalFrames,
dynamicRange, numMods[X], numMods[Y]); dynamicRange, numMods[X], numMods[Y], &hdf5Lib);
} }
// link file in master // link file in master
dataProcessor[0]->LinkDataInMasterFile(silentMode); dataProcessor[0]->LinkDataInMasterFile(silentMode);
@ -895,7 +895,7 @@ void Implementation::setNumberofUDPInterfaces(const int n) {
i, detType, fifo_ptr, &activated, &dataStreamEnable, i, detType, fifo_ptr, &activated, &dataStreamEnable,
&streamingFrequency, &streamingTimerInMs, &streamingFrequency, &streamingTimerInMs,
&streamingStartFnum, &framePadding, &ctbDbitList, &streamingStartFnum, &framePadding, &ctbDbitList,
&ctbDbitOffset, &ctbAnalogDataBytes, &hdf5Lib)); &ctbDbitOffset, &ctbAnalogDataBytes));
dataProcessor[i]->SetGeneralData(generalData); dataProcessor[i]->SetGeneralData(generalData);
} catch (...) { } catch (...) {
listener.clear(); listener.clear();