BLPAPI C++ 3.26.6
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
37
38#ifndef INCLUDED_BLPAPI_TLSOPTIONS
39#define INCLUDED_BLPAPI_TLSOPTIONS
40
107
108#ifndef INCLUDED_BLPAPI_CALL
109#include <blpapi_call.h>
110#endif
111
112#ifndef INCLUDED_BLPAPI_DEFS
113#include <blpapi_defs.h>
114#endif
115
116#ifndef INCLUDED_BLPAPI_EXCEPTION
117#include <blpapi_exception.h>
118#endif
119
120#ifndef INCLUDED_BLPAPI_TYPES
121#include <blpapi_types.h>
122#endif
123
124#include <stddef.h>
125
126#ifdef __cplusplus
127extern "C" {
128#endif
129
131
134
142BLPAPI_EXPORT
143blpapi_TlsOptions_t *blpapi_TlsOptions_create(void);
144
154BLPAPI_EXPORT
155blpapi_TlsOptions_t *blpapi_TlsOptions_duplicate(
156 const blpapi_TlsOptions_t *parameters);
157
166BLPAPI_EXPORT
167void blpapi_TlsOptions_copy(
168 blpapi_TlsOptions_t *lhs, const blpapi_TlsOptions_t *rhs);
169
178BLPAPI_EXPORT
179void blpapi_TlsOptions_destroy(blpapi_TlsOptions_t *parameters);
180
200BLPAPI_EXPORT
201blpapi_TlsOptions_t *blpapi_TlsOptions_createFromFiles(
202 const char *clientCredentialsFileName,
203 const char *clientCredentialsPassword,
204 const char *trustedCertificatesFileName);
205
230BLPAPI_EXPORT
231blpapi_TlsOptions_t *blpapi_TlsOptions_createFromBlobs(
232 const char *clientCredentialsRawData,
233 int clientCredentialsRawDataLength,
234 const char *clientCredentialsPassword,
235 const char *trustedCertificatesRawData,
236 int trustedCertificatesRawDataLength);
237
248BLPAPI_EXPORT
249void blpapi_TlsOptions_setTlsHandshakeTimeoutMs(
250 blpapi_TlsOptions_t *paramaters, int tlsHandshakeTimeoutMs);
251
261BLPAPI_EXPORT
262void blpapi_TlsOptions_setCrlFetchTimeoutMs(
263 blpapi_TlsOptions_t *paramaters, int crlFetchTimeoutMs);
264
267
268#ifdef __cplusplus
269}
270
271#include <cassert>
272
273namespace BloombergLP {
274namespace blpapi {
281
282// ================
283// class TlsOptions
284// ================
285
296class TlsOptions {
297
298 private:
299 blpapi_TlsOptions_t *d_handle_p;
300
301 explicit TlsOptions(blpapi_TlsOptions_t *handle);
305
306 public:
307 TlsOptions();
312
313 TlsOptions(const TlsOptions&);
317
318 ~TlsOptions();
322
323 // MANIPULATORS
324
325 TlsOptions& operator=(const TlsOptions& rhs);
330
331 static TlsOptions createFromFiles(const char *clientCredentialsFileName,
332 const char *clientCredentialsPassword,
333 const char *trustedCertificatesFileName);
339
340 static TlsOptions createFromBlobs(const char *clientCredentialsRawData,
341 int clientCredentialsRawDataLength,
342 const char *clientCredentialsPassword,
343 const char *trustedCertificatesRawData,
344 int trustedCertificatesRawDataLength);
350
351 void setTlsHandshakeTimeoutMs(int tlsHandshakeTimeoutMs);
358
359 void setCrlFetchTimeoutMs(int crlFetchTimeoutMs);
366
367 // ACCESSORS
368
370 blpapi_TlsOptions_t *handle() const;
375};
376
379
380// ============================================================================
381// INLINE FUNCTION DEFINITIONS
382// ============================================================================
383
384// ----------------
385// class TlsOptions
386// ----------------
387inline TlsOptions::TlsOptions(blpapi_TlsOptions_t *handle)
388 : d_handle_p(handle)
389{
390 assert(d_handle_p);
391}
392
394{
395 d_handle_p = BLPAPI_CALL(blpapi_TlsOptions_create)();
396}
397
398inline TlsOptions::TlsOptions(const TlsOptions& options)
399{
400 d_handle_p = BLPAPI_CALL(blpapi_TlsOptions_duplicate)(options.handle());
401}
402
404{
405 BLPAPI_CALL_UNCHECKED(blpapi_TlsOptions_destroy)(d_handle_p);
406}
407
408inline TlsOptions& TlsOptions::operator=(const TlsOptions& rhs)
409{
410 BLPAPI_CALL(blpapi_TlsOptions_copy)(this->handle(), rhs.handle());
411 return *this;
412}
413
415 const char *clientCredentialsFileName,
416 const char *clientCredentialsPassword,
417 const char *trustedCertificatesFileName)
418{
419 blpapi_TlsOptions_t *handle = BLPAPI_CALL(
420 blpapi_TlsOptions_createFromFiles)(clientCredentialsFileName,
421 clientCredentialsPassword,
422 trustedCertificatesFileName);
423 return TlsOptions(handle);
424}
425
427 const char *clientCredentialsRawData,
428 int clientCredentialsRawDataLength,
429 const char *clientCredentialsPassword,
430 const char *trustedCertificatesRawData,
431 int trustedCertificatesRawDataLength)
432{
433 blpapi_TlsOptions_t *handle = BLPAPI_CALL(
434 blpapi_TlsOptions_createFromBlobs)(clientCredentialsRawData,
435 clientCredentialsRawDataLength,
436 clientCredentialsPassword,
437 trustedCertificatesRawData,
438 trustedCertificatesRawDataLength);
439 return TlsOptions(handle);
440}
441
442inline void TlsOptions::setTlsHandshakeTimeoutMs(int tlsHandshakeTimeoutMs)
443{
444 BLPAPI_CALL(blpapi_TlsOptions_setTlsHandshakeTimeoutMs)
445 (d_handle_p, tlsHandshakeTimeoutMs);
446}
447
448inline void TlsOptions::setCrlFetchTimeoutMs(int crlFetchTimeoutMs)
449{
450 BLPAPI_CALL(blpapi_TlsOptions_setCrlFetchTimeoutMs)
451 (d_handle_p, crlFetchTimeoutMs);
452}
453
455inline blpapi_TlsOptions_t *TlsOptions::handle() const { return d_handle_p; }
457
458} // close namespace blpapi
459} // close namespace BloombergLP
460
461#endif // #ifdef __cplusplus
462#endif // #ifndef INCLUDED_BLPAPI_TLSOPTIONS
Provide functions for dispatchtbl.
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:414
~TlsOptions()
Definition blpapi_tlsoptions.h:403
void setCrlFetchTimeoutMs(int crlFetchTimeoutMs)
Definition blpapi_tlsoptions.h:448
TlsOptions & operator=(const TlsOptions &rhs)
Definition blpapi_tlsoptions.h:408
void setTlsHandshakeTimeoutMs(int tlsHandshakeTimeoutMs)
Definition blpapi_tlsoptions.h:442
TlsOptions()
Definition blpapi_tlsoptions.h:393
static TlsOptions createFromBlobs(const char *clientCredentialsRawData, int clientCredentialsRawDataLength, const char *clientCredentialsPassword, const char *trustedCertificatesRawData, int trustedCertificatesRawDataLength)
Definition blpapi_tlsoptions.h:426
Definition blpapi_abstractsession.h:452
Definition blpapi_abstractsession.h:451