DQCsim
|
Class representation of the measurement result for a single qubit. More...
Public Member Functions | |
Measurement (HandleIndex handle) noexcept | |
Wraps the given measurement handle. More... | |
Measurement (const QubitRef &qubit, MeasurementValue value) | |
Constructs a measurement object. More... | |
Measurement (const Measurement &src) | |
Copy-constructs a Measurement object. More... | |
void | operator= (const Measurement &src) |
Copy assignment operator for Measurement objects. More... | |
Measurement (Measurement &&handle)=default | |
Default move constructor. | |
Measurement & | operator= (Measurement &&)=default |
Default move assignment. | |
MeasurementValue | get_value () const |
Returns the measurement value. More... | |
void | set_value (MeasurementValue value) |
Sets the measurement value. More... | |
QubitRef | get_qubit () const |
Returns the qubit reference associated with this measurement. More... | |
void | set_qubit (QubitRef qubit) |
Sets the qubit reference associated with this measurement. More... | |
Measurement & | with_json_string (const std::string &json) |
Sets the arbitrary JSON data to the given serialized JSON string (builder pattern). More... | |
Measurement & | with_cbor_string (const std::string &cbor) |
Sets the arbitrary JSON data to the given serialized CBOR string (builder pattern). More... | |
template<class JSON > | |
Measurement & | with_json (const JSON &json) |
Sets the arbitrary JSON data to the given JSON object from nlohmann::json (builder pattern). More... | |
Measurement & | with_arg_string (const std::string &data) |
Pushes a (binary) string to the back of the arbitrary argument list (builder pattern). More... | |
template<typename T > | |
Measurement & | with_arg (const T &data) |
Pushes a value of type T to the back of the arbitrary argument list (builder pattern). More... | |
Public Member Functions inherited from dqcsim::wrap::Arb | |
Arb (HandleIndex handle) noexcept | |
Wraps the given arb handle. More... | |
std::string | get_arb_json_string () const |
Returns the current arbitrary JSON data as a serialized JSON string. More... | |
void | set_arb_json_string (const std::string &json) |
Sets the arbitrary JSON data to the given serialized JSON string. More... | |
std::string | get_arb_cbor_string () const |
Returns the current arbitrary JSON data as a serialized CBOR string. More... | |
void | set_arb_cbor_string (const std::string &cbor) |
Sets the arbitrary JSON data to the given serialized CBOR string. More... | |
template<class JSON > | |
JSON | get_arb_json () const |
Returns the current arbitrary JSON data as a JSON object from nlohmann::json . More... | |
template<class JSON > | |
void | set_arb_json (const JSON &json) |
Sets the arbitrary JSON data to the given JSON object from nlohmann::json . More... | |
std::string | get_arb_arg_string (ssize_t index) const |
Returns the arbitrary argument at the given index as a (binary) string. More... | |
template<typename T > | |
T | get_arb_arg_as (ssize_t index) const |
Returns the arbitrary argument at the given index as the given type. More... | |
template<typename T > | |
void | set_arb_arg_strings (const T &strings) |
Sets the arbitrary argument list to the given iterable of std::string s. More... | |
void | set_arb_arg_string (ssize_t index, const std::string &data) |
Sets the arbitrary argument at the given index to a (binary) string. More... | |
template<typename T > | |
void | set_arb_arg (ssize_t index, const T &data) |
Sets the arbitrary argument at the given index to a value of type T . More... | |
void | push_arb_arg_string (const std::string &data) |
Pushes a (binary) string to the back of the arbitrary argument list. More... | |
template<typename T > | |
void | push_arb_arg (const T &data) |
Pushes a value of type T to the back of the arbitrary argument list. More... | |
std::string | pop_arb_arg_string () |
Pops from the back of the arbitrary argument list as a (binary) string. More... | |
template<typename T > | |
T | pop_arb_arg_as () const |
Pops from the back of the arbitrary argument list as a value of type T . More... | |
void | insert_arb_arg_string (ssize_t index, const std::string &data) |
Inserts an arbitrary argument at the given index using a (binary) string. More... | |
template<typename T > | |
void | insert_arb_arg (ssize_t index, const T &data) |
Inserts an arbitrary argument at the given index using a value of type T . More... | |
void | remove_arb_arg (ssize_t index) |
Removes the arbitrary argument at the given index. More... | |
size_t | get_arb_arg_count () const |
Returns the number of arbitrary arguments. More... | |
void | clear_arb_args () |
Clears the arbitrary argument list. More... | |
void | set_arb (const Arb &src) |
Assigns all arb data from the given arb to this one. More... | |
Public Member Functions inherited from dqcsim::wrap::Handle | |
Handle () noexcept | |
Constructs an empty wrapper. More... | |
Handle (HandleIndex handle) noexcept | |
Wraps the given raw handle. More... | |
virtual | ~Handle () noexcept |
Delete the handle and its wrapper. | |
void | free () |
Explicitly delete the handle, allowing errors to be caught. More... | |
bool | is_valid () const noexcept |
Returns whether this wrapper (still) contains a valid handle. More... | |
HandleIndex | get_handle () const noexcept |
Returns the raw handle without relinquishing ownership. More... | |
HandleIndex | take_handle () noexcept |
Returns the raw handle and relinquishes ownership. More... | |
Handle (const Handle &)=delete | |
void | operator= (const Handle &)=delete |
Handle (Handle &&src) | |
Move constructor; simply moves ownership of the handle from the source object to the constructed object. More... | |
Handle & | operator= (Handle &&src) |
Move constructor; simply moves ownership of the handle from the source object to the assignment target. More... | |
std::string | dump () const |
Returns a string containing a debug dump of the handle. More... | |
HandleType | type () const |
Returns the type of this handle. More... | |
Additional Inherited Members | |
Protected Attributes inherited from dqcsim::wrap::Handle | |
HandleIndex | handle |
The wrapped handle. | |
Class representation of the measurement result for a single qubit.
Measurement objects carry the following information:
You can construct the arbitrary data part of a measurement object with the builder pattern, for instance:
|
inlinenoexcept |
|
inline |
|
inline |
Copy-constructs a Measurement
object.
src | The measurement object to copy from. |
std::runtime_error | When the source handle is invalid or construction of the new handle failed for some reason. |
|
inline |
Copy assignment operator for Measurement
objects.
src | The measurement object to copy from. |
std::runtime_error | When the source handle is invalid or construction of the new handle failed for some reason. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Sets the arbitrary JSON data to the given serialized JSON string (builder pattern).
json | A string representation of a JSON dictionary object to assign. |
&self
, to continue building. std::runtime_error | When the string representation is invalid, or when the current handle is invalid. |
|
inline |
Sets the arbitrary JSON data to the given serialized CBOR string (builder pattern).
cbor | A JSON object represented as a CBOR binary string. |
&self
, to continue building. std::runtime_error | When the CBOR string is invalid, or when the current handle is invalid. |
|
inline |
Sets the arbitrary JSON data to the given JSON object from nlohmann::json
(builder pattern).
Since that is a header-only library that isn't usually installed system-wide and be using a specific version in your project already, you need to specify the nlohmann::json
type as a generic to this function.
json | The C++ JSON object representation of the object to set. |
&self
, to continue building. std::runtime_error | When the current handle is invalid. |
|
inline |
Pushes a (binary) string to the back of the arbitrary argument list (builder pattern).
data | The data for the new argument, represented as a (binary) string. |
&self
, to continue building. std::runtime_error | When the current handle is invalid. |
|
inline |
Pushes a value of type T
to the back of the arbitrary argument list (builder pattern).
T
must be a primitive value (like an int
) or a struct thereof, without pointers or any other "complicated" constructs. DQCsim just copies the bytes over. It is up to you to ensure that that's what you want to happen; unfortunately C++11 does not provide a way to statically ensure that this is the case.data | The data for the new argument, represented as some C object. |
&self
, to continue building. std::runtime_error | When the current handle is invalid. |