Microsoft Information Protection (MIP) SDK for C++: Reference 1.15
Doxygen-generated documentation for MIP SDK written in C++
Loading...
Searching...
No Matches
protection_common_settings.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (c) Microsoft Corporation.
4 * All rights reserved.
5 *
6 * This code is licensed under the MIT License.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * of this software and associated documentation files(the "Software"), to deal
10 * in the Software without restriction, including without limitation the rights
11 * to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12 * copies of the Software, and to permit persons to whom the Software is
13 * furnished to do so, subject to the following conditions :
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 * THE SOFTWARE.
25 *
26 */
27/**
28 * @brief Defines ProtectionCommonSettings interface
29 *
30 * @file protection_common_settings.h
31 */
32
33#ifndef API_MIP_PROTECTION_COMMON_SETTINGS_H_
34#define API_MIP_PROTECTION_COMMON_SETTINGS_H_
35
36#include <string>
37#include <vector>
38
39#include "mip/mip_namespace.h"
40
41MIP_NAMESPACE_BEGIN
42
43/**
44 * @brief Settings to use for protection operations
45 */
47public:
48 ProtectionCommonSettings(std::string applicationScenarioId = std::string())
49 : mApplicationScenarioId(applicationScenarioId),
50 mIsOfflineOnly(false) {}
51
52 /**
53 * @brief Gets the scenario Id provided by the application which is used to correlation with the server.
54 *
55 * @return Application scenario Id
56 */
57 std::string GetApplicationScenarioId() const {
58 return mApplicationScenarioId;
59 }
60
61 /**
62 * @brief Sets the scenario Id provided by the application
63 *
64 * @param The application scenario Id
65 */
66 void SetApplicationScenarioId(std::string applicationScenarioId) { mApplicationScenarioId = applicationScenarioId; }
67
68 /**
69 * @brief Gets whether or not ProtectionEngine operation allows for online HTTP operations
70 *
71 * @return True if HTTP operations are disallowed, else false
72 *
73 * @note If this returns true, operation will only succeed if necessary content has already been cached.
74 * A mip::NetworkError will be thrown if needed info is not found.
75 * Consumption - content has already been previously decrypted and its unexpired license is cached.
76 * Protection - unexpired templates have been cached and user cert is loaded
77 * Others - undefined
78 */
79 bool GetIsOfflineOnly() const { return mIsOfflineOnly; }
80
81 /**
82 * @brief Sets whether or not ProtectionEngine operation allows for online HTTP operations
83 *
84 * @param isOfflineOnly True if HTTP operations are disallowed, else false
85 *
86 * @note If this is set to true, operation will only succeed if necessary content has already been cached.
87 * A mip::NetworkError will be thrown if needed info is not found.
88 * Consumption - content has already been previously decrypted and its unexpired license is cached.
89 * Protection - unexpired templates have been cached and user cert is loaded
90 * Others - undefined
91 */
92 virtual void SetIsOfflineOnly(bool isOfflineOnly) { mIsOfflineOnly = isOfflineOnly; }
93
94 /**
95 * @brief Set the custom settings, used for feature gating and testing.
96 *
97 * @param customSettings List of name/value pairs.
98 */
99 void SetCustomSettings(const std::vector<std::pair<std::string, std::string>>& customSettings) {
100 mCustomSettings = customSettings;
101 }
102
103 /**
104 * @brief Get the custom settings, used for feature gating and testing.
105 *
106 * @return List of name/value pairs.
107 */
108 const std::vector<std::pair<std::string, std::string>>& GetCustomSettings() const {
109 return mCustomSettings;
110 }
111
112 /** @cond DOXYGEN_HIDE */
113 virtual ~ProtectionCommonSettings() {}
114 ProtectionCommonSettings& operator=(const ProtectionCommonSettings& other) {
115 mApplicationScenarioId = other.mApplicationScenarioId;
116 mIsOfflineOnly = other.mIsOfflineOnly;
117 return *this;
118 }
119
120private:
121 std::string mApplicationScenarioId;
122 bool mIsOfflineOnly;
123 std::vector<std::pair<std::string, std::string>> mCustomSettings;
124
125 /** @endcond */
126};
127
128MIP_NAMESPACE_END
129
130#endif // API_MIP_PROTECTION_Common_SETTINGS_H_
Settings to use for protection operations.
bool GetIsOfflineOnly() const
Gets whether or not ProtectionEngine operation allows for online HTTP operations.
void SetApplicationScenarioId(std::string applicationScenarioId)
Sets the scenario Id provided by the application.
void SetCustomSettings(const std::vector< std::pair< std::string, std::string > > &customSettings)
Set the custom settings, used for feature gating and testing.
ProtectionCommonSettings(std::string applicationScenarioId=std::string())
std::string GetApplicationScenarioId() const
Gets the scenario Id provided by the application which is used to correlation with the server.
virtual void SetIsOfflineOnly(bool isOfflineOnly)
Sets whether or not ProtectionEngine operation allows for online HTTP operations.
const std::vector< std::pair< std::string, std::string > > & GetCustomSettings() const
Get the custom settings, used for feature gating and testing.
MIP namespace macros.