38 enum BufferedSocketState
53 enum BufferedSocketError
98 :
Timer(secs_from_now)
106 bool Tick(time_t now) CXX11_OVERRIDE;
138 bool empty()
const {
return (nbytes == 0); }
143 Container::size_type
size()
const {
return data.size(); }
148 size_t bytes()
const {
return nbytes; }
171 nbytes -= data.front().length();
181 data.front().erase(0, n);
189 data.push_front(newdata);
190 nbytes += newdata.length();
198 data.push_back(newdata);
199 nbytes += newdata.length();
212 nbytes += other.
bytes();
213 data.insert(data.end(), other.data.begin(), other.data.end());
254 void CheckError(BufferedSocketError err);
264 void FlushSendQ(SendQueue& sq);
270 int ReadToRecvQ(std::string& rq);
280 int HookChainRead(
IOHook* hook, std::string& rq);
294 : closeonempty(false)
300 IOHook* GetIOHook()
const;
301 void AddIOHook(
IOHook* hook);
314 void OnEventHandlerWrite() CXX11_OVERRIDE;
319 void OnEventHandlerError(
int errcode) CXX11_OVERRIDE;
322 void SetError(const std::
string& err) {
if (error.empty()) error = err; }
325 const std::string&
getError()
const {
return error; }
328 virtual void OnDataReady() = 0;
330 virtual void OnError(BufferedSocketError e) = 0;
341 void WriteData(
const std::string& data);
347 bool GetNextLine(std::string& line,
char delim =
'\n');
349 size_t getSendQSize()
const;
351 SendQueue& GetSendQ() {
return sendq; }
356 virtual void Close();
359 void Close(
bool writeblock);
373 IOHook* GetLastHook() const;
421 virtual void OnConnected();
426 void OnDataReady() CXX11_OVERRIDE = 0;
437 virtual
void OnTimeout();
441 void OnEventHandlerWrite() CXX11_OVERRIDE;
442 BufferedSocketError BeginConnect(const
irc::sockets::sockaddrs& dest, const
irc::sockets::sockaddrs& bind,
unsigned int timeout);
446 inline void StreamSocket::DelIOHook() { iohook = NULL; }
void push_back(const Element &newdata)
Definition: inspsocket.h:196
Container::const_iterator const_iterator
Definition: inspsocket.h:131
SocketTimeout(int fd, BufferedSocket *thesock, unsigned int secs_from_now)
Definition: inspsocket.h:97
BufferedSocketState state
Definition: inspsocket.h:396
void clear()
Definition: inspsocket.h:204
virtual bool Tick(time_t TIME)=0
virtual CullResult cull()
Definition: base.cpp:41
Definition: socketengine.h:157
const std::string & getError() const
Definition: inspsocket.h:325
void erase_front(Element::size_type n)
Definition: inspsocket.h:178
Type
Definition: inspsocket.h:228
Definition: inspsocket.h:113
size_t bytes() const
Definition: inspsocket.h:148
std::deque< Element > Container
Definition: inspsocket.h:127
std::string recvq
Definition: inspsocket.h:284
void push_front(const Element &newdata)
Definition: inspsocket.h:187
const Element & front() const
Definition: inspsocket.h:153
Definition: inspsocket.h:384
Definition: inspsocket.h:80
Container::size_type size() const
Definition: inspsocket.h:143
const_iterator end() const
Definition: inspsocket.h:165
Definition: modules.h:316
void pop_front()
Definition: inspsocket.h:169
bool empty() const
Definition: inspsocket.h:138
SocketTimeout * Timeout
Definition: inspsocket.h:389
std::string Element
Definition: inspsocket.h:123
Definition: hashcomp.h:75
void SwapInternals(EventHandler &other)
Definition: socketengine.cpp:58
virtual void OnEventHandlerRead()=0
const_iterator begin() const
Definition: inspsocket.h:160
Definition: inspsocket.h:118