Face SDK  1.13.0 Mozart release
Face Recognition Software Development Kit
license.h
1 
4 #ifndef FACE_SDK_LICENSE_H
5 #define FACE_SDK_LICENSE_H
6 
7 #include <face_sdk_base/export.h>
8 #include <face_sdk_base/data_container.h>
9 
10 #include <memory>
11 #include <vector>
12 #include <functional>
13 
14 #define FACE_SDK_REMOTE_LICENSE_DEFAULT "FACE_SDK_REMOTE_LICENSE_DEFAULT"
15 #define FACE_SDK_REMOTE_LICENSE_TOKEN "FACE_SDK_REMOTE_LICENSE_TOKEN"
16 
17 namespace face_sdk
18 {
26  class FACE_SDK_EXPORT license
27  {
28  public:
29  virtual ~license() = default;
30 
33  virtual std::string get_license_info() const = 0;
34  };
35 
39  std::shared_ptr<face_sdk::license> FACE_SDK_EXPORT load_licence_from_file();
40 
46  std::shared_ptr<face_sdk::license> FACE_SDK_EXPORT load_licence_from_file(const std::string &license_file);
47 
52  std::shared_ptr<face_sdk::license> FACE_SDK_EXPORT load_licence_from_data(const std::vector<uint8_t> &data);
53 
59  std::vector<uint8_t> FACE_SDK_EXPORT generate_license_request(std::vector<uint32_t> gpu_ids = std::vector<uint32_t>());
60 
63  class FACE_SDK_EXPORT license_callback
64  {
65  public:
66  virtual ~license_callback() = default;
67 
73  virtual std::vector<uint8_t> on_load() = 0;
74 
79  virtual void on_updated(const std::vector<uint8_t> &license_data) = 0;
80  };
81 
84  class FACE_SDK_EXPORT remote_license : public face_sdk::license
85  {
86  public:
87  ~remote_license() override = default;
88 
93  virtual void force_update() = 0;
94  };
95 
102  std::shared_ptr<face_sdk::remote_license> FACE_SDK_EXPORT make_remote_license(const std::string &token);
103 
111  std::shared_ptr<face_sdk::remote_license> FACE_SDK_EXPORT make_remote_license(const std::string &token,
112  const std::string &filename);
113 
121  std::shared_ptr<face_sdk::remote_license> FACE_SDK_EXPORT make_remote_license(const std::string &token,
122  const std::shared_ptr<face_sdk::license_callback> &callback);
123 
132  std::shared_ptr<face_sdk::remote_license> FACE_SDK_EXPORT make_remote_license(const std::string &token,
133  const std::vector<uint8_t> &request,
134  const std::shared_ptr<face_sdk::license_callback> &callback);
135 
140  std::shared_ptr<face_sdk::license> FACE_SDK_EXPORT make_default_license();
141 
143 }
144 
145 #endif
std::shared_ptr< face_sdk::remote_license > make_remote_license(const std::string &token, const std::vector< uint8_t > &request, const std::shared_ptr< face_sdk::license_callback > &callback)
Makes remote license with specified token, request and callback.
std::shared_ptr< face_sdk::license > make_default_license()
Make license depending on environment variables (FACE_SDK_REMOTE_LICENSE_DEFAULT and FACE_SDK_REMOTE_...
Definition: alignment_info.h:8
std::shared_ptr< face_sdk::license > load_licence_from_data(const std::vector< uint8_t > &data)
Load license from memory.
The license object. A license object provides information about your limits in face_sdk. See Licensing.
Definition: license.h:26
Callback interface for remote license.
Definition: license.h:63
std::vector< uint8_t > generate_license_request(std::vector< uint32_t > gpu_ids=std::vector< uint32_t >())
Api function to generate license request. Usually you can use face_sdk_utils for this purpose...
Remote license. Fetches license from server or from local cache.
Definition: license.h:84
std::shared_ptr< face_sdk::license > load_licence_from_file(const std::string &license_file)
Load license from specified file.