Update buffer folder and files naming convention

All references to folders and files inside buffer were updated.
- Base folder to write detector: detector_folder
- Name of the modules inside detector_folder: module_name
- Data grouping folders based on pulse_id: data_folder
- Data grouping files, based on pulse_id: data_file
This commit is contained in:
2020-07-20 11:06:13 +02:00
parent 8c1182e412
commit dbc913ee78
10 changed files with 76 additions and 76 deletions
+2 -2
View File
@@ -7,8 +7,8 @@
namespace BufferUtils
{
std::string get_filename(
std::string root_folder,
std::string device_name,
std::string detector_folder,
std::string module_name,
uint64_t pulse_id);
std::size_t get_file_frame_index(uint64_t pulse_id);
+10 -10
View File
@@ -6,21 +6,21 @@
using namespace std;
string BufferUtils::get_filename(
std::string root_folder,
std::string device_name,
std::string detector_folder,
std::string module_name,
uint64_t pulse_id)
{
uint64_t folder_base = pulse_id / buffer_config::FOLDER_MOD;
folder_base *= buffer_config::FOLDER_MOD;
uint64_t data_folder = pulse_id / buffer_config::FOLDER_MOD;
data_folder *= buffer_config::FOLDER_MOD;
uint64_t file_base = pulse_id / buffer_config::FILE_MOD;
file_base *= buffer_config::FILE_MOD;
uint64_t data_file = pulse_id / buffer_config::FILE_MOD;
data_file *= buffer_config::FILE_MOD;
stringstream folder;
folder << root_folder << "/";
folder << device_name << "/";
folder << folder_base << "/";
folder << file_base << buffer_config::FILE_EXTENSION;
folder << detector_folder << "/";
folder << module_name << "/";
folder << data_folder << "/";
folder << data_file << buffer_config::FILE_EXTENSION;
return folder.str();
}
+10 -10
View File
@@ -9,33 +9,33 @@ TEST(BufferUtils, get_filename)
auto expected_file = "/root/device-1/12300000/12345000" +
buffer_config::FILE_EXTENSION;
auto root_folder = "/root";
auto device_name = "device-1";
auto detector_folder = "/root";
auto module_name = "device-1";
auto result = BufferUtils::get_filename(
root_folder,
device_name,
detector_folder,
module_name,
12345000);
ASSERT_EQ(result, expected_file);
auto result2 = BufferUtils::get_filename(
root_folder,
device_name,
detector_folder,
module_name,
12345999);
ASSERT_EQ(result2, expected_file);
auto result3 = BufferUtils::get_filename(
root_folder,
device_name,
detector_folder,
module_name,
12346000);
ASSERT_NE(result3, expected_file);
auto result4 = BufferUtils::get_filename(
root_folder,
device_name,
detector_folder,
module_name,
12344999);
ASSERT_NE(result4, expected_file);
+12 -12
View File
@@ -19,13 +19,13 @@ using namespace writer_config;
using namespace buffer_config;
void read_buffer(
const string device,
const string channel_name,
const string detector_folder,
const string module_name,
const int i_module,
const vector<uint64_t>& buffer_blocks,
ImageAssembler& image_assembler)
{
BufferBinaryReader block_reader(device, channel_name);
BufferBinaryReader block_reader(detector_folder, module_name);
auto block_buffer = new BufferBinaryBlock();
for (uint64_t block_id:buffer_blocks) {
@@ -63,11 +63,11 @@ int main (int argc, char *argv[])
{
if (argc != 7) {
cout << endl;
cout << "Usage: sf_writer [output_file] [device] [n_modules]";
cout << "Usage: sf_writer [output_file] [detector_folder] [n_modules]";
cout << " [start_pulse_id] [stop_pulse_id] [pulse_id_step]";
cout << endl;
cout << "\toutput_file: Complete path to the output file." << endl;
cout << "\tdevice: Name of detector." << endl;
cout << "\tdetector_folder: Absolute path to detector buffer." << endl;
cout << "\tn_modules: number of modules" << endl;
cout << "\tstart_pulse_id: Start pulse_id of retrieval." << endl;
cout << "\tstop_pulse_id: Stop pulse_id of retrieval." << endl;
@@ -78,7 +78,7 @@ int main (int argc, char *argv[])
}
string output_file = string(argv[1]);
const string device = string(argv[2]);
const string detector_folder = string(argv[2]);
size_t n_modules = atoi(argv[3]);
uint64_t start_pulse_id = (uint64_t) atoll(argv[4]);
uint64_t stop_pulse_id = (uint64_t) atoll(argv[5]);
@@ -107,22 +107,22 @@ int main (int argc, char *argv[])
for (size_t i_module=0; i_module<n_modules; i_module++) {
// TODO: Very ugly. Fix.
string channel_name = "M";
string module_name = "M";
if (i_module < 10) {
channel_name += "0";
module_name += "0";
}
channel_name += to_string(i_module);
module_name += to_string(i_module);
reading_threads.emplace_back(
read_buffer,
device,
channel_name,
detector_folder,
module_name,
i_module,
ref(buffer_blocks),
ref(image_assembler));
}
JFH5Writer writer(output_file, device, n_modules,
JFH5Writer writer(output_file, detector_folder, n_modules,
start_pulse_id, stop_pulse_id, pulse_id_step);
for (uint64_t block_id:buffer_blocks) {
+4 -4
View File
@@ -10,8 +10,8 @@ class BufferBinaryWriter {
const size_t MAX_FILE_BYTES =
buffer_config::FILE_MOD * sizeof(BufferBinaryFormat);
const std::string root_folder_;
const std::string device_name_;
const std::string detector_folder_;
const std::string module_name_;
std::string latest_filename_;
std::string current_output_filename_;
@@ -23,8 +23,8 @@ class BufferBinaryWriter {
public:
BufferBinaryWriter(
const std::string& root_folder,
const std::string& device_name);
const std::string& detector_folder,
const std::string& module_name);
virtual ~BufferBinaryWriter();
+6 -6
View File
@@ -13,11 +13,11 @@
using namespace std;
BufferBinaryWriter::BufferBinaryWriter(
const string& root_folder,
const string& device_name):
root_folder_(root_folder),
device_name_(device_name),
latest_filename_(root_folder + "/" + device_name + "/LATEST"),
const string& detector_folder,
const string& module_name):
detector_folder_(detector_folder),
module_name_(module_name),
latest_filename_(detector_folder + "/" + module_name + "/LATEST"),
current_output_filename_(""),
output_file_fd_(-1)
{
@@ -33,7 +33,7 @@ void BufferBinaryWriter::write(
const BufferBinaryFormat* buffer)
{
auto current_frame_file =
BufferUtils::get_filename(root_folder_, device_name_, pulse_id);
BufferUtils::get_filename(detector_folder_, module_name_, pulse_id);
if (current_frame_file != current_output_filename_) {
open_file(current_frame_file);
+8 -8
View File
@@ -5,11 +5,11 @@
TEST(BinaryWriter, basic_interaction)
{
auto root_folder = ".";
auto device_name = "test_device";
auto detector_folder = ".";
auto module_name = "test_device";
uint64_t pulse_id = 5;
BufferBinaryWriter writer(device_name, root_folder);
BufferBinaryWriter writer(module_name, detector_folder);
BufferBinaryFormat frame_data;
frame_data.metadata.pulse_id = 1;
@@ -20,7 +20,7 @@ TEST(BinaryWriter, basic_interaction)
writer.write(5, &frame_data);
auto output_filename =
BufferUtils::get_filename(root_folder, device_name, pulse_id);
BufferUtils::get_filename(detector_folder, module_name, pulse_id);
auto read_fd = open(output_filename.c_str(), O_RDONLY);
ASSERT_NE(read_fd, -1);
@@ -42,11 +42,11 @@ TEST(BinaryWriter, basic_interaction)
TEST(BinaryWriter, test_format_marker)
{
auto root_folder = ".";
auto device_name = "test_device";
auto detector_folder = ".";
auto module_name = "M0";
uint64_t pulse_id = 5;
BufferBinaryWriter writer(device_name, root_folder);
BufferBinaryWriter writer(module_name, detector_folder);
BufferBinaryFormat frame_data;
frame_data.metadata.pulse_id = 1;
@@ -57,7 +57,7 @@ TEST(BinaryWriter, test_format_marker)
writer.write(5, &frame_data);
auto output_filename =
BufferUtils::get_filename(root_folder, device_name, pulse_id);
BufferUtils::get_filename(detector_folder, module_name, pulse_id);
auto read_fd = open(output_filename.c_str(), O_RDONLY);
ASSERT_NE(read_fd, -1);
+4 -4
View File
@@ -6,8 +6,8 @@
class BufferBinaryReader {
const std::string root_folder_;
const std::string device_name_;
const std::string detector_folder_;
const std::string module_name_;
std::string current_input_file_;
int input_file_fd_;
@@ -16,8 +16,8 @@ class BufferBinaryReader {
void close_current_file();
public:
BufferBinaryReader(const std::string &root_folder,
const std::string &device_name);
BufferBinaryReader(const std::string &detector_folder,
const std::string &module_name);
~BufferBinaryReader();
+7 -7
View File
@@ -14,12 +14,12 @@ using namespace writer_config;
using namespace buffer_config;
BufferBinaryReader::BufferBinaryReader(
const std::string &root_folder,
const std::string &device_name) :
root_folder_(root_folder),
device_name_(device_name),
current_input_file_(""),
input_file_fd_(-1)
const std::string &detector_folder,
const std::string &module_name) :
detector_folder_(detector_folder),
module_name_(module_name),
current_input_file_(""),
input_file_fd_(-1)
{}
BufferBinaryReader::~BufferBinaryReader()
@@ -32,7 +32,7 @@ void BufferBinaryReader::get_block(
{
uint64_t block_start_pulse_id = block_id * BUFFER_BLOCK_SIZE;
auto current_block_file = BufferUtils::get_filename(
root_folder_, device_name_, block_start_pulse_id);
detector_folder_, module_name_, block_start_pulse_id);
if (current_block_file != current_input_file_) {
open_file(current_block_file);
+13 -13
View File
@@ -19,13 +19,13 @@ using namespace writer_config;
using namespace buffer_config;
void read_buffer(
const string device,
const string channel_name,
const string detector_folder,
const string module_name,
const int i_module,
const vector<uint64_t>& buffer_blocks,
ImageAssembler& image_assembler)
{
BufferBinaryReader block_reader(device, channel_name);
BufferBinaryReader block_reader(detector_folder, module_name);
auto block_buffer = new BufferBinaryBlock();
for (uint64_t block_id:buffer_blocks) {
@@ -63,11 +63,11 @@ int main (int argc, char *argv[])
{
if (argc != 7) {
cout << endl;
cout << "Usage: sf_writer [output_file] [device] [n_modules]";
cout << "Usage: sf_writer [output_file] [detector_folder] [n_modules]";
cout << " [start_pulse_id] [stop_pulse_id] [pulse_id_step]";
cout << endl;
cout << "\toutput_file: Complete path to the output file." << endl;
cout << "\tdevice: Name of detector." << endl;
cout << "\tdetector_folder: Absolute path to detector buffer." << endl;
cout << "\tn_modules: number of modules" << endl;
cout << "\tstart_pulse_id: Start pulse_id of retrieval." << endl;
cout << "\tstop_pulse_id: Stop pulse_id of retrieval." << endl;
@@ -78,7 +78,7 @@ int main (int argc, char *argv[])
}
string output_file = string(argv[1]);
const string device = string(argv[2]);
const string detector_folder = string(argv[2]);
size_t n_modules = atoi(argv[3]);
uint64_t start_pulse_id = (uint64_t) atoll(argv[4]);
uint64_t stop_pulse_id = (uint64_t) atoll(argv[5]);
@@ -107,23 +107,23 @@ int main (int argc, char *argv[])
for (size_t i_module=0; i_module<n_modules; i_module++) {
// TODO: Very ugly. Fix.
string channel_name = "M";
string module_name = "M";
if (i_module < 10) {
channel_name += "0";
module_name += "0";
}
channel_name += to_string(i_module);
module_name += to_string(i_module);
reading_threads.emplace_back(
read_buffer,
device,
channel_name,
detector_folder,
module_name,
i_module,
ref(buffer_blocks),
ref(image_assembler));
}
JFH5Writer writer(output_file, device, n_modules,
start_pulse_id, stop_pulse_id, pulse_id_step);
JFH5Writer writer(output_file, detector_folder, n_modules,
start_pulse_id, stop_pulse_id, pulse_id_step);
for (uint64_t block_id:buffer_blocks) {