10Duke Scale C++ Client
Loading...
Searching...
No Matches
ReleaseRequest.h
1#ifndef TENDUKE_SE_LICENSING_RELEASEREQUEST_H
2#define TENDUKE_SE_LICENSING_RELEASEREQUEST_H
3
4#include "./BaseRequest.h"
5
6namespace tenduke { namespace se { namespace licensing {
7
13template<class R>
15{
16
17public:
25 const std::shared_ptr<::tenduke::se::APIRequest<R>> &request,
26 const std::shared_ptr<::tenduke::se::licensing::MutableLeases> &leases,
27 const std::shared_ptr<::tenduke::oidc::OIDCSession> &oidc = nullptr
28 ) : BaseRequest<R>(request, leases, oidc)
29 {}
30
31protected:
32 void maintainLeases(const R &response) override
33 {
35
36 // TODO: How to handle failed items? Remove the lease from the cache? Ignore?
37 for (auto const &result : response.results) {
38 BaseRequest<R>::leases->removeLease(result.releasedLeaseId);
39 }
40 }
41};
42
43}}}
44
45#endif //TENDUKE_SE_LICENSING_RELEASEREQUEST_H
A tenduke::se::APIRequest, which uses tenduke::oidc::OIDCSession to maintain request authorization.
Definition StatefulAPIRequest.h:27
High-level licensing client request.
Definition BaseRequest.h:24
const std::shared_ptr<::tenduke::se::licensing::MutableLeases > leases
The lease cache.
Definition BaseRequest.h:76
virtual void maintainLeases(const R &response)
Performs lease-cache maintenance.
Definition BaseRequest.h:70
High level release-request.
Definition ReleaseRequest.h:15
ReleaseRequest(const std::shared_ptr<::tenduke::se::APIRequest< R > > &request, const std::shared_ptr<::tenduke::se::licensing::MutableLeases > &leases, const std::shared_ptr<::tenduke::oidc::OIDCSession > &oidc=nullptr)
Constructs new instance.
Definition ReleaseRequest.h:24
void maintainLeases(const R &response) override
Performs lease-cache maintenance.
Definition ReleaseRequest.h:32
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7