#include <vector>
namespace LogicSnapshotTest {
- class Pow2;
- class Basic;
- class LargeData;
- class Pulses;
- class LongPulses;
+struct Pow2;
+struct Basic;
+struct LargeData;
+struct Pulses;
+struct LongPulses;
}
namespace pv {
typedef std::pair<int64_t, bool> EdgePair;
public:
- LogicSnapshot(const sr_datafeed_logic &logic);
+ LogicSnapshot(const sr_datafeed_logic &logic,
+ uint64_t expected_num_samples = 0);
virtual ~LogicSnapshot();
void append_payload(const sr_datafeed_logic &logic);
+ void get_samples(uint8_t *const data,
+ int64_t start_sample, int64_t end_sample) const;
+
private:
- void reallocate_mip_map(MipMapLevel &m);
+ uint64_t unpack_sample(const uint8_t *ptr) const;
+ void pack_sample(uint8_t *ptr, uint64_t value);
+
+ void reallocate_mipmap_level(MipMapLevel &m);
void append_payload_to_mipmap();
struct MipMapLevel _mip_map[ScaleStepCount];
uint64_t _last_append_sample;
- friend class LogicSnapshotTest::Pow2;
- friend class LogicSnapshotTest::Basic;
- friend class LogicSnapshotTest::LargeData;
- friend class LogicSnapshotTest::Pulses;
- friend class LogicSnapshotTest::LongPulses;
+ friend struct LogicSnapshotTest::Pow2;
+ friend struct LogicSnapshotTest::Basic;
+ friend struct LogicSnapshotTest::LargeData;
+ friend struct LogicSnapshotTest::Pulses;
+ friend struct LogicSnapshotTest::LongPulses;
};
} // namespace data