14#include "eformat/HeaderMarker.h"
15#include "eformat/util.h"
36 (
const eformat::helper::u32list& blob)
44 (
const eformat::helper::u32slice& blob)
107 throw EFORMAT_WRONG_MARKER(
marker(), eformat::FULL_EVENT);
120 }
catch(eformat::WrongMarkerIssue &ex){
123 }
catch(eformat::BadVersionIssue &ex){
126 }
catch(eformat::SizeCheckIssue &ex){
147(
const uint16_t
version,
const uint16_t rod_version,
const bool exc)
153 for (
size_t i=0; i<total; ++i) {
159 rob_check = f.check(
version, rod_version);
160 }
catch(eformat::RODSizeCheckIssue &ex){
164 }
catch(eformat::WrongMarkerIssue &ex){
167 }
catch(eformat::BadVersionIssue &ex){
170 }
catch(eformat::SizeCheckIssue &ex){
173 }
catch(eformat::BadRodVersionIssue &ex){
176 }
catch(eformat::Issue &ex){
181 if (!rob_check)
return false;
187 const uint16_t rod_version)
194 const uint16_t rod_version)
201 (std::vector<eformat::FragmentProblem>& p,
const uint16_t
version)
const {
204 p.push_back(eformat::WRONG_MARKER);
206 p.push_back(eformat::UNSUPPORTED_VERSION);
211 p.push_back(eformat::WRONG_FRAGMENT_SIZE);
216(std::vector<eformat::helper::ProblemContainer>& p,
218 const uint16_t rod_version)
221 std::vector<eformat::FragmentProblem> tmp;
225 eformat::helper::ProblemContainer pc(this->
source_id(), tmp);
231 for (
size_t i=0; i<total; ++i) {
235 std::vector<eformat::FragmentProblem> tmp;
236 f.problems(tmp,
version, rod_version);
237 eformat::helper::ProblemContainer pc(f.source_id(), tmp);
243(std::vector<ROBFragment>&
r)
const
247 for (
size_t i=0; i<total; ++i) {
255(std::vector<ROBFragment>& good,
256 std::vector<ROBFragment>&
bad,
257 const uint16_t
version,
const uint16_t rod_version)
const
260 for (
size_t i=0; i<total; ++i) {
264 if (f.check_noex(
version, rod_version)) good.push_back(f);
265 else bad.push_back(f);
277 for (
size_t i=0; i<n; ++i) next += next[1];
284 if (n >= total)
throw EFORMAT_NO_SUCH_CHILD(n, total);
290 const uint32_t* payload_start;