10Duke Scale C++ Client
Loading...
Searching...
No Matches
ScaleLicensingApiImpl.h
1#ifndef TENDUKE_SE_LICENSING_REST_SCALELICENSINGAPIIMPL_H
2#define TENDUKE_SE_LICENSING_REST_SCALELICENSINGAPIIMPL_H
3
4#include "./ScaleLicensingApi.h"
5#include "../../api/licenses/JWTToLease.h"
6#include "../../../config/BackendConfiguration.h"
7#include "../../../config/ClientProperties.h"
8#include "http/HTTPClient.h"
9#include "http/HTTPRequestAuthenticator.h"
10#include "http/HTTPResponseToException.h"
11#include "json/JSONParser.h"
12#include "jwt/JWTParser.h"
13
14namespace tenduke { namespace se { namespace licensing { namespace rest {
15
20{
21public:
33 ScaleLicensingApiImpl(const std::shared_ptr<::tenduke::se::ClientProperties> &clientProperties,
34 const std::shared_ptr<::tenduke::se::BackendConfiguration> &configuration,
35 const std::shared_ptr<const ::tenduke::http::HTTPClient> &httpClient,
36 const std::shared_ptr<const ::tenduke::http::HTTPRequestAuthenticator> &httpRequestAuthenticator,
37 const std::shared_ptr<const ::tenduke::http::HTTPResponseToException> &throwException,
38 const std::shared_ptr<const ::tenduke::json::JSONParser> &jsonParser,
39 const std::shared_ptr<const ::tenduke::jwt::JWTParser> &jwtParser,
40 const std::shared_ptr<const ::tenduke::se::licensing::JWTToLease> &jwtToLease
41 );
42 // `tenduke::se::licensing::rest::ScaleLicensingApi` interface
43public:
44 std::unique_ptr<::tenduke::se::licensing::rest::LicenseCheckoutRequest> checkoutLicenses(const ::tenduke::se::licensing::LicenseCheckoutParameters &parameters) const override;
45 std::unique_ptr<::tenduke::se::licensing::rest::LicenseCheckoutRequest> checkoutLicensesWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::LicenseCheckoutParameters &parameters) const override;
46
47 std::unique_ptr<::tenduke::se::licensing::rest::DescribeLicenseKeyRequest> describeLicenseKey(const std::string &licenseKey, const ::tenduke::se::Paging &paging, bool withMetadata) const override;
48
49 std::unique_ptr<::tenduke::se::licensing::rest::EndMeteredUseRequest> endMeteredLicenseUse(const ::tenduke::se::licensing::EndMeteredUseParameters &parameters) const override;
50 std::unique_ptr<::tenduke::se::licensing::rest::EndMeteredUseRequest> endMeteredLicenseUseByKey(const std::string &licenseKey, const ::tenduke::se::licensing::EndMeteredUseParameters &parameters) const override;
51
52 std::unique_ptr<::tenduke::se::licensing::rest::LicenseHeartbeatRequest> heartbeatLicenses(const ::tenduke::se::licensing::LicenseHeartbeatParameters &parameters) const override;
53 std::unique_ptr<::tenduke::se::licensing::rest::LicenseHeartbeatRequest> heartbeatLicensesWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::LicenseHeartbeatParameters &parameters) const override;
54 std::unique_ptr<::tenduke::se::licensing::rest::HeartbeatMeteredUseRequest> heartbeatMeteredLicenseUse(const ::tenduke::se::licensing::HeartbeatMeteredUseParameters &parameters) const override;
55 std::unique_ptr<::tenduke::se::licensing::rest::HeartbeatMeteredUseRequest> heartbeatMeteredLicenseUseByKey(const std::string &licenseKey, const ::tenduke::se::licensing::HeartbeatMeteredUseParameters &parameters) const override;
56
57 std::unique_ptr<::tenduke::se::licensing::rest::LicenseReleaseRequest> releaseLicenses(const ::tenduke::se::licensing::LicenseReleaseParameters &parameters) const override;
58 std::unique_ptr<::tenduke::se::licensing::rest::LicenseReleaseRequest> releaseLicensesWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::LicenseReleaseParameters &parameters) const override;
59
60 std::unique_ptr<::tenduke::se::licensing::rest::StartMeteredUseRequest> startMeteredLicenseUse(const ::tenduke::se::licensing::StartMeteredUseParameters &parameters) const override;
61 std::unique_ptr<::tenduke::se::licensing::rest::StartMeteredUseRequest> startMeteredLicenseUseWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::StartMeteredUseParameters &parameters) const override;
62
63protected:
71 virtual std::unique_ptr<::tenduke::se::licensing::rest::LicenseCheckoutRequest> checkout(
72 const ::tenduke::se::licensing::LicenseCheckoutParameters &parameters,
73 const std::string &licenseKey,
74 bool metered
75 ) const;
76
84 virtual std::unique_ptr<::tenduke::se::licensing::rest::LicenseHeartbeatRequest> heartbeat(
85 const ::tenduke::se::licensing::LicenseHeartbeatParameters &parameters,
86 const std::string &licenseKey,
87 bool metered
88 ) const;
89
97 virtual std::unique_ptr<tenduke::se::licensing::rest::LicenseReleaseRequest> release(
98 const ::tenduke::se::licensing::LicenseReleaseParameters &parameters,
99 const std::string &licenseKey,
100 bool metered
101 ) const;
102
103private:
104 const std::shared_ptr<::tenduke::se::ClientProperties> clientProperties;
105 const std::shared_ptr<::tenduke::se::BackendConfiguration> configuration;
106
107 // services required
108 const std::shared_ptr<const ::tenduke::se::licensing::JWTToLease> jwtToLease;
109 const std::shared_ptr<const ::tenduke::http::HTTPClient> httpClient;
110 const std::shared_ptr<const ::tenduke::http::HTTPRequestAuthenticator> httpRequestAuthenticator;
111 const std::shared_ptr<const ::tenduke::http::HTTPResponseToException> throwException;
112 const std::shared_ptr<const ::tenduke::json::JSONParser> jsonParser;
113 const std::shared_ptr<const ::tenduke::jwt::JWTParser> jwtParser;
114};
115
116}}}}
117
118#endif //TENDUKE_SE_LICENSING_REST_SCALELICENSINGAPIIMPL_H
Default implementation of tenduke::se::licensing::rest::ScaleLicensingApi.
Definition ScaleLicensingApiImpl.h:20
std::unique_ptr<::tenduke::se::licensing::rest::LicenseHeartbeatRequest > heartbeatLicenses(const ::tenduke::se::licensing::LicenseHeartbeatParameters &parameters) const override
Does license heartbeat.
Definition ScaleLicensingApiImpl.cpp:162
std::unique_ptr<::tenduke::se::licensing::rest::HeartbeatMeteredUseRequest > heartbeatMeteredLicenseUse(const ::tenduke::se::licensing::HeartbeatMeteredUseParameters &parameters) const override
Does license heartbeat for metered license use.
Definition ScaleLicensingApiImpl.cpp:185
std::unique_ptr<::tenduke::se::licensing::rest::LicenseCheckoutRequest > checkoutLicenses(const ::tenduke::se::licensing::LicenseCheckoutParameters &parameters) const override
Checkout license(s).
Definition ScaleLicensingApiImpl.cpp:90
std::unique_ptr<::tenduke::se::licensing::rest::EndMeteredUseRequest > endMeteredLicenseUseByKey(const std::string &licenseKey, const ::tenduke::se::licensing::EndMeteredUseParameters &parameters) const override
Ends metered license use with license key.
Definition ScaleLicensingApiImpl.cpp:148
virtual std::unique_ptr<::tenduke::se::licensing::rest::LicenseHeartbeatRequest > heartbeat(const ::tenduke::se::licensing::LicenseHeartbeatParameters &parameters, const std::string &licenseKey, bool metered) const
Helper to create heartbeat request.
Definition ScaleLicensingApiImpl.cpp:50
std::unique_ptr<::tenduke::se::licensing::rest::LicenseHeartbeatRequest > heartbeatLicensesWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::LicenseHeartbeatParameters &parameters) const override
Does license heartbeat with license key.
Definition ScaleLicensingApiImpl.cpp:173
std::unique_ptr<::tenduke::se::licensing::rest::LicenseReleaseRequest > releaseLicenses(const ::tenduke::se::licensing::LicenseReleaseParameters &parameters) const override
Releases licenses.
Definition ScaleLicensingApiImpl.cpp:208
std::unique_ptr<::tenduke::se::licensing::rest::HeartbeatMeteredUseRequest > heartbeatMeteredLicenseUseByKey(const std::string &licenseKey, const ::tenduke::se::licensing::HeartbeatMeteredUseParameters &parameters) const override
Does license heartbeat with license key for metered license use.
Definition ScaleLicensingApiImpl.cpp:196
std::unique_ptr<::tenduke::se::licensing::rest::LicenseCheckoutRequest > checkoutLicensesWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::LicenseCheckoutParameters &parameters) const override
Checkout license(s) with license key.
Definition ScaleLicensingApiImpl.cpp:101
std::unique_ptr<::tenduke::se::licensing::rest::EndMeteredUseRequest > endMeteredLicenseUse(const ::tenduke::se::licensing::EndMeteredUseParameters &parameters) const override
Ends metered license use.
Definition ScaleLicensingApiImpl.cpp:136
std::unique_ptr<::tenduke::se::licensing::rest::StartMeteredUseRequest > startMeteredLicenseUseWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::StartMeteredUseParameters &parameters) const override
Starts metered license use with license key.
Definition ScaleLicensingApiImpl.cpp:242
std::unique_ptr<::tenduke::se::licensing::rest::LicenseReleaseRequest > releaseLicensesWithKey(const std::string &licenseKey, const ::tenduke::se::licensing::LicenseReleaseParameters &parameters) const override
Releases licenses with license key.
Definition ScaleLicensingApiImpl.cpp:219
std::unique_ptr<::tenduke::se::licensing::rest::StartMeteredUseRequest > startMeteredLicenseUse(const ::tenduke::se::licensing::StartMeteredUseParameters &parameters) const override
Starts metere license use.
Definition ScaleLicensingApiImpl.cpp:231
virtual std::unique_ptr<::tenduke::se::licensing::rest::LicenseCheckoutRequest > checkout(const ::tenduke::se::licensing::LicenseCheckoutParameters &parameters, const std::string &licenseKey, bool metered) const
Helper to create checkout request.
Definition ScaleLicensingApiImpl.cpp:29
std::unique_ptr<::tenduke::se::licensing::rest::DescribeLicenseKeyRequest > describeLicenseKey(const std::string &licenseKey, const ::tenduke::se::Paging &paging, bool withMetadata) const override
Describe license key.
Definition ScaleLicensingApiImpl.cpp:115
virtual std::unique_ptr< tenduke::se::licensing::rest::LicenseReleaseRequest > release(const ::tenduke::se::licensing::LicenseReleaseParameters &parameters, const std::string &licenseKey, bool metered) const
Helper to create release request.
Definition ScaleLicensingApiImpl.cpp:71
Low-level licensing client interface.
Definition ScaleLicensingApi.h:48
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7