Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
e79eb1e
JCF: a save-my-work commit where I get an intermediate base class to …
Jun 23, 2026
d6dcefe
JCF: a couple of minor touch-ups to DataStoreImpl - giving FileReader…
Jun 26, 2026
8c6cf91
JCF: fix syntax error
Jun 26, 2026
6905ee6
JCF: avoid D.R.Y. by factoring out the logic which checks available s…
Jun 26, 2026
0f978a4
JCF: extend increment_file_index_if_needed to handle all (both) file …
Jun 27, 2026
13e58e6
JCF: have the configuration of a given implementation of DataStore be…
Jun 29, 2026
ac2599f
JCF: rather than have every implementation of FileIOObject supply its…
Jun 30, 2026
ed1831f
JCF: assign values to the member data in a member initializer list ra…
Jul 2, 2026
e4ba8d9
Merge remote-tracking branch 'origin/develop' into johnfreeman/file_f…
Jul 3, 2026
ae01592
JCF: of course, you actually want to throw the TimeSliceAlreadyExists…
Jul 4, 2026
a2a6898
JCF: check for exception throw (rather than a crash) if you try to ma…
Jul 4, 2026
8c626d4
JCF: privatize the data members of DataStoreImpl
Jul 6, 2026
0ec8ab9
JCF: drop HDF5FileUtils.hpp as its functions aren't used
Jul 7, 2026
b08222f
JCF: add a FileHandleConcept explicitly laying out the requirements o…
Jul 7, 2026
da6cb1e
JCF: create a stub implementation of the DataStore interface
Jul 9, 2026
5abe254
JCF: on Eric's recommendation, give DataStoreImpl the more accurate n…
Jul 9, 2026
bf552fb
JCF: as FileDataStoreImpl is write-format independent, leave it to im…
Jul 9, 2026
5c81232
JCF: remove the hardwired assumption in FileDataStoreImpl that the ex…
Jul 9, 2026
68981ab
JCF: various improvements to the in-code comments
Jul 10, 2026
45b2b61
JCF: and one other update to the in code comment, bringing the descri…
Jul 10, 2026
4683564
JCF: in the spirit of "WYSIWYG", remove the forced reset of the free …
Jul 10, 2026
ac58d3e
JCF: a few minor tweaks related to syntax best-practices, linter moll…
Jul 10, 2026
12cfca1
JCF: even though it's just a stub, the data writer class I wrote for …
Jul 11, 2026
84843de
JCF: implement Eric's suggestion to document what exceptions we expec…
Jul 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ find_package(Boost COMPONENTS iostreams unit_test_framework REQUIRED)
daq_protobuf_codegen( opmon/*.proto )

##############################################################################
daq_add_library( TriggerInhibitAgent.cpp TriggerRecordBuilderData.cpp TPBundleHandler.cpp
daq_add_library( TriggerInhibitAgent.cpp TriggerRecordBuilderData.cpp TPBundleHandler.cpp StubDataWriter.cpp
LINK_LIBRARIES
opmonlib::opmonlib ers::ers HighFive appfwk::appfwk logging::logging stdc++fs dfmessages::dfmessages utilities::utilities trigger::trigger detdataformats::detdataformats trgdataformats::trgdataformats)

daq_add_plugin( StubDataStore duneDataStore LINK_LIBRARIES dfmodules )
daq_add_plugin( HDF5DataStore duneDataStore LINK_LIBRARIES dfmodules hdf5libs::hdf5libs stdc++fs)

daq_add_plugin( FragmentAggregatorModule duneDAQModule LINK_LIBRARIES dfmodules iomanager::iomanager )
Expand All @@ -38,11 +38,13 @@ daq_add_plugin( FakeDataProdModule duneDAQModule LINK_LIBRARIES dfmodul
daq_add_plugin( TPStreamWriterModule duneDAQModule LINK_LIBRARIES dfmodules hdf5libs::hdf5libs trigger::trigger Boost::iostreams )

##############################################################################
daq_add_unit_test( HDF5FileUtils_test LINK_LIBRARIES dfmodules )

daq_add_unit_test( HDF5Write_test LINK_LIBRARIES dfmodules hdf5libs::hdf5libs )
add_dependencies( HDF5Write_test dfmodules_HDF5DataStore_duneDataStore )

daq_add_unit_test( StubWrite_test LINK_LIBRARIES dfmodules )
add_dependencies( StubWrite_test dfmodules_StubDataStore_duneDataStore )

daq_add_unit_test( DFOModule_test LINK_LIBRARIES dfmodules )
add_dependencies( DFOModule_test dfmodules_DFOModule_duneDAQModule)

Expand Down
17 changes: 4 additions & 13 deletions include/dfmodules/DataStore.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
/**
* @file DataStore.hpp
*
* This is the interface for storing and retrieving data from
* various storage systems.
* This is the interface for writing data to various storage systems.
*
* This is part of the DUNE DAQ Application Framework, copyright 2020.
* Licensing/copyright details are in the COPYING file that you should have
Expand Down Expand Up @@ -89,17 +88,6 @@ ERS_DECLARE_ISSUE(dfmodules,
((std::string)mod_name)((std::string)description))
/// @endcond LCOV_EXCL_STOP

/**
* @brief An ERS Issue for DataStore problems in which it is
* not clear whether retrying the operation might succeed or not.
* @cond Doxygen doesn't like ERS macros LCOV_EXCL_START
*/
ERS_DECLARE_ISSUE(dfmodules,
GeneralDataStoreProblem,
"Module " << mod_name << ": A problem was encountered when " << description,
((std::string)mod_name)((std::string)description))
/// @endcond LCOV_EXCL_STOP

namespace dfmodules {

/**
Expand All @@ -120,12 +108,15 @@ class DataStore : public utilities::NamedObject, public opmonlib::MonitorableObj
/**
* @brief Writes the TriggerRecord into the DataStore.
* @param tr TriggerRecord to write.
* @throws RetryableDataStoreProblem
*/
virtual void write(const daqdataformats::TriggerRecord& tr) = 0;

/**
* @brief Writes the TimeSlice into the DataStore.
* @param ts TimeSlice to write.
* @throws RetryableDataStoreProblem
* @throws IgnorableDataStoreProblem
*/
virtual void write(const daqdataformats::TimeSlice& ts) = 0;

Expand Down
Loading
Loading