From b431ef6adac5fcc5d441d1e453f64f94ceddf20c Mon Sep 17 00:00:00 2001
From: Matt Clarke <matt.clarke@ess.eu>
Date: Wed, 22 Jan 2025 09:19:02 +0100
Subject: [PATCH] added additional logging for f144 while we chase a bug

---
 src/WriterModule/f144/f144_Writer.cpp | 23 ++++++++++++++++++++++-
 src/WriterModule/f144/f144_Writer.h   |  4 +++-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/WriterModule/f144/f144_Writer.cpp b/src/WriterModule/f144/f144_Writer.cpp
index 8707ac4d7..f56d7fec6 100644
--- a/src/WriterModule/f144/f144_Writer.cpp
+++ b/src/WriterModule/f144/f144_Writer.cpp
@@ -30,12 +30,15 @@ struct ValuesInformation {
 };
 
 template <typename Type> void makeIt(hdf5::node::Group const &Parent) {
+  Logger::Error("f144_Writer makeIt start");
   NeXusDataset::ExtensibleDataset<Type>( // NOLINT(bugprone-unused-raii)
       Parent, "value",
       NeXusDataset::Mode::Create); // NOLINT(bugprone-unused-raii)
+  Logger::Error("f144_Writer makeIt end");
 }
 
 void initValueDataset(hdf5::node::Group const &Parent, Type ElementType) {
+  Logger::Error("f144_Writer initValueDataset start");
   using OpenFuncType = std::function<void()>;
   std::map<Type, OpenFuncType> CreateValuesMap{
       {Type::int8, [&]() { makeIt<std::int8_t>(Parent); }},
@@ -50,10 +53,12 @@ void initValueDataset(hdf5::node::Group const &Parent, Type ElementType) {
       {Type::float64, [&]() { makeIt<std::double_t>(Parent); }},
   };
   CreateValuesMap.at(ElementType)();
+  Logger::Error("f144_Writer initValueDataset end");
 }
 
 /// Parse the configuration for this stream.
 void f144_Writer::config_post_processing() {
+  Logger::Error("f144_Writer config_post_processing start");
   auto ToLower = [](auto InString) {
     std::transform(InString.begin(), InString.end(), InString.begin(),
                    [](auto C) { return std::tolower(C); });
@@ -75,12 +80,14 @@ void f144_Writer::config_post_processing() {
     Logger::Info(R"(Unknown data type with name "{}". Using double.)",
                  DataType.get_value());
   }
+  Logger::Error("f144_Writer config_post_processing end");
 }
 
 /// \brief Implement the writer module interface, forward to the CREATE case
 /// of
 /// `init_hdf`.
 InitResult f144_Writer::init_hdf(hdf5::node::Group &HDFGroup) {
+  Logger::Error("f144_Writer init_hdf start");
   auto Create = NeXusDataset::Mode::Create;
   try {
     NeXusDataset::Time(HDFGroup, Create,
@@ -97,15 +104,18 @@ InitResult f144_Writer::init_hdf(hdf5::node::Group &HDFGroup) {
     auto message = hdf5::error::print_nested(E);
     Logger::Error("f144 writer could not init_hdf hdf_parent: {}  trace: {}",
                   static_cast<std::string>(HDFGroup.link().path()), message);
+    Logger::Error("f144_Writer init_hdf end");
     return InitResult::ERROR;
   }
 
+  Logger::Error("f144_Writer init_hdf end");
   return InitResult::OK;
 }
 
 /// \brief Implement the writer module interface, forward to the OPEN case of
 /// `init_hdf`.
 InitResult f144_Writer::reopen(hdf5::node::Group &HDFGroup) {
+  Logger::Error("f144_Writer reopen start");
   auto Open = NeXusDataset::Mode::Open;
   try {
     Timestamp = NeXusDataset::Time(HDFGroup, Open);
@@ -116,26 +126,33 @@ InitResult f144_Writer::reopen(hdf5::node::Group &HDFGroup) {
     Logger::Error(
         R"(Failed to reopen datasets in HDF file with error message: "{}")",
         std::string(E.what()));
+    Logger::Error("f144_Writer reopen end");
     return InitResult::ERROR;
   }
+  Logger::Error("f144_Writer reopen end");
   return InitResult::OK;
 }
 
 template <typename FBValueType, typename ReturnType>
 ReturnType extractScalarValue(const f144_LogData *LogDataMessage) {
+  Logger::Error("f144_Writer extractScalarValue start");
   auto LogValue = LogDataMessage->value_as<FBValueType>();
+  Logger::Error("f144_Writer extractScalarValue end");
   return LogValue->value();
 }
 
 template <typename DataType, typename ValueType, class DatasetType>
 ValuesInformation appendScalarData(DatasetType &Dataset,
                                    const f144_LogData *LogDataMessage) {
+  Logger::Error("f144_Writer appendScalarData start");
   auto ScalarValue = extractScalarValue<ValueType, DataType>(LogDataMessage);
   Dataset.template appendElement<DataType>(ScalarValue);
+  Logger::Error("f144_Writer appendScalarData end");
   return {double(ScalarValue), double(ScalarValue), double(ScalarValue), 1};
 }
 
 void msgTypeIsConfigType(f144_Writer::Type ConfigType, Value MsgType) {
+  Logger::Error("f144_Writer msgTypeIsConfigType start");
   std::unordered_map<Value, f144_Writer::Type> TypeComparison{
       {Value::ArrayByte, f144_Writer::Type::int8},
       {Value::Byte, f144_Writer::Type::int8},
@@ -192,10 +209,12 @@ void msgTypeIsConfigType(f144_Writer::Type ConfigType, Value MsgType) {
   } catch (std::out_of_range const &) {
     Logger::Error("Got out of range error when comparing types.");
   }
+  Logger::Error("f144_Writer msgTypeIsConfigType end");
 }
 
 bool f144_Writer::writeImpl(FlatbufferMessage const &Message,
                             [[maybe_unused]] bool is_buffered_message) {
+  Logger::Error("f144_Writer writeImpl start");
   auto LogDataMessage = Getf144_LogData(Message.data());
   Timestamp.appendElement(LogDataMessage->timestamp());
   auto Type = LogDataMessage->value_type();
@@ -274,12 +293,13 @@ bool f144_Writer::writeImpl(FlatbufferMessage const &Message,
     MetaDataMax.setValue(Max);
     MetaDataMean.setValue(Sum / TotalNrOfElementsWritten);
   }
+  Logger::Error("f144_Writer writeImpl end");
   return true;
 }
 
 void f144_Writer::register_meta_data(hdf5::node::Group const &HDFGroup,
                                      const MetaData::TrackerPtr &Tracker) {
-
+  Logger::Error("f144_Writer register_meta_data start");
   if (MetaData.get_value()) {
     MetaDataMin = MetaData::Value<double>(
         HDFGroup, "minimum_value", MetaData::basicDatasetWriter<double>,
@@ -299,6 +319,7 @@ void f144_Writer::register_meta_data(hdf5::node::Group const &HDFGroup,
     MetaDataMean.setAttribute("units", Unit.get_value());
     Tracker->registerMetaData(MetaDataMean);
   }
+  Logger::Error("f144_Writer register_meta_data end");
 }
 
 /// Register the writer module.
diff --git a/src/WriterModule/f144/f144_Writer.h b/src/WriterModule/f144/f144_Writer.h
index b051a739a..989a32110 100644
--- a/src/WriterModule/f144/f144_Writer.h
+++ b/src/WriterModule/f144/f144_Writer.h
@@ -44,7 +44,9 @@ public:
 
   f144_Writer()
       : WriterModule::Base("f144", false, "NXlog",
-                           {"epics_con_info", "alarm_info"}) {}
+                           {"epics_con_info", "alarm_info"}) {
+    Logger::Warn("f144_Writer constructor called");
+  }
   ~f144_Writer() override = default;
 
   enum class Type {
-- 
GitLab