# NV::Rules::IContext

class IContext : public NV::Rules::IBaseContext

  Context interface.

  The rule context provides the rule with access to all collected data, properties and means to relay results back to the caller.

  Public Functions

  virtual IController *controller() = 0

    Get the controller object.

    Get the IController object

  virtual IFrontend *frontend() = 0

    Get the frontend object.

    Get the IFrontend object

  virtual std::string get_version() = 0

    Get version number of this interface.

    Returns the version number of this interface as a string of the form <year>.<major>.<minor> It matches the Nsight Compute version this interface originates from.

  virtual bool handle_exception(const char *msg) = 0

    Context exception handler.

    Should return true if a python exception should be set, false otherwise

  virtual size_t num_ranges() = 0

    Get the number of available ranges.

    Get the number of available ranges

  virtual IRange *range_by_idx(size_t idx) = 0

    Get a single range by index.

    Get a single IRange by index

  inline virtual ~IContext()