19 #ifndef INCLUDE_RCF_TIMEDBSDSOCKETS_HPP
20 #define INCLUDE_RCF_TIMEDBSDSOCKETS_HPP
22 #include <RCF/ByteBuffer.hpp>
23 #include <RCF/ClientProgress.hpp>
24 #include <RCF/Export.hpp>
25 #include <RCF/util/Platform/OS/BsdSockets.hpp>
29 class I_PollingFunctor
32 virtual ~I_PollingFunctor() {}
33 virtual int operator()(
int,
int &,
bool) = 0;
36 class PollingFunctor :
public I_PollingFunctor
40 ClientProgressPtr clientProgressPtr,
41 ClientProgress::Activity activity,
42 unsigned int endTimeMs);
44 int operator()(
int fd,
int &err,
bool bRead);
47 ClientProgressPtr mClientProgressPtr;
48 ClientProgress::Activity mActivity;
49 unsigned int mEndTimeMs;
53 RCF_EXPORT
int pollSocket(
54 unsigned int endTimeMs,
60 RCF_EXPORT
int pollSocketWithProgress(
61 ClientProgressPtr ClientProgressPtr,
62 ClientProgress::Activity activity,
63 unsigned int endTimeMs,
72 RCF_EXPORT
int timedConnect(
73 I_PollingFunctor &pollingFunctor,
80 RCF_EXPORT
int timedSend(
81 I_PollingFunctor &pollingFunctor,
84 const std::vector<ByteBuffer> &byteBuffers,
85 std::size_t maxSendSize,
88 class BsdClientTransport;
91 RCF_EXPORT
int timedRecv(
92 BsdClientTransport &clientTransport,
93 I_PollingFunctor &pollingFunctor,
96 const ByteBuffer &byteBuffer,
97 std::size_t bytesRequested,
100 RCF_EXPORT
bool isFdConnected(
int fd);
102 std::pair<std::string, std::vector<std::string> > getLocalIps();
107 #endif // ! INCLUDE_RCF_TIMEDBSDSOCKETS_HPP