EMA C++ Edition
TunnelStreamRequest.h
Go to the documentation of this file.
1/*|-----------------------------------------------------------------------------
2 *| This source code is provided under the Apache 2.0 license
3 *| and is provided AS IS with no warranty or guarantee of fit for purpose.
4 *| See the project's LICENSE.md for details.
5 *| Copyright (C) 2019 LSEG. All rights reserved. --
6 *|-----------------------------------------------------------------------------
7 */
8
9#ifndef __refinitiv_ema_access_TunnelStreamRequest_h
10#define __refinitiv_ema_access_TunnelStreamRequest_h
11
12#include "EmaString.h"
13
14namespace refinitiv {
15
16namespace ema {
17
18namespace access {
19
20class ReqMsg;
21class TunnelStreamLoginReqMsgImpl;
22
32{
33public :
34
36
37
41
45 CosCommon( const CosCommon& other );
47
49
50
52 virtual ~CosCommon();
54
56
57
61 CosCommon& operator=( const CosCommon& other);
62
67
74 CosCommon& maxMsgSize( UInt64 maxMsgSize = 6144 );
76
78
79
84
85private :
86
87 UInt64 _maxMsgSize;
88};
89
99{
100public :
101
106 NotRequiredEnum = 0,
107 OmmLoginEnum = 1
108 };
109
111
112
115
121
123
124
128
130
131
136
141
147 CosAuthentication& type( CosAuthenticationType type = NotRequiredEnum );
149
151
152
157
158private :
159
161};
162
172{
173public :
174
179 NoneEnum = 0,
180 BidirectionalEnum = 1
181 };
182
184
185
188
194
196
197
201
203
204
209
214
221
231
241
243
244
248
253
259
260private :
261
262 CosFlowControlType _type;
263 Int64 _recvWindowSize;
264 Int64 _sendWindowSize;
265};
266
276{
277public :
278
283 BestEffortEnum = 0,
284 ReliableEnum = 1
285 };
286
288
289
292
298
300
301
305
307
308
313
318
324 CosDataIntegrity& type( CosDataIntegrityType type = BestEffortEnum );
326
328
329
334
335private :
336
338};
339
349{
350public :
351
356 NoneEnum = 0,
357 PersistentQueueEnum = 1
358 };
359
361
362
365
371
373
374
376 virtual ~CosGuarantee();
378
380
381
386
391
397 CosGuarantee& type( CosGuaranteeType type = NoneEnum );
398
404 CosGuarantee& persistLocally( bool persistLocally = true );
405
413
415
416
420
424 bool getPersistLocally() const;
425
431
432private :
433
434 CosGuaranteeType _type;
435 bool _persistLocally;
436 EmaString _filePath;
437};
438
454{
455public :
456
458
459
462
468
470
471
475
477
478
483
488
493 ClassOfService& common( const CosCommon& cosCommon );
494
499 ClassOfService& authentication( const CosAuthentication& cosAuthentication );
500
505 ClassOfService& flowControl( const CosFlowControl& cosFlowControl );
506
511 ClassOfService& dataIntegrity( const CosDataIntegrity& cosDataIntegrity );
512
517 ClassOfService& guarantee( const CosGuarantee& cosGuarantee );
519
521
522
525 const CosCommon& getCommon() const;
526
531
536
541
547
548private :
549
550 CosCommon _common;
551 CosAuthentication _authentication;
552 CosFlowControl _flowControl;
553 CosDataIntegrity _dataIntegrity;
554 CosGuarantee _guarantee;
555};
556
587{
588public :
589
591
592
595
601
603
604
608
610
611
616
621
628
636
644
650
656
662
668
676
678
679
682 bool hasServiceId() const;
683
687 bool hasServiceName() const;
688
692 bool hasName() const;
693
697 bool hasLoginReqMsg() const;
698
703
709
714 const EmaString& getServiceName() const;
715
720 const EmaString& getName() const;
721
726
731
736
741 const ReqMsg& getLoginReqMsg() const;
743
744private :
745
746 friend class TunnelItem;
747
748 UInt8 _domainType;
749 UInt32 _serviceId;
750 UInt32 _responseTimeout;
751 UInt32 _guaranteedOutputBuffers;
752 bool _serviceIdSet;
753 bool _serviceNameSet;
754 bool _nameSet;
755 EmaString _serviceName;
756 EmaString _name;
757 ClassOfService _cos;
758 TunnelStreamLoginReqMsgImpl* _pImpl;
759};
760
761};
762
763};
764
765};
766
767#endif // __refinitiv_ema_access_TunnelStreamRequest_h
#define EMA_ACCESS_API
Definition: Common.h:95
*|--------------------------------------------------------------------------—
Definition: AckMsg.h:62
unsigned int UInt32
represents 32-bit unsigned integer
Definition: Common.h:56
long long Int64
represents 64-bit signed integer
Definition: Common.h:74
unsigned char UInt8
represents 8-bit unsigned integer
Definition: Common.h:32
unsigned short UInt16
represents 16-bit unsigned integer
Definition: Common.h:44
unsigned long long UInt64
represents 64-bit unsigned integer
Definition: Common.h:68
The access namespace contains all interfaces and definitions specified for use with the EMA Access pa...
The ema namespace contains all interfaces and definitions specified for use with EMA.
EmaString class is a container of a null terminated Ascii character string.
Definition: EmaString.h:57
ReqMsg allows consumer application to express its interest in an item.
Definition: ReqMsg.h:60
CosCommon encapsulates common member of the ClassOfService class.
CosCommon(const CosCommon &other)
CosCommon & operator=(const CosCommon &other)
CosCommon & maxMsgSize(UInt64 maxMsgSize=6144)
CosAuthentication encapsulates authentication member of the ClassOfService class.
CosAuthentication(const CosAuthentication &other)
CosAuthenticationType getType() const
CosAuthentication & operator=(const CosAuthentication &other)
CosAuthentication & type(CosAuthenticationType type=NotRequiredEnum)
CosFlowControl encapsulates flow control member of the ClassOfService class.
CosFlowControl & operator=(const CosFlowControl &other)
CosFlowControl(const CosFlowControl &other)
CosFlowControl & sendWindowSize(Int64 size)
CosFlowControl & recvWindowSize(Int64 size=-1)
CosFlowControl & type(CosFlowControlType type=NoneEnum)
CosFlowControlType getType() const
CosDataIntegrity encapsulates data integrity member of the ClassOfService class.
CosDataIntegrity & type(CosDataIntegrityType type=BestEffortEnum)
CosDataIntegrity & operator=(const CosDataIntegrity &other)
CosDataIntegrity(const CosDataIntegrity &other)
CosDataIntegrityType getType() const
CosGuarantee encapsulates guarantee member of the ClassOfService class.
CosGuarantee & operator=(const CosGuarantee &other)
CosGuarantee & type(CosGuaranteeType type=NoneEnum)
CosGuarantee & persistenceFilePath(const EmaString &filePath=EmaString())
const EmaString & getPersistenceFilePath() const
CosGuarantee(const CosGuarantee &other)
CosGuaranteeType getType() const
CosGuarantee & persistLocally(bool persistLocally=true)
ClassOfService encapsulates behaviours of tunnel stream.
const CosDataIntegrity & getDataIntegrity() const
const CosCommon & getCommon() const
ClassOfService(const ClassOfService &other)
ClassOfService & common(const CosCommon &cosCommon)
ClassOfService & dataIntegrity(const CosDataIntegrity &cosDataIntegrity)
const CosGuarantee & getGuarantee() const
const CosFlowControl & getFlowControl() const
const CosAuthentication & getAuthentication() const
ClassOfService & operator=(const ClassOfService &other)
ClassOfService & flowControl(const CosFlowControl &cosFlowControl)
ClassOfService & authentication(const CosAuthentication &cosAuthentication)
ClassOfService & guarantee(const CosGuarantee &cosGuarantee)
TunnelStreamRequest encapsulates tunnel stream request parameters.
TunnelStreamRequest & domainType(UInt8 domainType)
TunnelStreamRequest & operator=(const TunnelStreamRequest &other)
TunnelStreamRequest & serviceName(const EmaString &serviceName)
TunnelStreamRequest & classOfService(const ClassOfService &cos)
const EmaString & getServiceName() const
TunnelStreamRequest & guaranteedOutputBuffers(UInt32 value=50)
TunnelStreamRequest & responseTimeout(UInt32 timeout=60)
TunnelStreamRequest & loginReqMsg(const ReqMsg &loginReq)
TunnelStreamRequest & serviceId(UInt32 serviceId)
TunnelStreamRequest & name(const EmaString &name)
const ClassOfService & getClassOfService() const
TunnelStreamRequest(const TunnelStreamRequest &other)