DQCsim
|
Class wrapper for handles that support the arb
interface.
More...
Public Member Functions | |
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 wrapper for handles that support the arb
interface.
You normally wouldn't instantiate this directly (see ArbData
).
|
inlinenoexcept |
|
inline |
|
inline |
Sets the arbitrary JSON data to the given serialized JSON string.
get_arb_json_string()
you may get a different string representation for the same JSON object.json | A string representation of a JSON dictionary object. |
std::runtime_error | When the string representation is invalid, or when the current handle is invalid. |
|
inline |
Returns the current arbitrary JSON data as a serialized CBOR string.
std::runtime_error | When the current handle is invalid. |
|
inline |
|
inline |
Returns the current arbitrary JSON data as a JSON object from nlohmann::json
.
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.
ArbData
. Therefore, modifying the returned JSON object does not modify the original ArbData
. To modify, you need to pass the modified JSON object to set_arb_json()
.std::runtime_error | When the current handle is invalid. |
|
inline |
Sets the arbitrary JSON data to the given JSON object from nlohmann::json
.
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. |
std::runtime_error | When the current handle is invalid. |
|
inline |
Returns the arbitrary argument at the given index as a (binary) string.
Negative indices are relative to the back of the list, as in Python.
index | The index of the argument to retrieve. |
std::runtime_error | When the current handle is invalid or the argument index is out of range. |
|
inline |
Returns the arbitrary argument at the given index as the given type.
Negative indices are relative to the back of the list, as in Python.
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.index | The index of the argument to retrieve. |
std::runtime_error | When the current handle is invalid, the argument index is out of range, or the size of the requested object type differs from the size of the stored argument. |
|
inline |
|
inline |
Sets the arbitrary argument at the given index to a (binary) string.
Negative indices are relative to the back of the list, as in Python.
index | The index of the argument to set. |
data | The new argument data, represented as a (binary) string. |
std::runtime_error | When the current handle is invalid or the index is out of range. |
|
inline |
Sets the arbitrary argument at the given index to a value of type T
.
Negative indices are relative to the back of the list, as in Python.
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.index | The index of the argument to set. |
data | The C object representation of the argument data to set. |
std::runtime_error | When the current handle is invalid or the index is out of range. |
|
inline |
|
inline |
Pushes a value of type T
to the back of the arbitrary argument list.
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. |
std::runtime_error | When the current handle is invalid. |
|
inline |
|
inline |
Pops from the back of the arbitrary argument list as a value of type T
.
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.std::runtime_error | When the current handle is invalid, the argument list is empty, or there is a size mismatch. |
|
inline |
Inserts an arbitrary argument at the given index using a (binary) string.
Negative indices are relative to the back of the list, as in Python.
index | The index of the argument to insert at. |
data | The new argument data, represented as a (binary) string. |
std::runtime_error | When the current handle is invalid or the index is out of range. |
|
inline |
Inserts an arbitrary argument at the given index using a value of type T
.
Negative indices are relative to the back of the list, as in Python.
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.index | The index of the argument to insert at. |
data | The C object representation of the argument data to set. |
std::runtime_error | When the current handle is invalid or the index is out of range. |
|
inline |
Removes the arbitrary argument at the given index.
Negative indices are relative to the back of the list, as in Python.
index | The index of the argument to remove. |
std::runtime_error | When the current handle is invalid or the index is out of range. |
|
inline |
|
inline |
|
inline |