Ice 3.7 C++11 API Reference
Loading...
Searching...
No Matches
Connection.h
Go to the documentation of this file.
1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4//
5// Ice version 3.7.11
6//
7// <auto-generated>
8//
9// Generated from file `Connection.ice'
10//
11// Warning: do not edit this file.
12//
13// </auto-generated>
14//
15
16#ifndef __Ice_Connection_h__
17#define __Ice_Connection_h__
18
20#include <Ice/ProxyF.h>
21#include <Ice/ObjectF.h>
22#include <Ice/ValueF.h>
23#include <Ice/Exception.h>
24#include <Ice/LocalObject.h>
25#include <Ice/StreamHelpers.h>
26#include <Ice/Comparable.h>
27#include <Ice/OutgoingAsync.h>
28#include <IceUtil/ScopedArray.h>
29#include <Ice/Optional.h>
30#include <Ice/ObjectAdapterF.h>
31#include <Ice/Identity.h>
32#include <Ice/Endpoint.h>
34
35#ifndef ICE_IGNORE_VERSION
36# if ICE_INT_VERSION / 100 != 307
37# error Ice version mismatch!
38# endif
39# if ICE_INT_VERSION % 100 >= 50
40# error Beta header file detected
41# endif
42# if ICE_INT_VERSION % 100 < 11
43# error Ice patch level mismatch!
44# endif
45#endif
46
47#ifndef ICE_API
48# if defined(ICE_STATIC_LIBS)
49# define ICE_API /**/
50# elif defined(ICE_API_EXPORTS)
51# define ICE_API ICE_DECLSPEC_EXPORT
52# else
53# define ICE_API ICE_DECLSPEC_IMPORT
54# endif
55#endif
56
57#ifdef ICE_CPP11_MAPPING // C++11 mapping
58
59namespace Ice
60{
61
62class ConnectionInfo;
63class Connection;
68
69}
70
71namespace Ice
72{
73
77enum class CompressBatch : unsigned char
78{
92};
93
122
145
150struct ACM
151{
164
169 std::tuple<const int&, const ::Ice::ACMClose&, const ::Ice::ACMHeartbeat&> ice_tuple() const
170 {
171 return std::tie(timeout, close, heartbeat);
172 }
173};
174
195
199using HeaderDict = ::std::map<::std::string, ::std::string>;
200
201using Ice::operator<;
202using Ice::operator<=;
203using Ice::operator>;
204using Ice::operator>=;
205using Ice::operator==;
206using Ice::operator!=;
207
208}
209
210namespace Ice
211{
212
217class ICE_CLASS(ICE_API) ConnectionInfo
218{
219public:
220
222
223 ConnectionInfo() = default;
224
229
237 ConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo>& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId) :
242 {
243 }
244
249 ::std::shared_ptr<::Ice::ConnectionInfo> underlying;
258 ::std::string adapterName;
262 ::std::string connectionId;
263};
264
271using CloseCallback = ::std::function<void(const ::std::shared_ptr<Connection>& con)>;
272
278using HeartbeatCallback = ::std::function<void(const ::std::shared_ptr<Connection>& con)>;
279
284class ICE_CLASS(ICE_API) Connection
285{
286public:
287
289
295 virtual void close(ConnectionClose mode) noexcept = 0;
296
309 virtual ::std::shared_ptr<::Ice::ObjectPrx> createProxy(const Identity& id) const = 0;
310
327 virtual void setAdapter(const ::std::shared_ptr<ObjectAdapter>& adapter) = 0;
328
336 virtual ::std::shared_ptr<::Ice::ObjectAdapter> getAdapter() const noexcept = 0;
337
342 virtual ::std::shared_ptr<::Ice::Endpoint> getEndpoint() const noexcept = 0;
343
351 virtual void flushBatchRequests(CompressBatch compress)
352 {
353 flushBatchRequestsAsync(compress).get();
354 }
355
366 virtual ::std::function<void()>
368 ::std::function<void(::std::exception_ptr)> exception,
369 ::std::function<void(bool)> sent = nullptr) = 0;
370
379 template<template<typename> class P = ::std::promise>
381 -> decltype(::std::declval<P<void>>().get_future())
382 {
383 using Promise = P<void>;
384 auto promise = ::std::make_shared<Promise>();
386 [promise](::std::exception_ptr ex)
387 {
388 promise->set_exception(::std::move(ex));
389 },
390 [promise](bool)
391 {
392 promise->set_value();
393 });
394 return promise->get_future();
395 }
396
404 virtual void setCloseCallback(CloseCallback callback) = 0;
405
412 virtual void setHeartbeatCallback(HeartbeatCallback callback) = 0;
413
417 virtual void heartbeat()
418 {
419 heartbeatAsync().get();
420 }
421
428 virtual ::std::function<void()>
429 heartbeatAsync(::std::function<void(::std::exception_ptr)> exception,
430 ::std::function<void(bool)> sent = nullptr) = 0;
431
436 template<template<typename> class P = ::std::promise>
438 -> decltype(::std::declval<P<void>>().get_future())
439 {
440 using Promise = P<void>;
441 auto promise = ::std::make_shared<Promise>();
442 heartbeatAsync([promise](::std::exception_ptr ex)
443 {
444 promise->set_exception(::std::move(ex));
445 },
446 [promise](bool)
447 {
448 promise->set_value();
449 });
450 return promise->get_future();
451 }
452
460
465 virtual ::Ice::ACM getACM() noexcept = 0;
466
472 virtual ::std::string type() const noexcept = 0;
473
478 virtual int timeout() const noexcept = 0;
479
486 virtual ::std::string toString() const noexcept = 0;
487
492 virtual ::std::shared_ptr<::Ice::ConnectionInfo> getInfo() const = 0;
493
499 virtual void setBufferSize(int rcvSize, int sndSize) = 0;
500
508 virtual void throwException() const = 0;
509};
510
516{
517public:
518
520
522 localAddress(""),
523 localPort(-1),
524 remoteAddress(""),
525 remotePort(-1)
526 {
527 }
528
533
545 IPConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo>& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, int localPort, const ::std::string& remoteAddress, int remotePort) :
551 {
552 }
553
557 ::std::string localAddress;
561 int localPort = -1;
565 ::std::string remoteAddress;
569 int remotePort = -1;
570};
571
576class ICE_CLASS(ICE_API) TCPConnectionInfo : public ::Ice::IPConnectionInfo
577{
578public:
579
581
583 rcvSize(0),
584 sndSize(0)
585 {
586 }
587
592
606 TCPConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo>& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, int localPort, const ::std::string& remoteAddress, int remotePort, int rcvSize, int sndSize) :
610 {
611 }
612
616 int rcvSize = 0;
620 int sndSize = 0;
621};
622
627class ICE_CLASS(ICE_API) UDPConnectionInfo : public ::Ice::IPConnectionInfo
628{
629public:
630
632
634 mcastPort(-1),
635 rcvSize(0),
636 sndSize(0)
637 {
638 }
639
644
660 UDPConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo>& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, int localPort, const ::std::string& remoteAddress, int remotePort, const ::std::string& mcastAddress, int mcastPort, int rcvSize, int sndSize) :
666 {
667 }
668
672 ::std::string mcastAddress;
676 int mcastPort = -1;
680 int rcvSize = 0;
684 int sndSize = 0;
685};
686
691class ICE_CLASS(ICE_API) WSConnectionInfo : public ::Ice::ConnectionInfo
692{
693public:
694
696
697 WSConnectionInfo() = default;
698
703
712 WSConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo>& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::Ice::HeaderDict& headers) :
715 {
716 }
717
722};
723
724}
725
727namespace Ice
728{
729
730}
732
734namespace Ice
735{
736
737using ConnectionInfoPtr = ::std::shared_ptr<ConnectionInfo>;
738
739using ConnectionPtr = ::std::shared_ptr<Connection>;
740
741using IPConnectionInfoPtr = ::std::shared_ptr<IPConnectionInfo>;
742
743using TCPConnectionInfoPtr = ::std::shared_ptr<TCPConnectionInfo>;
744
745using UDPConnectionInfoPtr = ::std::shared_ptr<UDPConnectionInfo>;
746
747using WSConnectionInfoPtr = ::std::shared_ptr<WSConnectionInfo>;
748
749}
751
752#else // C++98 mapping
753
754namespace Ice
755{
756
757class ConnectionInfo;
759ICE_API LocalObject* upCast(ConnectionInfo*);
761typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr;
762
763class Connection;
765ICE_API LocalObject* upCast(Connection*);
767typedef ::IceInternal::Handle< Connection> ConnectionPtr;
768
769class CloseCallback;
771ICE_API LocalObject* upCast(CloseCallback*);
773typedef ::IceInternal::Handle< CloseCallback> CloseCallbackPtr;
774
777ICE_API LocalObject* upCast(HeartbeatCallback*);
779typedef ::IceInternal::Handle< HeartbeatCallback> HeartbeatCallbackPtr;
780
781class IPConnectionInfo;
783ICE_API LocalObject* upCast(IPConnectionInfo*);
785typedef ::IceInternal::Handle< IPConnectionInfo> IPConnectionInfoPtr;
786
787class TCPConnectionInfo;
789ICE_API LocalObject* upCast(TCPConnectionInfo*);
791typedef ::IceInternal::Handle< TCPConnectionInfo> TCPConnectionInfoPtr;
792
793class UDPConnectionInfo;
795ICE_API LocalObject* upCast(UDPConnectionInfo*);
797typedef ::IceInternal::Handle< UDPConnectionInfo> UDPConnectionInfoPtr;
798
799class WSConnectionInfo;
801ICE_API LocalObject* upCast(WSConnectionInfo*);
803typedef ::IceInternal::Handle< WSConnectionInfo> WSConnectionInfoPtr;
804
805}
806
807namespace Ice
808{
809
813enum CompressBatch
814{
818 CompressBatchYes,
822 CompressBatchNo,
827 CompressBatchBasedOnProxy
828};
829
833enum ACMClose
834{
838 CloseOff,
857};
858
862enum ACMHeartbeat
863{
880};
881
886struct ACM
887{
891 ::Ice::Int timeout;
895 ::Ice::ACMClose close;
899 ::Ice::ACMHeartbeat heartbeat;
900
901 bool operator==(const ACM& rhs_) const
902 {
903 if(this == &rhs_)
904 {
905 return true;
906 }
907 if(timeout != rhs_.timeout)
908 {
909 return false;
910 }
911 if(close != rhs_.close)
912 {
913 return false;
914 }
915 if(heartbeat != rhs_.heartbeat)
916 {
917 return false;
918 }
919 return true;
920 }
921
922 bool operator<(const ACM& rhs_) const
923 {
924 if(this == &rhs_)
925 {
926 return false;
927 }
928 if(timeout < rhs_.timeout)
929 {
930 return true;
931 }
932 else if(rhs_.timeout < timeout)
933 {
934 return false;
935 }
936 if(close < rhs_.close)
937 {
938 return true;
939 }
940 else if(rhs_.close < close)
941 {
942 return false;
943 }
944 if(heartbeat < rhs_.heartbeat)
945 {
946 return true;
947 }
948 else if(rhs_.heartbeat < heartbeat)
949 {
950 return false;
951 }
952 return false;
953 }
954
955 bool operator!=(const ACM& rhs_) const
956 {
957 return !operator==(rhs_);
958 }
959 bool operator<=(const ACM& rhs_) const
960 {
961 return operator<(rhs_) || operator==(rhs_);
962 }
963 bool operator>(const ACM& rhs_) const
964 {
965 return !operator<(rhs_) && !operator==(rhs_);
966 }
967 bool operator>=(const ACM& rhs_) const
968 {
969 return !operator<(rhs_);
970 }
971};
972
977{
982 ConnectionCloseForcefully,
987 ConnectionCloseGracefully,
991 ConnectionCloseGracefullyWithWait
992};
993
997typedef ::std::map< ::std::string, ::std::string> HeaderDict;
998
999}
1000
1001namespace Ice
1002{
1003
1009class Callback_Connection_flushBatchRequests_Base : public virtual ::IceInternal::CallbackBase { };
1010typedef ::IceUtil::Handle< Callback_Connection_flushBatchRequests_Base> Callback_Connection_flushBatchRequestsPtr;
1011
1017class Callback_Connection_heartbeat_Base : public virtual ::IceInternal::CallbackBase { };
1018typedef ::IceUtil::Handle< Callback_Connection_heartbeat_Base> Callback_Connection_heartbeatPtr;
1019
1020}
1021
1022namespace Ice
1023{
1024
1029class ICE_API ConnectionInfo : public virtual LocalObject
1030{
1031public:
1032
1033 typedef ConnectionInfoPtr PointerType;
1034
1035 virtual ~ConnectionInfo();
1036
1037 ConnectionInfo()
1038 {
1039 }
1040
1048 ConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId) :
1049 underlying(underlying),
1050 incoming(incoming),
1051 adapterName(adapterName),
1052 connectionId(connectionId)
1053 {
1054 }
1055
1056#ifdef ICE_CPP11_COMPILER
1057 ConnectionInfo(const ConnectionInfo&) = default;
1058 ConnectionInfo& operator=(const ConnectionInfo&) = default;
1059#endif
1060
1065 ::Ice::ConnectionInfoPtr underlying;
1070 bool incoming;
1074 ::std::string adapterName;
1078 ::std::string connectionId;
1079};
1080
1082inline bool operator==(const ConnectionInfo& lhs, const ConnectionInfo& rhs)
1083{
1084 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1085}
1086
1087inline bool operator<(const ConnectionInfo& lhs, const ConnectionInfo& rhs)
1088{
1089 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1090}
1092
1099class ICE_API CloseCallback : public virtual LocalObject
1100{
1101public:
1102
1103 typedef CloseCallbackPtr PointerType;
1104
1105 virtual ~CloseCallback();
1106
1107#ifdef ICE_CPP11_COMPILER
1108 CloseCallback() = default;
1109 CloseCallback(const CloseCallback&) = default;
1110 CloseCallback& operator=(const CloseCallback&) = default;
1111#endif
1112
1119 virtual void closed(const ConnectionPtr& con) = 0;
1120};
1121
1123inline bool operator==(const CloseCallback& lhs, const CloseCallback& rhs)
1124{
1125 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1126}
1127
1128inline bool operator<(const CloseCallback& lhs, const CloseCallback& rhs)
1129{
1130 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1131}
1133
1140class ICE_API HeartbeatCallback : public virtual LocalObject
1141{
1142public:
1143
1144 typedef HeartbeatCallbackPtr PointerType;
1145
1146 virtual ~HeartbeatCallback();
1147
1148#ifdef ICE_CPP11_COMPILER
1149 HeartbeatCallback() = default;
1150 HeartbeatCallback(const HeartbeatCallback&) = default;
1151 HeartbeatCallback& operator=(const HeartbeatCallback&) = default;
1152#endif
1153
1159 virtual void heartbeat(const ConnectionPtr& con) = 0;
1160};
1161
1163inline bool operator==(const HeartbeatCallback& lhs, const HeartbeatCallback& rhs)
1164{
1165 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1166}
1167
1168inline bool operator<(const HeartbeatCallback& lhs, const HeartbeatCallback& rhs)
1169{
1170 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1171}
1173
1178class ICE_API Connection : public virtual LocalObject
1179{
1180public:
1181
1182 typedef ConnectionPtr PointerType;
1183
1184 virtual ~Connection();
1185
1186#ifdef ICE_CPP11_COMPILER
1187 Connection() = default;
1188 Connection(const Connection&) = default;
1189 Connection& operator=(const Connection&) = default;
1190#endif
1191
1197 virtual void close(ConnectionClose mode) ICE_NOEXCEPT = 0;
1198
1211 virtual ObjectPrx createProxy(const Identity& id) const = 0;
1212
1229 virtual void setAdapter(const ObjectAdapterPtr& adapter) = 0;
1230
1238 virtual ObjectAdapterPtr getAdapter() const ICE_NOEXCEPT = 0;
1239
1244 virtual EndpointPtr getEndpoint() const ICE_NOEXCEPT = 0;
1245
1253 virtual void flushBatchRequests(CompressBatch compress) = 0;
1254
1263 virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress) = 0;
1264
1275 virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress, const CallbackPtr& cb, const LocalObjectPtr& cookie = 0) = 0;
1276
1287 virtual AsyncResultPtr begin_flushBatchRequests(CompressBatch compress, const Callback_Connection_flushBatchRequestsPtr& cb, const LocalObjectPtr& cookie = 0) = 0;
1288
1295 virtual void end_flushBatchRequests(const AsyncResultPtr& result) = 0;
1296
1304 virtual void setCloseCallback(const CloseCallbackPtr& callback) = 0;
1305
1312 virtual void setHeartbeatCallback(const HeartbeatCallbackPtr& callback) = 0;
1313
1317 virtual void heartbeat() = 0;
1318
1323 virtual AsyncResultPtr begin_heartbeat() = 0;
1324
1331 virtual AsyncResultPtr begin_heartbeat(const CallbackPtr& cb, const LocalObjectPtr& cookie = 0) = 0;
1332
1339 virtual AsyncResultPtr begin_heartbeat(const Callback_Connection_heartbeatPtr& cb, const LocalObjectPtr& cookie = 0) = 0;
1340
1345 virtual void end_heartbeat(const AsyncResultPtr& result) = 0;
1346
1353 virtual void setACM(const IceUtil::Optional<Int>& timeout, const IceUtil::Optional<ACMClose>& close, const IceUtil::Optional<ACMHeartbeat>& heartbeat) = 0;
1354
1359 virtual ACM getACM() ICE_NOEXCEPT = 0;
1360
1366 virtual ::std::string type() const ICE_NOEXCEPT = 0;
1367
1372 virtual Int timeout() const ICE_NOEXCEPT = 0;
1373
1380 virtual ::std::string toString() const ICE_NOEXCEPT = 0;
1381
1386 virtual ConnectionInfoPtr getInfo() const = 0;
1387
1393 virtual void setBufferSize(Int rcvSize, Int sndSize) = 0;
1394
1402 virtual void throwException() const = 0;
1403};
1404
1406inline bool operator==(const Connection& lhs, const Connection& rhs)
1407{
1408 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1409}
1410
1411inline bool operator<(const Connection& lhs, const Connection& rhs)
1412{
1413 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1414}
1416
1421class ICE_API IPConnectionInfo : public ConnectionInfo
1422{
1423public:
1424
1425 typedef IPConnectionInfoPtr PointerType;
1426
1427 virtual ~IPConnectionInfo();
1428
1430 IPConnectionInfo() :
1431 localAddress(""),
1432 localPort(-1),
1433 remoteAddress(""),
1434 remotePort(-1)
1435 {
1436 }
1437
1449 IPConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localPort, const ::std::string& remoteAddress, ::Ice::Int remotePort) :
1450 ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId),
1451 localAddress(localAddress),
1452 localPort(localPort),
1453 remoteAddress(remoteAddress),
1454 remotePort(remotePort)
1455 {
1456 }
1457
1458#ifdef ICE_CPP11_COMPILER
1459 IPConnectionInfo(const IPConnectionInfo&) = default;
1460 IPConnectionInfo& operator=(const IPConnectionInfo&) = default;
1461#endif
1462
1466 ::std::string localAddress;
1470 ::Ice::Int localPort;
1474 ::std::string remoteAddress;
1478 ::Ice::Int remotePort;
1479};
1480
1482inline bool operator==(const IPConnectionInfo& lhs, const IPConnectionInfo& rhs)
1483{
1484 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1485}
1486
1487inline bool operator<(const IPConnectionInfo& lhs, const IPConnectionInfo& rhs)
1488{
1489 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1490}
1492
1497class ICE_API TCPConnectionInfo : public IPConnectionInfo
1498{
1499public:
1500
1501 typedef TCPConnectionInfoPtr PointerType;
1502
1503 virtual ~TCPConnectionInfo();
1504
1506 TCPConnectionInfo() :
1507 rcvSize(0),
1508 sndSize(0)
1509 {
1510 }
1511
1525 TCPConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localPort, const ::std::string& remoteAddress, ::Ice::Int remotePort, ::Ice::Int rcvSize, ::Ice::Int sndSize) :
1526 ::Ice::IPConnectionInfo(underlying, incoming, adapterName, connectionId, localAddress, localPort, remoteAddress, remotePort),
1527 rcvSize(rcvSize),
1528 sndSize(sndSize)
1529 {
1530 }
1531
1532#ifdef ICE_CPP11_COMPILER
1533 TCPConnectionInfo(const TCPConnectionInfo&) = default;
1534 TCPConnectionInfo& operator=(const TCPConnectionInfo&) = default;
1535#endif
1536
1540 ::Ice::Int rcvSize;
1544 ::Ice::Int sndSize;
1545};
1546
1548inline bool operator==(const TCPConnectionInfo& lhs, const TCPConnectionInfo& rhs)
1549{
1550 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1551}
1552
1553inline bool operator<(const TCPConnectionInfo& lhs, const TCPConnectionInfo& rhs)
1554{
1555 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1556}
1558
1563class ICE_API UDPConnectionInfo : public IPConnectionInfo
1564{
1565public:
1566
1567 typedef UDPConnectionInfoPtr PointerType;
1568
1569 virtual ~UDPConnectionInfo();
1570
1572 UDPConnectionInfo() :
1573 mcastPort(-1),
1574 rcvSize(0),
1575 sndSize(0)
1576 {
1577 }
1578
1594 UDPConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::std::string& localAddress, ::Ice::Int localPort, const ::std::string& remoteAddress, ::Ice::Int remotePort, const ::std::string& mcastAddress, ::Ice::Int mcastPort, ::Ice::Int rcvSize, ::Ice::Int sndSize) :
1595 ::Ice::IPConnectionInfo(underlying, incoming, adapterName, connectionId, localAddress, localPort, remoteAddress, remotePort),
1596 mcastAddress(mcastAddress),
1597 mcastPort(mcastPort),
1598 rcvSize(rcvSize),
1599 sndSize(sndSize)
1600 {
1601 }
1602
1603#ifdef ICE_CPP11_COMPILER
1604 UDPConnectionInfo(const UDPConnectionInfo&) = default;
1605 UDPConnectionInfo& operator=(const UDPConnectionInfo&) = default;
1606#endif
1607
1611 ::std::string mcastAddress;
1615 ::Ice::Int mcastPort;
1619 ::Ice::Int rcvSize;
1623 ::Ice::Int sndSize;
1624};
1625
1627inline bool operator==(const UDPConnectionInfo& lhs, const UDPConnectionInfo& rhs)
1628{
1629 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1630}
1631
1632inline bool operator<(const UDPConnectionInfo& lhs, const UDPConnectionInfo& rhs)
1633{
1634 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1635}
1637
1642class ICE_API WSConnectionInfo : public ConnectionInfo
1643{
1644public:
1645
1646 typedef WSConnectionInfoPtr PointerType;
1647
1648 virtual ~WSConnectionInfo();
1649
1650 WSConnectionInfo()
1651 {
1652 }
1653
1662 WSConnectionInfo(const ::Ice::ConnectionInfoPtr& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId, const ::Ice::HeaderDict& headers) :
1663 ::Ice::ConnectionInfo(underlying, incoming, adapterName, connectionId),
1664 headers(headers)
1665 {
1666 }
1667
1668#ifdef ICE_CPP11_COMPILER
1669 WSConnectionInfo(const WSConnectionInfo&) = default;
1670 WSConnectionInfo& operator=(const WSConnectionInfo&) = default;
1671#endif
1672
1676 ::Ice::HeaderDict headers;
1677};
1678
1680inline bool operator==(const WSConnectionInfo& lhs, const WSConnectionInfo& rhs)
1681{
1682 return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1683}
1684
1685inline bool operator<(const WSConnectionInfo& lhs, const WSConnectionInfo& rhs)
1686{
1687 return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1688}
1690
1691}
1692
1694namespace Ice
1695{
1696
1697}
1699
1700#endif
1701
1703#endif
#define ICE_API
Definition Config.h:197
#define ICE_NOEXCEPT
Definition Config.h:128
#define ICE_MEMBER(API)
Definition Config.h:177
#define ICE_CLASS(API)
Definition Config.h:176
Base class providing access to the connection details.
Definition Connection.h:218
ConnectionInfo & operator=(ConnectionInfo &&)=default
ConnectionInfo(const ConnectionInfo &)=default
ConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo > &underlying, bool incoming, const ::std::string &adapterName, const ::std::string &connectionId)
One-shot constructor to initialize all data members.
Definition Connection.h:237
ConnectionInfo()=default
ConnectionInfo & operator=(const ConnectionInfo &)=default
ConnectionInfo(ConnectionInfo &&)=default
::std::string adapterName
The name of the adapter associated with the connection.
Definition Connection.h:258
::std::string connectionId
The connection id.
Definition Connection.h:262
::std::shared_ptr<::Ice::ConnectionInfo > underlying
The information of the underyling transport or null if there's no underlying transport.
Definition Connection.h:249
virtual ~ConnectionInfo()
bool incoming
Whether or not the connection is an incoming or outgoing connection.
Definition Connection.h:254
The user-level interface to a connection.
Definition Connection.h:285
auto heartbeatAsync() -> decltype(::std::declval< P< void > >().get_future())
Send a heartbeat message.
Definition Connection.h:437
virtual void setAdapter(const ::std::shared_ptr< ObjectAdapter > &adapter)=0
Explicitly set an object adapter that dispatches requests that are received over this connection.
virtual void close(ConnectionClose mode) noexcept=0
Manually close the connection using the specified closure mode.
virtual ::std::function< void()> flushBatchRequestsAsync(CompressBatch compress, ::std::function< void(::std::exception_ptr)> exception, ::std::function< void(bool)> sent=nullptr)=0
Flush any pending batch requests for this connection.
virtual ~Connection()
virtual::std::string type() const noexcept=0
Return the connection type.
virtual void setBufferSize(int rcvSize, int sndSize)=0
Set the connection buffer receive/send size.
virtual void setCloseCallback(CloseCallback callback)=0
Set a close callback on the connection.
virtual ::std::shared_ptr<::Ice::ObjectAdapter > getAdapter() const noexcept=0
Get the object adapter that dispatches requests for this connection.
virtual::std::string toString() const noexcept=0
Return a description of the connection as human readable text, suitable for logging or error messages...
virtual void heartbeat()
Send a heartbeat message.
Definition Connection.h:417
virtual void setHeartbeatCallback(HeartbeatCallback callback)=0
Set a heartbeat callback on the connection.
virtual ::std::shared_ptr<::Ice::ConnectionInfo > getInfo() const =0
Returns the connection information.
virtual int timeout() const noexcept=0
Get the timeout for the connection.
virtual ::std::shared_ptr<::Ice::ObjectPrx > createProxy(const Identity &id) const =0
Create a special proxy that always uses this connection.
virtual void setACM(const Ice::optional< int > &timeout, const Ice::optional< ACMClose > &close, const Ice::optional< ACMHeartbeat > &heartbeat)=0
Set the active connection management parameters.
virtual::Ice::ACM getACM() noexcept=0
Get the ACM parameters.
virtual void flushBatchRequests(CompressBatch compress)
Flush any pending batch requests for this connection.
Definition Connection.h:351
virtual void throwException() const =0
Throw an exception indicating the reason for connection closure.
virtual ::std::function< void()> heartbeatAsync(::std::function< void(::std::exception_ptr)> exception, ::std::function< void(bool)> sent=nullptr)=0
Send a heartbeat message.
virtual ::std::shared_ptr<::Ice::Endpoint > getEndpoint() const noexcept=0
Get the endpoint from which the connection was created.
auto flushBatchRequestsAsync(CompressBatch compress) -> decltype(::std::declval< P< void > >().get_future())
Flush any pending batch requests for this connection.
Definition Connection.h:380
The user-level interface to an endpoint.
Definition Endpoint.h:194
Provides access to the connection details of an IP connection.
Definition Connection.h:516
IPConnectionInfo & operator=(const IPConnectionInfo &)=default
int remotePort
The remote port.
Definition Connection.h:569
IPConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo > &underlying, bool incoming, const ::std::string &adapterName, const ::std::string &connectionId, const ::std::string &localAddress, int localPort, const ::std::string &remoteAddress, int remotePort)
One-shot constructor to initialize all data members.
Definition Connection.h:545
virtual ~IPConnectionInfo()
IPConnectionInfo(const IPConnectionInfo &)=default
::std::string remoteAddress
The remote address.
Definition Connection.h:565
IPConnectionInfo & operator=(IPConnectionInfo &&)=default
IPConnectionInfo()
Definition Connection.h:521
IPConnectionInfo(IPConnectionInfo &&)=default
int localPort
The local port.
Definition Connection.h:561
::std::string localAddress
The local address.
Definition Connection.h:557
Provides access to the connection details of a TCP connection.
Definition Connection.h:577
TCPConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo > &underlying, bool incoming, const ::std::string &adapterName, const ::std::string &connectionId, const ::std::string &localAddress, int localPort, const ::std::string &remoteAddress, int remotePort, int rcvSize, int sndSize)
One-shot constructor to initialize all data members.
Definition Connection.h:606
TCPConnectionInfo(const TCPConnectionInfo &)=default
virtual ~TCPConnectionInfo()
int rcvSize
The connection buffer receive size.
Definition Connection.h:616
int sndSize
The connection buffer send size.
Definition Connection.h:620
TCPConnectionInfo & operator=(const TCPConnectionInfo &)=default
TCPConnectionInfo(TCPConnectionInfo &&)=default
TCPConnectionInfo & operator=(TCPConnectionInfo &&)=default
TCPConnectionInfo()
Definition Connection.h:582
Provides access to the connection details of a UDP connection.
Definition Connection.h:628
::std::string mcastAddress
The multicast address.
Definition Connection.h:672
int rcvSize
The connection buffer receive size.
Definition Connection.h:680
UDPConnectionInfo(UDPConnectionInfo &&)=default
UDPConnectionInfo(const UDPConnectionInfo &)=default
UDPConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo > &underlying, bool incoming, const ::std::string &adapterName, const ::std::string &connectionId, const ::std::string &localAddress, int localPort, const ::std::string &remoteAddress, int remotePort, const ::std::string &mcastAddress, int mcastPort, int rcvSize, int sndSize)
One-shot constructor to initialize all data members.
Definition Connection.h:660
virtual ~UDPConnectionInfo()
int sndSize
The connection buffer send size.
Definition Connection.h:684
int mcastPort
The multicast port.
Definition Connection.h:676
UDPConnectionInfo & operator=(UDPConnectionInfo &&)=default
UDPConnectionInfo & operator=(const UDPConnectionInfo &)=default
UDPConnectionInfo()
Definition Connection.h:633
Provides access to the connection details of a WebSocket connection.
Definition Connection.h:692
WSConnectionInfo()=default
WSConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo > &underlying, bool incoming, const ::std::string &adapterName, const ::std::string &connectionId, const ::Ice::HeaderDict &headers)
One-shot constructor to initialize all data members.
Definition Connection.h:712
::Ice::HeaderDict headers
The headers from the HTTP upgrade request.
Definition Connection.h:721
WSConnectionInfo & operator=(const WSConnectionInfo &)=default
WSConnectionInfo(WSConnectionInfo &&)=default
WSConnectionInfo(const WSConnectionInfo &)=default
WSConnectionInfo & operator=(WSConnectionInfo &&)=default
virtual ~WSConnectionInfo()
Definition BuiltinSequences.h:56
CompressBatch
The batch compression option when flushing queued batch requests.
Definition Connection.h:78
@ BasedOnProxy
Compress the batch requests if at least one request was made on a compressed proxy.
Definition Connection.h:91
@ Yes
Compress the batch requests.
Definition Connection.h:82
@ No
Don't compress the batch requests.
Definition Connection.h:86
int Int
The mapping for the Slice int type.
Definition Config.h:54
ACMHeartbeat
Specifies the heartbeat semantics for Active Connection Management.
Definition Connection.h:127
@ HeartbeatOnIdle
Send a heartbeat at regular intervals when the connection is idle.
Definition Connection.h:139
@ HeartbeatOff
Disables heartbeats.
Definition Connection.h:131
@ HeartbeatAlways
Send a heartbeat at regular intervals until the connection is closed.
Definition Connection.h:143
@ HeartbeatOnDispatch
Send a heartbeat at regular intervals if the connection is idle and only if there are pending dispatc...
Definition Connection.h:135
bool operator>(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition Comparable.h:160
::std::function< void(const ::std::shared_ptr< Connection > &con)> CloseCallback
This method is called by the connection when the connection is closed.
Definition Connection.h:271
std::experimental::Ice::optional< T > optional
Ice::optional is a placeholder for std::optional.
Definition Optional.h:1065
::std::function< void(const ::std::shared_ptr< Connection > &con)> HeartbeatCallback
This method is called by the connection when a heartbeat is received from the peer.
Definition Connection.h:278
ConnectionClose
Determines the behavior when manually closing a connection.
Definition Connection.h:179
@ GracefullyWithWait
Wait for all pending invocations to complete before closing the connection.
Definition Connection.h:193
@ Forcefully
Close the connection immediately without sending a close connection protocol message to the peer and ...
Definition Connection.h:184
@ Gracefully
Close the connection by notifying the peer but do not wait for pending outgoing invocations to comple...
Definition Connection.h:189
bool operator<(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition Comparable.h:136
bool operator<=(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition Comparable.h:148
bool operator>=(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition Comparable.h:172
bool operator==(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition Comparable.h:184
bool operator!=(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition Comparable.h:196
::std::map<::std::string, ::std::string > HeaderDict
A collection of HTTP headers.
Definition Connection.h:199
ACMClose
Specifies the close semantics for Active Connection Management.
Definition Connection.h:98
@ CloseOnIdleForceful
Forcefully closes a connection that has been idle for the configured timeout period,...
Definition Connection.h:120
@ CloseOnInvocationAndIdle
Combines the behaviors of CloseOnIdle and CloseOnInvocation.
Definition Connection.h:115
@ CloseOnIdle
Gracefully closes a connection that has been idle for the configured timeout period.
Definition Connection.h:106
@ CloseOnInvocation
Forcefully closes a connection that has been idle for the configured timeout period,...
Definition Connection.h:111
@ CloseOff
Disables automatic connection closure.
Definition Connection.h:102
A collection of Active Connection Management configuration settings.
Definition Connection.h:151
int timeout
A timeout value in seconds.
Definition Connection.h:155
::Ice::ACMClose close
The close semantics.
Definition Connection.h:159
std::tuple< const int &, const ::Ice::ACMClose &, const ::Ice::ACMHeartbeat & > ice_tuple() const
Obtains a tuple containing all of the struct's data members.
Definition Connection.h:169
::Ice::ACMHeartbeat heartbeat
The heartbeat semantics.
Definition Connection.h:163
The identity of an Ice object.
Definition Identity.h:67