BaseCmd#

Fully qualified name: cupva::BaseCmd

Defined in src/host/cpp_api/include/cupva_host.hpp

class BaseCmd : public cupva::StaticStorage<impl::BaseCmd, priv::CUPVA_BASE_CMD_SIZE, priv::CUPVA_BASE_CMD_ALIGN>#

BaseCmd is the abstraction of the command passed to hardware.

Multiple classes are inherited from the BaseCmd class: CmdProgram, CmdRequestFences, CmdWaitOnFences, Barrier. Although BaseCmd destructor is not virtual, it is safe to call the destructor using pointers to BaseCmd base class. The internal implementation will automatically call destructor of the implementation matching the initially constructed command object.

Subclassed by cupva::CmdBarrier, cupva::CmdL2Ops, cupva::CmdMemcpy, cupva::CmdPFSD, cupva::CmdProgram, cupva::CmdRequestFences, cupva::CmdWaitOnFences

Public Functions

BaseCmd() noexcept#

Construct empty BaseCmd instance.

Usage considerations

  • Allowed context for the API call

    • Thread-safe: No

  • API group

    • Init: No

    • Runtime: Yes

    • De-Init: No

inline BaseCmd(BaseCmd &&obj) noexcept#

Move constructor.

Usage considerations

  • Allowed context for the API call

    • Thread-safe: No

  • API group

    • Init: No

    • Runtime: Yes

    • De-Init: No

~BaseCmd() noexcept#

Destroy BaseCmd object.

Usage considerations

  • Allowed context for the API call

    • Thread-safe: No

  • API group

    • Init: No

    • Runtime: No

    • De-Init: Yes

void finalize()#

Destroy the resources created by a BaseCmd object.

This method is exposed to allow fine-grained control over error handling.

During destruction of the object, this method will be called but the destructor must not propagate exceptions. To handle exceptions, manually invoke this method prior to object destruction.

Usage considerations

  • Allowed context for the API call

    • Thread-safe: No

  • API group

    • Init: No

    • Runtime: No

    • De-Init: Yes

Throws:
  • cupva::Exception(DriverAPIError) – if driver returns error during de-initialization of mapped/pinned memory

  • cupva::Exception(NotAllowedInOperationalState) – if called when NVIDIA DRIVE OS VM state is “Operational”

inline BaseCmd &operator=(BaseCmd &&obj) & noexcept#

Move assignment.

Usage considerations

  • Allowed context for the API call

    • Thread-safe: No

  • API group

    • Init: No

    • Runtime: Yes

    • De-Init: No