@@ -215,7 +215,7 @@ void DataOutputDirector::readSpecs(std::vector<InputSpec> inputs)
215215 }
216216}
217217
218- std::tuple<std::string, std::string, std::string, float , int > DataOutputDirector::readJson (std::string const & fnjson)
218+ std::tuple<std::string, std::string, std::string, float , int , uint64_t > DataOutputDirector::readJson (std::string const & fnjson)
219219{
220220 // open the file
221221 FILE* fjson = fopen (fnjson.c_str (), " r" );
@@ -231,28 +231,26 @@ std::tuple<std::string, std::string, std::string, float, int> DataOutputDirector
231231 // parse the json file
232232 Document jsonDocument;
233233 jsonDocument.ParseStream (jsonStream);
234- auto [rdn, dfn, fmode, mfs, ntfm] = readJsonDocument (&jsonDocument);
234+ auto [rdn, dfn, fmode, mfs, ntfm, offset ] = readJsonDocument (&jsonDocument);
235235
236236 // clean up
237237 fclose (fjson);
238238
239- return std::make_tuple (rdn, dfn, fmode, mfs, ntfm);
239+ return std::make_tuple (rdn, dfn, fmode, mfs, ntfm, offset );
240240}
241241
242- std::tuple<std::string, std::string, std::string, float , int > DataOutputDirector::readJsonString (std::string const & jsonString)
242+ std::tuple<std::string, std::string, std::string, float , int , uint64_t > DataOutputDirector::readJsonString (std::string const & jsonString)
243243{
244244 // parse the json string
245245 Document jsonDocument;
246246 jsonDocument.Parse (jsonString.c_str ());
247- auto [rdn, dfn, fmode, mfs, ntfm] = readJsonDocument (&jsonDocument);
247+ auto [rdn, dfn, fmode, mfs, ntfm, offset ] = readJsonDocument (&jsonDocument);
248248
249- return std::make_tuple (rdn, dfn, fmode, mfs, ntfm);
249+ return std::make_tuple (rdn, dfn, fmode, mfs, ntfm, offset );
250250}
251251
252- std::tuple<std::string, std::string, std::string, float , int > DataOutputDirector::readJsonDocument (Document* jsonDocument)
252+ std::tuple<std::string, std::string, std::string, float , int , uint64_t > DataOutputDirector::readJsonDocument (Document* jsonDocument)
253253{
254- std::string smc (" :" );
255- std::string slh (" /" );
256254 const char * itemName;
257255
258256 // initialisations
@@ -261,6 +259,7 @@ std::tuple<std::string, std::string, std::string, float, int> DataOutputDirector
261259 std::string fmode (" " );
262260 float maxfs = -1 .;
263261 int ntfm = -1 ;
262+ uint64_t offset = 0 ;
264263
265264 // is it a proper json document?
266265 if (jsonDocument->HasParseError ()) {
@@ -351,8 +350,21 @@ std::tuple<std::string, std::string, std::string, float, int> DataOutputDirector
351350 }
352351 }
353352
353+ itemName = " offset" ;
354+ if (dodirItem.HasMember (itemName)) {
355+ if (dodirItem[itemName].IsNumber ()) {
356+ offset = dodirItem[itemName].GetUint64 ();
357+ setDFOffset (offset);
358+ } else {
359+ LOGP (error, " Check the JSON document! Item \" {}\" must be a number!" , itemName);
360+ return memptyanswer;
361+ }
362+ }
363+
354364 itemName = " OutputDescriptors" ;
355365 if (dodirItem.HasMember (itemName)) {
366+ std::string slh (" /" );
367+ std::string smc (" :" );
356368 if (!dodirItem[itemName].IsArray ()) {
357369 LOGP (error, " Check the JSON document! Item \" {}\" must be an array!" , itemName);
358370 return memptyanswer;
@@ -419,7 +431,7 @@ std::tuple<std::string, std::string, std::string, float, int> DataOutputDirector
419431 printOut ();
420432 }
421433
422- return std::make_tuple (resdir, dfn, fmode, maxfs, ntfm);
434+ return std::make_tuple (resdir, dfn, fmode, maxfs, ntfm, offset );
423435}
424436
425437std::vector<DataOutputDescriptor*> DataOutputDirector::getDataOutputDescriptors (header::DataHeader dh)
0 commit comments