Ice 3.7 C++11 API Reference
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.10
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>
33 #include <IceUtil/UndefSysMacros.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 < 10
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 
59 namespace Ice
60 {
61 
62 class ConnectionInfo;
63 class Connection;
64 class IPConnectionInfo;
65 class TCPConnectionInfo;
66 class UDPConnectionInfo;
67 class WSConnectionInfo;
68 
69 }
70 
71 namespace Ice
72 {
73 
77 enum class CompressBatch : unsigned char
78 {
82  Yes,
86  No,
92 };
93 
97 enum class ACMClose : unsigned char
98 {
102  CloseOff,
106  CloseOnIdle,
111  CloseOnInvocation,
115  CloseOnInvocationAndIdle,
121 };
122 
126 enum class ACMHeartbeat : unsigned char
127 {
131  HeartbeatOff,
135  HeartbeatOnDispatch,
139  HeartbeatOnIdle,
144 };
145 
150 struct ACM
151 {
155  int timeout;
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 
178 enum class ConnectionClose : unsigned char
179 {
184  Forcefully,
189  Gracefully,
194 };
195 
199 using HeaderDict = ::std::map<::std::string, ::std::string>;
200 
201 using Ice::operator<;
202 using Ice::operator<=;
203 using Ice::operator>;
204 using Ice::operator>=;
205 using Ice::operator==;
206 using Ice::operator!=;
207 
208 }
209 
210 namespace Ice
211 {
212 
217 class ICE_CLASS(ICE_API) ConnectionInfo
218 {
219 public:
220 
222 
223  ConnectionInfo() = default;
224 
225  ConnectionInfo(const ConnectionInfo&) = default;
229 
237  ConnectionInfo(const ::std::shared_ptr<::Ice::ConnectionInfo>& underlying, bool incoming, const ::std::string& adapterName, const ::std::string& connectionId) :
238  underlying(underlying),
239  incoming(incoming),
240  adapterName(adapterName),
241  connectionId(connectionId)
242  {
243  }
244 
249  ::std::shared_ptr<::Ice::ConnectionInfo> underlying;
254  bool incoming;
258  ::std::string adapterName;
262  ::std::string connectionId;
263 };
264 
271 using CloseCallback = ::std::function<void(const ::std::shared_ptr<Connection>& con)>;
272 
278 using HeartbeatCallback = ::std::function<void(const ::std::shared_ptr<Connection>& con)>;
279 
284 class ICE_CLASS(ICE_API) Connection
285 {
286 public:
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>();
385  flushBatchRequestsAsync(compress,
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 
459  virtual void setACM(const Ice::optional<int>& timeout, const Ice::optional<ACMClose>& close, const Ice::optional<ACMHeartbeat>& heartbeat) = 0;
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 {
517 public:
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) :
546  ConnectionInfo(underlying, incoming, adapterName, connectionId),
547  localAddress(localAddress),
548  localPort(localPort),
549  remoteAddress(remoteAddress),
550  remotePort(remotePort)
551  {
552  }
553 
557  ::std::string localAddress;
561  int localPort = -1;
565  ::std::string remoteAddress;
569  int remotePort = -1;
570 };
571 
576 class ICE_CLASS(ICE_API) TCPConnectionInfo : public ::Ice::IPConnectionInfo
577 {
578 public:
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) :
607  IPConnectionInfo(underlying, incoming, adapterName, connectionId, localAddress, localPort, remoteAddress, remotePort),
608  rcvSize(rcvSize),
609  sndSize(sndSize)
610  {
611  }
612 
616  int rcvSize = 0;
620  int sndSize = 0;
621 };
622 
627 class ICE_CLASS(ICE_API) UDPConnectionInfo : public ::Ice::IPConnectionInfo
628 {
629 public:
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) :
661  IPConnectionInfo(underlying, incoming, adapterName, connectionId, localAddress, localPort, remoteAddress, remotePort),
662  mcastAddress(mcastAddress),
663  mcastPort(mcastPort),
664  rcvSize(rcvSize),
665  sndSize(sndSize)
666  {
667  }
668 
672  ::std::string mcastAddress;
676  int mcastPort = -1;
680  int rcvSize = 0;
684  int sndSize = 0;
685 };
686 
691 class ICE_CLASS(ICE_API) WSConnectionInfo : public ::Ice::ConnectionInfo
692 {
693 public:
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) :
713  ConnectionInfo(underlying, incoming, adapterName, connectionId),
714  headers(headers)
715  {
716  }
717 
722 };
723 
724 }
725 
727 namespace Ice
728 {
729 
730 }
732 
734 namespace Ice
735 {
736 
737 using ConnectionInfoPtr = ::std::shared_ptr<ConnectionInfo>;
738 
739 using ConnectionPtr = ::std::shared_ptr<Connection>;
740 
741 using IPConnectionInfoPtr = ::std::shared_ptr<IPConnectionInfo>;
742 
743 using TCPConnectionInfoPtr = ::std::shared_ptr<TCPConnectionInfo>;
744 
745 using UDPConnectionInfoPtr = ::std::shared_ptr<UDPConnectionInfo>;
746 
747 using WSConnectionInfoPtr = ::std::shared_ptr<WSConnectionInfo>;
748 
749 }
751 
752 #else // C++98 mapping
753 
754 namespace Ice
755 {
756 
757 class ConnectionInfo;
759 ICE_API LocalObject* upCast(ConnectionInfo*);
761 typedef ::IceInternal::Handle< ConnectionInfo> ConnectionInfoPtr;
762 
763 class Connection;
765 ICE_API LocalObject* upCast(Connection*);
767 typedef ::IceInternal::Handle< Connection> ConnectionPtr;
768 
769 class CloseCallback;
771 ICE_API LocalObject* upCast(CloseCallback*);
773 typedef ::IceInternal::Handle< CloseCallback> CloseCallbackPtr;
774 
775 class HeartbeatCallback;
777 ICE_API LocalObject* upCast(HeartbeatCallback*);
779 typedef ::IceInternal::Handle< HeartbeatCallback> HeartbeatCallbackPtr;
780 
781 class IPConnectionInfo;
783 ICE_API LocalObject* upCast(IPConnectionInfo*);
785 typedef ::IceInternal::Handle< IPConnectionInfo> IPConnectionInfoPtr;
786 
787 class TCPConnectionInfo;
789 ICE_API LocalObject* upCast(TCPConnectionInfo*);
791 typedef ::IceInternal::Handle< TCPConnectionInfo> TCPConnectionInfoPtr;
792 
793 class UDPConnectionInfo;
795 ICE_API LocalObject* upCast(UDPConnectionInfo*);
797 typedef ::IceInternal::Handle< UDPConnectionInfo> UDPConnectionInfoPtr;
798 
799 class WSConnectionInfo;
801 ICE_API LocalObject* upCast(WSConnectionInfo*);
803 typedef ::IceInternal::Handle< WSConnectionInfo> WSConnectionInfoPtr;
804 
805 }
806 
807 namespace Ice
808 {
809 
813 enum CompressBatch
814 {
818  CompressBatchYes,
822  CompressBatchNo,
827  CompressBatchBasedOnProxy
828 };
829 
833 enum ACMClose
834 {
838  CloseOff,
842  CloseOnIdle,
847  CloseOnInvocation,
851  CloseOnInvocationAndIdle,
857 };
858 
862 enum ACMHeartbeat
863 {
867  HeartbeatOff,
871  HeartbeatOnDispatch,
875  HeartbeatOnIdle,
880 };
881 
886 struct 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 
976 enum ConnectionClose
977 {
982  ConnectionCloseForcefully,
987  ConnectionCloseGracefully,
991  ConnectionCloseGracefullyWithWait
992 };
993 
997 typedef ::std::map< ::std::string, ::std::string> HeaderDict;
998 
999 }
1000 
1001 namespace Ice
1002 {
1003 
1009 class Callback_Connection_flushBatchRequests_Base : public virtual ::IceInternal::CallbackBase { };
1010 typedef ::IceUtil::Handle< Callback_Connection_flushBatchRequests_Base> Callback_Connection_flushBatchRequestsPtr;
1011 
1017 class Callback_Connection_heartbeat_Base : public virtual ::IceInternal::CallbackBase { };
1018 typedef ::IceUtil::Handle< Callback_Connection_heartbeat_Base> Callback_Connection_heartbeatPtr;
1019 
1020 }
1021 
1022 namespace Ice
1023 {
1024 
1029 class ICE_API ConnectionInfo : public virtual LocalObject
1030 {
1031 public:
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 
1082 inline bool operator==(const ConnectionInfo& lhs, const ConnectionInfo& rhs)
1083 {
1084  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1085 }
1086 
1087 inline bool operator<(const ConnectionInfo& lhs, const ConnectionInfo& rhs)
1088 {
1089  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1090 }
1092 
1099 class ICE_API CloseCallback : public virtual LocalObject
1100 {
1101 public:
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 
1123 inline bool operator==(const CloseCallback& lhs, const CloseCallback& rhs)
1124 {
1125  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1126 }
1127 
1128 inline bool operator<(const CloseCallback& lhs, const CloseCallback& rhs)
1129 {
1130  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1131 }
1133 
1140 class ICE_API HeartbeatCallback : public virtual LocalObject
1141 {
1142 public:
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 
1163 inline bool operator==(const HeartbeatCallback& lhs, const HeartbeatCallback& rhs)
1164 {
1165  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1166 }
1167 
1168 inline bool operator<(const HeartbeatCallback& lhs, const HeartbeatCallback& rhs)
1169 {
1170  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1171 }
1173 
1178 class ICE_API Connection : public virtual LocalObject
1179 {
1180 public:
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 
1406 inline bool operator==(const Connection& lhs, const Connection& rhs)
1407 {
1408  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1409 }
1410 
1411 inline bool operator<(const Connection& lhs, const Connection& rhs)
1412 {
1413  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1414 }
1416 
1421 class ICE_API IPConnectionInfo : public ConnectionInfo
1422 {
1423 public:
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 
1482 inline bool operator==(const IPConnectionInfo& lhs, const IPConnectionInfo& rhs)
1483 {
1484  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1485 }
1486 
1487 inline bool operator<(const IPConnectionInfo& lhs, const IPConnectionInfo& rhs)
1488 {
1489  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1490 }
1492 
1497 class ICE_API TCPConnectionInfo : public IPConnectionInfo
1498 {
1499 public:
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 
1548 inline bool operator==(const TCPConnectionInfo& lhs, const TCPConnectionInfo& rhs)
1549 {
1550  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1551 }
1552 
1553 inline bool operator<(const TCPConnectionInfo& lhs, const TCPConnectionInfo& rhs)
1554 {
1555  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1556 }
1558 
1563 class ICE_API UDPConnectionInfo : public IPConnectionInfo
1564 {
1565 public:
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 
1627 inline bool operator==(const UDPConnectionInfo& lhs, const UDPConnectionInfo& rhs)
1628 {
1629  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1630 }
1631 
1632 inline bool operator<(const UDPConnectionInfo& lhs, const UDPConnectionInfo& rhs)
1633 {
1634  return static_cast<const LocalObject&>(lhs) < static_cast<const LocalObject&>(rhs);
1635 }
1637 
1642 class ICE_API WSConnectionInfo : public ConnectionInfo
1643 {
1644 public:
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 
1680 inline bool operator==(const WSConnectionInfo& lhs, const WSConnectionInfo& rhs)
1681 {
1682  return static_cast<const LocalObject&>(lhs) == static_cast<const LocalObject&>(rhs);
1683 }
1684 
1685 inline 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 
1694 namespace Ice
1695 {
1696 
1697 }
1699 
1700 #endif
1701 
1703 #endif
Ice::ConnectionInfo::operator=
ConnectionInfo & operator=(ConnectionInfo &&)=default
Ice::Connection::heartbeatAsync
virtual ::std::function< void()> heartbeatAsync(::std::function< void(::std::exception_ptr)> exception, ::std::function< void(bool)> sent=nullptr)=0
Send a heartbeat message.
Ice::IPConnectionInfo::~IPConnectionInfo
virtual ~IPConnectionInfo()
Ice::operator!=
bool operator!=(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition: Comparable.h:196
Ice::Connection::heartbeatAsync
auto heartbeatAsync() -> decltype(::std::declval< P< void >>().get_future())
Send a heartbeat message.
Definition: Connection.h:437
Ice::LocalObjectPtr
IceInternal::Handle< LocalObject > LocalObjectPtr
Definition: LocalObjectF.h:17
Optional.h
Ice::UDPConnectionInfo::operator=
UDPConnectionInfo & operator=(const UDPConnectionInfo &)=default
ICE_CLASS
#define ICE_CLASS(API)
Definition: Config.h:176
Ice::UDPConnectionInfo::operator=
UDPConnectionInfo & operator=(UDPConnectionInfo &&)=default
Ice::TCPConnectionInfo::TCPConnectionInfo
TCPConnectionInfo(const TCPConnectionInfo &)=default
Ice::WSConnectionInfo::WSConnectionInfo
WSConnectionInfo(WSConnectionInfo &&)=default
Ice::IPConnectionInfo::operator=
IPConnectionInfo & operator=(const IPConnectionInfo &)=default
Ice::Connection::~Connection
virtual ~Connection()
StreamHelpers.h
IceUtil::Optional
std::experimental::Ice::optional< T > Optional
For compatibility with the Ice C++98 mapping, do not use in new code:
Definition: Optional.h:1100
Ice::operator==
bool operator==(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition: Comparable.h:184
Ice::WSConnectionInfo::operator=
WSConnectionInfo & operator=(const WSConnectionInfo &)=default
Ice::upCast
IceUtil::Shared * upCast(::Ice::LocalObject *)
Ice::Connection::getACM
virtual ::Ice::ACM getACM() noexcept=0
Get the ACM parameters.
Ice::Endpoint
The user-level interface to an endpoint.
Definition: Endpoint.h:194
Ice::ACM::ice_tuple
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::IPConnectionInfo::IPConnectionInfo
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
Ice::Connection::heartbeat
virtual void heartbeat()
Send a heartbeat message.
Definition: Connection.h:417
OutgoingAsync.h
ICE_NOEXCEPT
#define ICE_NOEXCEPT
Definition: Config.h:128
Ice::Connection::createProxy
virtual ::std::shared_ptr<::Ice::ObjectPrx > createProxy(const Identity &id) const =0
Create a special proxy that always uses this connection.
Ice::UDPConnectionInfo
Provides access to the connection details of a UDP connection.
Definition: Connection.h:628
IceUtil
Definition: Optional.h:1095
Ice::ConnectionInfo::ConnectionInfo
ConnectionInfo(ConnectionInfo &&)=default
Ice::UDPConnectionInfo::UDPConnectionInfo
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
ICE_API
#define ICE_API
Definition: Config.h:197
Ice::UDPConnectionInfo::UDPConnectionInfo
UDPConnectionInfo(const UDPConnectionInfo &)=default
Ice::Connection::setCloseCallback
virtual void setCloseCallback(CloseCallback callback)=0
Set a close callback on the connection.
ICE_MEMBER
#define ICE_MEMBER(API)
Definition: Config.h:177
Ice::operator<=
bool operator<=(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition: Comparable.h:148
Ice::ConnectionInfo
Base class providing access to the connection details.
Definition: Connection.h:218
Ice::Connection
The user-level interface to a connection.
Definition: Connection.h:285
Ice::HeaderDict
::std::map<::std::string, ::std::string > HeaderDict
A collection of HTTP headers.
Definition: Connection.h:199
Ice::WSConnectionInfo::~WSConnectionInfo
virtual ~WSConnectionInfo()
Ice::IPConnectionInfo::IPConnectionInfo
IPConnectionInfo(const IPConnectionInfo &)=default
Ice::operator>=
bool operator>=(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition: Comparable.h:172
Ice::Connection::setACM
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.
Ice::Connection::getAdapter
virtual ::std::shared_ptr<::Ice::ObjectAdapter > getAdapter() const noexcept=0
Get the object adapter that dispatches requests for this connection.
Ice::ACM::timeout
int timeout
A timeout value in seconds.
Definition: Connection.h:155
LocalObject.h
PushDisableWarnings.h
Ice::IPConnectionInfo
Provides access to the connection details of an IP connection.
Definition: Connection.h:516
Ice::TCPConnectionInfo::TCPConnectionInfo
TCPConnectionInfo()
Definition: Connection.h:582
Ice::TCPConnectionInfo::~TCPConnectionInfo
virtual ~TCPConnectionInfo()
Ice::ACMHeartbeat::HeartbeatOff
@ HeartbeatOff
Disables heartbeats.
ProxyF.h
Ice::operator<
bool operator<(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition: Comparable.h:136
Ice::WSConnectionInfo::headers
::Ice::HeaderDict headers
The headers from the HTTP upgrade request.
Definition: Connection.h:721
Ice::UDPConnectionInfo::UDPConnectionInfo
UDPConnectionInfo(UDPConnectionInfo &&)=default
Ice::IPConnectionInfo::IPConnectionInfo
IPConnectionInfo(IPConnectionInfo &&)=default
Ice::IPConnectionInfo::remoteAddress
::std::string remoteAddress
The remote address.
Definition: Connection.h:565
Ice::ConnectionClose::Forcefully
@ Forcefully
Close the connection immediately without sending a close connection protocol message to the peer and ...
Ice::IPConnectionInfo::operator=
IPConnectionInfo & operator=(IPConnectionInfo &&)=default
Ice::TCPConnectionInfo::TCPConnectionInfo
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
UndefSysMacros.h
Ice::ConnectionInfo::ConnectionInfo
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
Ice::CloseCallback
::std::function< void(const ::std::shared_ptr< Connection > &con)> CloseCallback
This method is called by the the connection when the connection is closed.
Definition: Connection.h:271
Ice::UDPConnectionInfo::UDPConnectionInfo
UDPConnectionInfo()
Definition: Connection.h:633
Ice::ConnectionInfo::incoming
bool incoming
Whether or not the connection is an incoming or outgoing connection.
Definition: Connection.h:254
Ice::ConnectionInfo::connectionId
::std::string connectionId
The connection id.
Definition: Connection.h:262
Ice::WSConnectionInfo::WSConnectionInfo
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::ACM::close
::Ice::ACMClose close
The close semantics.
Definition: Connection.h:159
ObjectF.h
Ice::Connection::flushBatchRequestsAsync
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.
Ice::operator>
bool operator>(const C &lhs, const C &rhs)
Relational operator for generated structs and classes.
Definition: Comparable.h:160
Ice::ConnectionInfo::underlying
::std::shared_ptr<::Ice::ConnectionInfo > underlying
The information of the underyling transport or null if there's no underlying transport.
Definition: Connection.h:249
Ice
Definition: BuiltinSequences.h:56
Ice::ConnectionInfo::ConnectionInfo
ConnectionInfo(const ConnectionInfo &)=default
Ice::ACMHeartbeat
ACMHeartbeat
Specifies the heartbeat semantics for Active Connection Management.
Definition: Connection.h:127
Ice::Connection::close
virtual void close(ConnectionClose mode) noexcept=0
Manually close the connection using the specified closure mode.
Identity.h
Ice::ConnectionClose
ConnectionClose
Determines the behavior when manually closing a connection.
Definition: Connection.h:179
Ice::WSConnectionInfo::WSConnectionInfo
WSConnectionInfo(const WSConnectionInfo &)=default
Ice::Connection::setAdapter
virtual void setAdapter(const ::std::shared_ptr< ObjectAdapter > &adapter)=0
Explicitly set an object adapter that dispatches requests that are received over this connection.
Ice::ACM::heartbeat
::Ice::ACMHeartbeat heartbeat
The heartbeat semantics.
Definition: Connection.h:163
Ice::Connection::flushBatchRequestsAsync
auto flushBatchRequestsAsync(CompressBatch compress) -> decltype(::std::declval< P< void >>().get_future())
Flush any pending batch requests for this connection.
Definition: Connection.h:380
Ice::TCPConnectionInfo
Provides access to the connection details of a TCP connection.
Definition: Connection.h:577
Ice::Connection::setHeartbeatCallback
virtual void setHeartbeatCallback(HeartbeatCallback callback)=0
Set a heartbeat callback on the connection.
Ice::ConnectionInfo::adapterName
::std::string adapterName
The name of the adapter associated with the connection.
Definition: Connection.h:258
Ice::CompressBatch::Yes
@ Yes
Compress the batch requests.
Ice::ConnectionInfo::operator=
ConnectionInfo & operator=(const ConnectionInfo &)=default
Ice::WSConnectionInfo::operator=
WSConnectionInfo & operator=(WSConnectionInfo &&)=default
Comparable.h
ScopedArray.h
Ice::TCPConnectionInfo::operator=
TCPConnectionInfo & operator=(const TCPConnectionInfo &)=default
Ice::ACMClose
ACMClose
Specifies the close semantics for Active Connection Management.
Definition: Connection.h:98
Ice::WSConnectionInfo
Provides access to the connection details of a WebSocket connection.
Definition: Connection.h:692
Ice::CompressBatch
CompressBatch
The batch compression option when flushing queued batch requests.
Definition: Connection.h:78
Ice::Identity
The identity of an Ice object.
Definition: Identity.h:67
Exception.h
ValueF.h
Ice::ACM
A collection of Active Connection Management configuration settings.
Definition: Connection.h:151
Ice::optional
std::experimental::Ice::optional< T > optional
Ice::optional is a placeholder for std::optional.
Definition: Optional.h:1065
Ice::ConnectionInfo::~ConnectionInfo
virtual ~ConnectionInfo()
Ice::ACMClose::CloseOff
@ CloseOff
Disables automatic connection closure.
Ice::TCPConnectionInfo::operator=
TCPConnectionInfo & operator=(TCPConnectionInfo &&)=default
Ice::IPConnectionInfo::localAddress
::std::string localAddress
The local address.
Definition: Connection.h:557
Ice::Int
int Int
The mapping for the Slice int type.
Definition: Config.h:54
Ice::IPConnectionInfo::IPConnectionInfo
IPConnectionInfo()
Definition: Connection.h:521
Ice::ConnectionInfo::ConnectionInfo
ConnectionInfo()=default
Ice::TCPConnectionInfo::TCPConnectionInfo
TCPConnectionInfo(TCPConnectionInfo &&)=default
Ice::UDPConnectionInfo::mcastAddress
::std::string mcastAddress
The multicast address.
Definition: Connection.h:672
Ice::WSConnectionInfo::WSConnectionInfo
WSConnectionInfo()=default
ObjectAdapterF.h
Ice::UDPConnectionInfo::~UDPConnectionInfo
virtual ~UDPConnectionInfo()
Endpoint.h
PopDisableWarnings.h
Ice::HeartbeatCallback
::std::function< void(const ::std::shared_ptr< Connection > &con)> HeartbeatCallback
This method is called by the the connection when a heartbeat is received from the peer.
Definition: Connection.h:278