Nanosecond times in Python (#522)

* initital implementation

* datetime replaces with sls::Duration in Python C bindings

* using custom type caster

* fix for conversion to seconds

* added set_count in python

* common header for pybind11 includes

authored-by: Erik Frojdh <erik.frojdh@psi.ch>
This commit is contained in:
Erik Fröjdh
2022-08-26 11:48:40 +02:00
committed by GitHub
parent 3970ed2560
commit 045a28b5de
21 changed files with 2081 additions and 1800 deletions

View File

@ -0,0 +1,26 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#pragma once
#include <cstdint>
namespace sls{
/*
Wrapper for nanoseconds stored in uint64_t, used for conversion between
std::chrono::nanoseconds and python (float or sls::DurationWrapper)
*/
class DurationWrapper{
uint64_t ns_tick{0};
public:
DurationWrapper() = default;
explicit DurationWrapper(double seconds);
~DurationWrapper() = default;
bool operator==(const DurationWrapper& other) const;
uint64_t count() const;
void set_count(uint64_t count);
double total_seconds() const;
};
}