19 namespace itk::itkpix::endec::orion {
21 extern factory::EncCore makeEncCore;
31 void out_next(uint8_t nbits)
override { cb.out_next(nbits); }
32 void out_done(uint8_t nbits)
override { cb.out_done(nbits); }
33 void out_data(uint64_t data)
override { cb.out_data(data); }
44 using OutputCallback = T;
50 EncCore(
Options opt, OutputCallback& cb_out) : opt(opt), cb(cb_out) {
51 log.
debug(
"orion.EncCore(opt, out)");
52 enc = makeEncCore(opt, cb);
59 inline void initialize() {
60 log.
debug(
"initialize()");
63 inline void finalize() {
64 log.
debug(
"finalize()");
68 inline void evt_init(uint8_t tag) { enc->
evt_init(tag); }
69 inline void evt_next(uint8_t tag) { enc->
evt_next(tag); }
70 inline void evt_done() { enc->
evt_done(); }
72 inline void add_hit(uint16_t col, uint16_t row, uint16_t tot) {
75 inline void add_hmap(uint8_t qcol, uint8_t qrow, uint16_t hmap, uint64_t tots) {
76 enc->
add_hmap(qcol, qrow, hmap, tots);
78 inline void add_qcore(uint8_t qcol, uint8_t qrow, uint64_t qtot) {
Definition: enccore.hpp:16
virtual void evt_next(uint8_t tag)=0
Complete the event and start the next one.
virtual void evt_init(uint8_t tag)=0
Init a new event.
virtual void finalize()=0
Finalise encoder core.
virtual void evt_done()=0
Done event.
virtual void add_qcore(uint8_t qcol, uint8_t qrow, uint64_t qtot)=0
Add qcore: tots are decoded to 64 bit qtot, no-hit marked as 0xF.
virtual void add_hmap(uint8_t qcol, uint8_t qrow, uint16_t hmap, uint64_t tots)=0
Add hitmap: hitmap is decoded, tots are not decoded.
virtual void initialize()=0
Initialise encoder core.
virtual void add_hit(uint16_t col, uint16_t row, uint16_t tot)=0
Add hit.
Callback interface for output.
Definition: outcallback.hpp:39
Definition: enccore.hpp:42
Definition: enccore.hpp:26
void out_next(uint8_t nbits) override
Complete the event and start the next one.
Definition: enccore.hpp:31
void out_init() override
Create a new stream and start a new event.
Definition: enccore.hpp:30
uint8_t on_error(OutputError error) override
Callback on encoding error.
Definition: enccore.hpp:34
void out_done(uint8_t nbits) override
Complete the event and finalize the stream.
Definition: enccore.hpp:32
void out_data(uint64_t data) override
Output 64-bit data word for current event.
Definition: enccore.hpp:33
Logger class definition, wrapper around CoreLogger, adds templated methods for different logging leve...
Definition: logger.hpp:108
void debug(fmt::format_string< Args... > fmt, Args &&...args)
Logs a message with debug level.
Definition: logger.hpp:140
Templates for ITkPix Encoder Core.
Common encoder/decoder options.
Definition: options.hpp:10
Callback on event decoding error.
Definition: outcallback.hpp:15