|
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::strings. 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. |