1#ifndef TENDUKE_SE_LICENSING_CHEKOUTISH_H
2#define TENDUKE_SE_LICENSING_CHEKOUTISH_H
4#include "./LicenseCheckoutArguments.h"
5#include "./LicenseCheckoutParameters.h"
6#include "../../License.h"
12namespace tenduke {
namespace se {
namespace licensing {
18template <
typename Builder>
30 , qtyDimension(::
tenduke::se::licensing::
License::QuantityDimension::NONE)
40 Builder &
seats(
const std::string &pProductName, std::int64_t numSeats)
42 startArgument(::tenduke::se::licensing::License::SEATS, pProductName, numSeats);
43 return static_cast<Builder&
>(*this);
51 Builder &
seat(
const std::string &pProductName)
53 return seats(pProductName, 1);
62 Builder &
count(
const std::string &pProductName, std::int64_t useCount)
64 startArgument(::tenduke::se::licensing::License::USE_COUNT, pProductName, useCount);
65 return static_cast<Builder&
>(*this);
73 Builder &
count(
const std::string &pProductName)
75 return count(pProductName, 1);
84 Builder &
time(
const std::string &pProductName, std::int64_t useTime)
86 startArgument(::tenduke::se::licensing::License::USE_TIME, pProductName, useTime);
87 return static_cast<Builder&
>(*this);
99 Builder &
version(
const std::string &pClientVersion)
102 this->clientVersion = pClientVersion;
105 defaultVersion = pClientVersion;
107 return static_cast<Builder&
>(*this);
119 this->
id = pLicenseId;
120 return static_cast<Builder&
>(*this);
148 const std::string &pProductName,
152 this->buildingItem =
true;
153 this->qtyDimension = pQtyDimension;
154 this->productName = pProductName;
158 this->clientVersion = defaultVersion;
166 std::vector<::tenduke::se::licensing::LicenseCheckoutArguments>
arguments;
170 std::string defaultVersion;
173 std::string clientVersion;
175 std::string productName;
Base class for fluent building of license checkout parameters.
Definition FluentConsumptionBuilder.h:20
Builder & seats(const std::string &pProductName, std::int64_t numSeats)
Start building a license-consumption for seats.
Definition FluentConsumptionBuilder.h:40
FluentConsumptionBuilder(std::string licenseKey)
Constructs new instance.
Definition FluentConsumptionBuilder.h:26
Builder & count(const std::string &pProductName, std::int64_t useCount)
Start building a license consumption for use count.
Definition FluentConsumptionBuilder.h:62
void buildArgument()
Builds one argument.
Definition FluentConsumptionBuilder.h:127
Builder & time(const std::string &pProductName, std::int64_t useTime)
Starts building a license consumption of use time.
Definition FluentConsumptionBuilder.h:84
Builder & seat(const std::string &pProductName)
Start building a license-consumption for one seat.
Definition FluentConsumptionBuilder.h:51
const std::string licenseKey
License key to use in checkout.
Definition FluentConsumptionBuilder.h:163
Builder & licenseId(const std::string &pLicenseId)
Sets the license id to consume.
Definition FluentConsumptionBuilder.h:117
Builder & version(const std::string &pClientVersion)
Set the client version.
Definition FluentConsumptionBuilder.h:99
std::vector<::tenduke::se::licensing::LicenseCheckoutArguments > arguments
Arguments.
Definition FluentConsumptionBuilder.h:166
Builder & count(const std::string &pProductName)
Starts building a license consumption for one use count.
Definition FluentConsumptionBuilder.h:73
void startArgument(::tenduke::se::licensing::License::QuantityDimension pQtyDimension, const std::string &pProductName, std::int64_t pQty)
Starts building new argument.
Definition FluentConsumptionBuilder.h:146
10Duke Scale license.
Definition License.h:27
QuantityDimension
Quantity dimensions.
Definition License.h:33
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7