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