* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include "logic.h"
-#include "logicsnapshot.h"
+#include <cassert>
-using namespace boost;
-using namespace std;
+#include "logic.hpp"
+#include "logicsnapshot.hpp"
+
+using std::deque;
+using std::max;
+using std::shared_ptr;
namespace pv {
namespace data {
-Logic::Logic(const sr_datafeed_meta_logic &meta,
- uint64_t samplerate) :
- SignalData(samplerate),
- _num_probes(meta.num_probes)
+Logic::Logic(unsigned int num_channels) :
+ SignalData(),
+ num_channels_(num_channels)
{
+ assert(num_channels_ > 0);
}
-int Logic::get_num_probes() const
+int Logic::get_num_channels() const
{
- return _num_probes;
+ return num_channels_;
}
void Logic::push_snapshot(
shared_ptr<LogicSnapshot> &snapshot)
{
- _snapshots.push_front(snapshot);
+ snapshots_.push_front(snapshot);
}
deque< shared_ptr<LogicSnapshot> >& Logic::get_snapshots()
{
- return _snapshots;
+ return snapshots_;
+}
+
+void Logic::clear()
+{
+ snapshots_.clear();
+}
+
+uint64_t Logic::get_max_sample_count() const
+{
+ uint64_t l = 0;
+ for (std::shared_ptr<LogicSnapshot> s : snapshots_) {
+ assert(s);
+ l = max(l, s->get_sample_count());
+ }
+ return l;
}
} // namespace data