Closed PALoizeau closed 4 years ago
Newly created tests show, in some instances, unintuitive behavior of the TimesliceMultiInputArchive class:
The following point is in fact a "feature" that we introduced to support the multiple pn merging
* Multiple files separated by ";" are merged (sorted by time), while multiple files selected by wildcard are visited in sequence
All the other ones are indeed things that we have to fix (bugs, leftovers or forgotten missing pieces) . It is actually interesting that they did not bother our usage before. => Should we make an issue to remember it?
Newly created tests show, in some instances, unintuitive behavior of the TimesliceMultiInputArchive class:
* Throws boost::filesystem::filesystem_error if given filename does not contain a directory (incompatible with plain TimesliceInputArchive) * Throws std::out_of_range if given file does not exist because of the "stream.at(0)" statement in the constructor * Non-standard wildcard matching: Only "*", no "?". No way to protect literal "*". * Calls "exit()" on errors instead of throwing an exception
I am currently working on an extended implementation of this functionality, following these ideas:
InputArchiveSequence
template class, which can read from a numbered sequence of files as created by the existing counterpart OutputArchiveSequence
(using the %n
placeholder)TimesliceInputArchiveSequence
and MicrosliceInputArchiveSequence
MergingSource
, which is constructed from a vector of Source
s and performs the merging of items based on time by prefetching (as done by TimesliceMultiInput*
now). This could then be used for all kinds of sources (InputArchive
, Subscriber
) and both timeslices and microslices.As I don't know when this will be ready to replace the present functionality of TimesliceMultiInput*
, I have now merged the existing pull request as it is.
So I would, for now, postpone fixing issues that did not bother the cbmroot users up to now.
Bring back the client size developments/patches done in CBMROOT and used in local flesnet versions for mCBM. These changes were applied until now in CBMROOT by copying files in the fles_ipc folder at build time.
The second change introduces a dependency of the fles_ipc library on the logging library which may be replaced by a patch in CBMROOT if undesirable.