| 
    10Duke Enterprise C++ Client
    
   | 
 
#include <StatefulLicensingClient.h>
A tenduke::ee::licensing::LicensingClient, which automatically maintains OIDC-login session.
Before each request, the client checks that the OIDC-login state is valid. If not, the client refreshes the session or re-logins the user. In case the licensing request failed because of invalid credentials (most typically because the local OIDC-login state is out of sync with the backend), the client re-establishes the OIDC-login state and re-executes the licensing request automatically.
This means that the application developer does not need to manually activate login or refresh the session: All this happens automatically.
If you want to be notified of when session events (e.g. when login is starting), register a tenduke::oidc::OIDCSessionEventListener. For details, see function createClientUsingAutodiscovery(const std::string &,const std::string &,const std::string &,const ::tenduke::oidc::osbrowser::BrowserAuthenticationConfig &,const std::string &,const ::tenduke::ServiceConfiguration &). Full example is available in identity_based_client.cpp.
If you don't want automatic user session management, you may want to use tenduke::ee::licensing::authzapi::DefaultAuthzLicensingClient. 
  
| tenduke::ee::licensing::impl::StatefulLicensingClient::StatefulLicensingClient | ( | const std::shared_ptr< const tenduke::ee::licensing::LicensingConfiguration > & | configuration, | 
| const std::shared_ptr< const tenduke::ee::licensing::authzapi::AuthzLicensingClient > & | authzApi, | ||
| const std::shared_ptr< tenduke::oidc::OIDCSession > & | oidcSession ) | 
Constructs new instance.
| configuration | - | 
| authzApi | - | 
| oidcSession | - | 
      
  | 
  overridevirtual | 
Checks out license(s) fluently.
See the tenduke::ee::licensing::FluentLicenseCheckout (and its superclass) for complete set of parameters.
Implements tenduke::ee::licensing::LicensingClient.
      
  | 
  overridevirtual | 
Checks out license(s).
| parameters | the request parameters | 
| tenduke::TendukeException | and subclasses. See class documentation. | 
Implements tenduke::ee::licensing::LicensingClient.
      
  | 
  overridevirtual | 
Releases checked out license(s) fluently.
See the tenduke::ee::licensing::FluentLicenseRelease (and its superclass) for complete set of parameters.
Implements tenduke::ee::licensing::LicensingClient.
      
  | 
  overridevirtual | 
Releases checked out license(s).
| parameters | the request parameters | 
| tenduke::TendukeException | and subclasses. See class documentation. | 
Implements tenduke::ee::licensing::LicensingClient.
      
  | 
  overridevirtual | 
Renews leases fluently.
See tenduke::ee::licensing::LicensingClient::renewLeases(const tenduke::ee::licensing::LicenseRenewParameters &) const for details.
Implements tenduke::ee::licensing::LicensingClient.
      
  | 
  overridevirtual | 
Renews leases.
NOTE: Renewal returns new leases (i.e. leases with new lease ID), these leases replace the original leases.
| parameters | the request parameters | 
| tenduke::TendukeException | and subclasses. See class documentation. | 
Implements tenduke::ee::licensing::LicensingClient.