BLPAPI C++ 3.26.5
Loading...
Searching...
No Matches
blpapi_tlsoptions.h
Go to the documentation of this file.
1/* Copyright 2016. Bloomberg Finance L.P.
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to
5 * deal in the Software without restriction, including without limitation the
6 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 * sell copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions: The above
9 * copyright notice and this permission notice shall be included in all copies
10 * or substantial portions of the Software.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
17 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
18 * IN THE SOFTWARE.
19 */
20
35
36#ifndef INCLUDED_BLPAPI_TLSOPTIONS
37#define INCLUDED_BLPAPI_TLSOPTIONS
38
108
109#ifndef INCLUDED_BLPAPI_CALL
110#include <blpapi_call.h>
111#endif
112
113#ifndef INCLUDED_BLPAPI_DEFS
114#include <blpapi_defs.h>
115#endif
116
117#ifndef INCLUDED_BLPAPI_EXCEPTION
118#include <blpapi_exception.h>
119#endif
120
121#ifndef INCLUDED_BLPAPI_TYPES
122#include <blpapi_types.h>
123#endif
124
125#include <stddef.h>
126
127#ifdef __cplusplus
128extern "C" {
129#endif
130
132
135
136BLPAPI_EXPORT
137blpapi_TlsOptions_t *blpapi_TlsOptions_create(void);
138
139BLPAPI_EXPORT
140blpapi_TlsOptions_t *blpapi_TlsOptions_duplicate(
141 const blpapi_TlsOptions_t *parameters);
142
143BLPAPI_EXPORT
144void blpapi_TlsOptions_copy(
145 blpapi_TlsOptions_t *lhs, const blpapi_TlsOptions_t *rhs);
146
147BLPAPI_EXPORT
148void blpapi_TlsOptions_destroy(blpapi_TlsOptions_t *parameters);
149
150BLPAPI_EXPORT
151blpapi_TlsOptions_t *blpapi_TlsOptions_createFromFiles(
152 const char *clientCredentialsFileName,
153 const char *clientCredentialsPassword,
154 const char *trustedCertificatesFileName);
155
156BLPAPI_EXPORT
157blpapi_TlsOptions_t *blpapi_TlsOptions_createFromBlobs(
158 const char *clientCredentialsRawData,
159 int clientCredentialsRawDataLength,
160 const char *clientCredentialsPassword,
161 const char *trustedCertificatesRawData,
162 int trustedCertificatesRawDataLength);
163
164BLPAPI_EXPORT
165void blpapi_TlsOptions_setTlsHandshakeTimeoutMs(
166 blpapi_TlsOptions_t *paramaters, int tlsHandshakeTimeoutMs);
167
168BLPAPI_EXPORT
169void blpapi_TlsOptions_setCrlFetchTimeoutMs(
170 blpapi_TlsOptions_t *paramaters, int crlFetchTimeoutMs);
171
174
175#ifdef __cplusplus
176}
177
178#include <cassert>
179
186
187namespace BloombergLP {
188namespace blpapi {
189
190// ================
191// class TlsOptions
192// ================
193
204class TlsOptions {
205
206 private:
207 blpapi_TlsOptions_t *d_handle_p;
208
209 explicit TlsOptions(blpapi_TlsOptions_t *handle);
213
214 public:
215 TlsOptions();
220
221 TlsOptions(const TlsOptions&);
225
226 ~TlsOptions();
230
231 // MANIPULATORS
232
233 TlsOptions& operator=(const TlsOptions& rhs);
238
239 static TlsOptions createFromFiles(const char *clientCredentialsFileName,
240 const char *clientCredentialsPassword,
241 const char *trustedCertificatesFileName);
247
248 static TlsOptions createFromBlobs(const char *clientCredentialsRawData,
249 int clientCredentialsRawDataLength,
250 const char *clientCredentialsPassword,
251 const char *trustedCertificatesRawData,
252 int trustedCertificatesRawDataLength);
258
259 void setTlsHandshakeTimeoutMs(int tlsHandshakeTimeoutMs);
266
267 void setCrlFetchTimeoutMs(int crlFetchTimeoutMs);
274
275 // ACCESSORS
276
277 blpapi_TlsOptions_t *handle() const;
281};
282
285
286// ============================================================================
287// INLINE FUNCTION DEFINITIONS
288// ============================================================================
289
290// ----------------
291// class TlsOptions
292// ----------------
293inline TlsOptions::TlsOptions(blpapi_TlsOptions_t *handle)
294 : d_handle_p(handle)
295{
296 assert(d_handle_p);
297}
298
300{
301 d_handle_p = BLPAPI_CALL(blpapi_TlsOptions_create)();
302}
303
304inline TlsOptions::TlsOptions(const TlsOptions& options)
305{
306 d_handle_p = BLPAPI_CALL(blpapi_TlsOptions_duplicate)(options.handle());
307}
308
310{
311 BLPAPI_CALL_UNCHECKED(blpapi_TlsOptions_destroy)(d_handle_p);
312}
313
314inline TlsOptions& TlsOptions::operator=(const TlsOptions& rhs)
315{
316 BLPAPI_CALL(blpapi_TlsOptions_copy)(this->handle(), rhs.handle());
317 return *this;
318}
319
321 const char *clientCredentialsFileName,
322 const char *clientCredentialsPassword,
323 const char *trustedCertificatesFileName)
324{
325 blpapi_TlsOptions_t *handle = BLPAPI_CALL(
326 blpapi_TlsOptions_createFromFiles)(clientCredentialsFileName,
327 clientCredentialsPassword,
328 trustedCertificatesFileName);
329 return TlsOptions(handle);
330}
331
333 const char *clientCredentialsRawData,
334 int clientCredentialsRawDataLength,
335 const char *clientCredentialsPassword,
336 const char *trustedCertificatesRawData,
337 int trustedCertificatesRawDataLength)
338{
339 blpapi_TlsOptions_t *handle = BLPAPI_CALL(
340 blpapi_TlsOptions_createFromBlobs)(clientCredentialsRawData,
341 clientCredentialsRawDataLength,
342 clientCredentialsPassword,
343 trustedCertificatesRawData,
344 trustedCertificatesRawDataLength);
345 return TlsOptions(handle);
346}
347
348inline void TlsOptions::setTlsHandshakeTimeoutMs(int tlsHandshakeTimeoutMs)
349{
350 BLPAPI_CALL(blpapi_TlsOptions_setTlsHandshakeTimeoutMs)
351 (d_handle_p, tlsHandshakeTimeoutMs);
352}
353
354inline void TlsOptions::setCrlFetchTimeoutMs(int crlFetchTimeoutMs)
355{
356 BLPAPI_CALL(blpapi_TlsOptions_setCrlFetchTimeoutMs)
357 (d_handle_p, crlFetchTimeoutMs);
358}
359
360inline blpapi_TlsOptions_t *TlsOptions::handle() const { return d_handle_p; }
361
362} // close namespace blpapi
363} // close namespace BloombergLP
364
365#endif // #ifdef __cplusplus
366#endif // #ifndef INCLUDED_BLPAPI_TLSOPTIONS
Provide functions for dispatchtbl.
#define BLPAPI_CALL_UNCHECKED(FUNCNAME)
Definition blpapi_call.h:362
#define BLPAPI_CALL(FUNCNAME)
Definition blpapi_call.h:361
Common definitions used by the library.
Defines Exceptions that can be thrown by the blpapi library.
Provide BLPAPI types.
static TlsOptions createFromFiles(const char *clientCredentialsFileName, const char *clientCredentialsPassword, const char *trustedCertificatesFileName)
Definition blpapi_tlsoptions.h:320
~TlsOptions()
Definition blpapi_tlsoptions.h:309
void setCrlFetchTimeoutMs(int crlFetchTimeoutMs)
Definition blpapi_tlsoptions.h:354
TlsOptions & operator=(const TlsOptions &rhs)
Definition blpapi_tlsoptions.h:314
void setTlsHandshakeTimeoutMs(int tlsHandshakeTimeoutMs)
Definition blpapi_tlsoptions.h:348
TlsOptions()
Definition blpapi_tlsoptions.h:299
static TlsOptions createFromBlobs(const char *clientCredentialsRawData, int clientCredentialsRawDataLength, const char *clientCredentialsPassword, const char *trustedCertificatesRawData, int trustedCertificatesRawDataLength)
Definition blpapi_tlsoptions.h:332
blpapi_TlsOptions_t * handle() const
Definition blpapi_tlsoptions.h:360
Definition blpapi_abstractsession.h:212
Definition blpapi_abstractsession.h:211