LicenseSpring C++ SDK
Easily add Software Licensing to your application
InstallationFile.h
Go to the documentation of this file.
1 #ifndef LS_INSTALLATION_FILE_H
2 #define LS_INSTALLATION_FILE_H
3 
4 #ifdef _MSC_VER
5 #pragma once
6 #pragma warning(push)
7 #pragma warning(disable : 4251)
8 #endif
9 
10 #include <string>
11 #include <memory>
12 #include "APIDef.h"
13 
14 namespace LicenseSpring
15 {
19 {
22  InstallFileFilter() = default;
23 
27  InstallFileFilter(const char *channel, const char *env = nullptr)
28  {
29  if (channel != nullptr)
30  Channel = channel;
31  if (env != nullptr)
32  Environment = env;
33  }
34 
38  InstallFileFilter(const std::string &channel, const std::string &env = std::string())
39  : Channel(channel), Environment(env)
40  {
41  }
42 
45  std::string Channel;
46 
49  std::string Environment;
50 };
51 
57 {
58 public:
59  using ptr_t = std::shared_ptr<InstallationFile>;
60 
62  InstallationFile() : m_size(0) {}
63 
75  InstallationFile(const std::string &url, const std::string &version,
76  const std::string &requiredVersion, const std::string &md5hash,
77  const std::string &releaseDate, const std::string &environment, const std::string &eulaLink,
78  const std::string &releaseNotesLink, const std::string &channel, uint64_t size)
79  : m_url(url), m_version(version), m_requiredVersion(requiredVersion), m_md5hash(md5hash),
80  m_releaseDate(releaseDate), m_environment(environment), m_eulaLink(eulaLink),
81  m_releaseNotesLink(releaseNotesLink), m_channel(channel), m_size(size) {};
82 
85  const std::string &url() const { return m_url; }
86 
89  const std::string &version() const { return m_version; }
90 
94  const std::string &requiredVersion() const { return m_requiredVersion; }
95 
98  const std::string &md5Hash() const { return m_md5hash; }
99 
102  const std::string &releaseDate() const { return m_releaseDate; }
103 
106  const std::string &environment() const { return m_environment; }
107 
110  const std::string &eulaLink() const { return m_eulaLink; }
111 
114  const std::string &releaseNotesLink() const { return m_releaseNotesLink; }
115 
118  const std::string &channel() const { return m_channel; }
119 
122  uint64_t size() const { return m_size; }
123 
124 private:
125  std::string m_url;
126  std::string m_version;
127  std::string m_requiredVersion;
128  std::string m_md5hash;
129  std::string m_releaseDate;
130  std::string m_environment;
131  std::string m_eulaLink;
132  std::string m_releaseNotesLink;
133  std::string m_channel;
134  uint64_t m_size;
135 };
136 } // namespace LicenseSpring
137 
138 #ifdef _MSC_VER
139 #pragma warning(pop)
140 #endif
141 
142 #endif // LS_INSTALLATION_FILE_H
LicenseSpring::InstallFileFilter::Environment
std::string Environment
Environment for which installation file should be requested.
Definition: InstallationFile.h:49
LicenseSpring::InstallFileFilter
Helper struct for filtering installation files by environment and channel.
Definition: InstallationFile.h:18
LicenseSpring::InstallationFile::md5Hash
const std::string & md5Hash() const
Getter method for setup file MD5 hash.
Definition: InstallationFile.h:98
LicenseSpring::InstallationFile::InstallationFile
InstallationFile()
Default constructor, creates empty installation file.
Definition: InstallationFile.h:62
LicenseSpring::InstallationFile::version
const std::string & version() const
Getter method for setup file version.
Definition: InstallationFile.h:89
LicenseSpring
Definition: BaseManager.h:16
LicenseSpring::InstallationFile::channel
const std::string & channel() const
Getter method for setup file channel.
Definition: InstallationFile.h:118
LicenseSpring::InstallationFile::releaseDate
const std::string & releaseDate() const
Getter method for setup file release date.
Definition: InstallationFile.h:102
LicenseSpring::InstallationFile
Class that represents information on product installation file.
Definition: InstallationFile.h:56
APIDef.h
LicenseSpring::InstallationFile::requiredVersion
const std::string & requiredVersion() const
Getter method for setup file required version.
Definition: InstallationFile.h:94
LicenseSpring::InstallFileFilter::InstallFileFilter
InstallFileFilter(const char *channel, const char *env=nullptr)
Constructs filter with given channel and environment from c-strings.
Definition: InstallationFile.h:27
LS_API
#define LS_API
Definition: APIDef.h:23
LicenseSpring::InstallationFile::environment
const std::string & environment() const
Getter method for setup file environment.
Definition: InstallationFile.h:106
LicenseSpring::InstallFileFilter::InstallFileFilter
InstallFileFilter(const std::string &channel, const std::string &env=std::string())
Constructs filter with given channel and environment.
Definition: InstallationFile.h:38
LicenseSpring::InstallationFile::eulaLink
const std::string & eulaLink() const
Getter method for setup file End-User License Agreement link.
Definition: InstallationFile.h:110
LicenseSpring::InstallationFile::releaseNotesLink
const std::string & releaseNotesLink() const
Getter method for setup file release notes link.
Definition: InstallationFile.h:114
LicenseSpring::InstallFileFilter::Channel
std::string Channel
Channel from where installation file should be requested.
Definition: InstallationFile.h:45
LicenseSpring::InstallationFile::ptr_t
std::shared_ptr< InstallationFile > ptr_t
Definition: InstallationFile.h:59
LicenseSpring::InstallationFile::InstallationFile
InstallationFile(const std::string &url, const std::string &version, const std::string &requiredVersion, const std::string &md5hash, const std::string &releaseDate, const std::string &environment, const std::string &eulaLink, const std::string &releaseNotesLink, const std::string &channel, uint64_t size)
Constructs InstallationFile with given data.
Definition: InstallationFile.h:75
LicenseSpring::InstallationFile::size
uint64_t size() const
Getter method for setup file size.
Definition: InstallationFile.h:122
LicenseSpring::InstallationFile::url
const std::string & url() const
Getter method for setup file URL.
Definition: InstallationFile.h:85