10Duke Scale C++ Client
Loading...
Searching...
No Matches
SimpleLeases.h
1#ifndef TENDUKE_SE_LICENSING_SIMPLELEASES_H
2#define TENDUKE_SE_LICENSING_SIMPLELEASES_H
3
4#include "../api/MutableLeases.h"
5#include "time/Clock.h"
6
7#include <map>
8#include <memory>
9#include <mutex>
10
11namespace tenduke { namespace se { namespace licensing {
12
17{
18public:
19 // `tenduke::se::licensing::Leases` interface
20public:
21 std::vector<::tenduke::se::licensing::Lease> getAllLeases() override;
22 ::tenduke::se::licensing::Lease getLease(const std::string &leaseId) override;
23 std::vector<::tenduke::se::licensing::Lease> getLeasesForProduct(const std::string &productName) override;
24
25 // `tenduke::se::licensing::MutableLeases` interface
26public:
27 void addLease(const ::tenduke::se::licensing::Lease &lease) override;
28 void mergeLeases(const std::vector<::tenduke::se::licensing::Lease> &leases) override;
29 void removeAll() override;
30 void removeLease(const ::tenduke::se::licensing::Lease &lease) override;
31 void removeLease(const std::string &leaseId) override;
32
33protected:
35 std::map<std::string, ::tenduke::se::licensing::Lease> leases;
37 std::recursive_mutex concurrencyLock;
38};
39
40}}}
41
42#endif //TENDUKE_SE_LICENSING_SIMPLELEASES_H
Lease of a license.
Definition Lease.h:17
Service, which extends the readonly cache tenduke::se::licensing::Leases with maintenance operations.
Definition MutableLeases.h:15
Base implementation of tenduke::se::licensing::MutableLeases.
Definition SimpleLeases.h:17
std::vector<::tenduke::se::licensing::Lease > getLeasesForProduct(const std::string &productName) override
Returns all leases for given product.
Definition SimpleLeases.cpp:32
void removeLease(const ::tenduke::se::licensing::Lease &lease) override
Removes given lease from the cache.
Definition SimpleLeases.cpp:63
::tenduke::se::licensing::Lease getLease(const std::string &leaseId) override
Returns a lease by id.
Definition SimpleLeases.cpp:25
std::vector<::tenduke::se::licensing::Lease > getAllLeases() override
Returns all leases in the cache.
Definition SimpleLeases.cpp:13
void removeAll() override
Removes all leases from the cache.
Definition SimpleLeases.cpp:77
std::recursive_mutex concurrencyLock
Serializes the access to the methods.
Definition SimpleLeases.h:37
void addLease(const ::tenduke::se::licensing::Lease &lease) override
Adds a lease to the cache.
Definition SimpleLeases.cpp:45
std::map< std::string, ::tenduke::se::licensing::Lease > leases
The leases.
Definition SimpleLeases.h:35
void mergeLeases(const std::vector<::tenduke::se::licensing::Lease > &leases) override
Merges given leases to the cache.
Definition SimpleLeases.cpp:53
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7