X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspsocket.h;h=f00d6a96ae744c2463d10f684414b7895d3c6de9;hb=553a8da754c8cd308bad2008018849714e70f9b7;hp=73aa748a0326384f50627166614d2e9c61eb4407;hpb=e2af2347fc035d702e45f12e772223a8d578410d;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspsocket.h b/include/inspsocket.h index 73aa748a0..f00d6a96a 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -1,18 +1,28 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2007-2008 Robin Burchell + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006-2007 Craig Edwards + * Copyright (C) 2006 Oliver Lupton * - * This program is free but copyrighted software; see - * the file COPYING for details. + * This file is part of InspIRCd. InspIRCd is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef __INSP_SOCKET_H__ -#define __INSP_SOCKET_H__ + +#ifndef INSPSOCKET_H +#define INSPSOCKET_H #include "timer.h" @@ -94,7 +104,7 @@ class CoreExport SocketTimeout : public Timer class CoreExport StreamSocket : public EventHandler { /** Module that handles raw I/O for this socket, or NULL */ - Module *IOHook; + reference IOHook; /** Private send queue. Note that individual strings may be shared */ std::deque sendq; @@ -105,10 +115,10 @@ class CoreExport StreamSocket : public EventHandler protected: std::string recvq; public: - StreamSocket() : IOHook(NULL), sendq_len(0) {} - inline Module* GetIOHook() { return IOHook; } - inline void AddIOHook(Module* m) { IOHook = m; } - inline void DelIOHook() { IOHook = NULL; } + StreamSocket() : sendq_len(0) {} + inline Module* GetIOHook(); + inline void AddIOHook(Module* m); + inline void DelIOHook(); /** Handle event from socket engine. * This will call OnDataReady if there is *new* data in recvq */ @@ -146,7 +156,7 @@ class CoreExport StreamSocket : public EventHandler */ virtual void Close(); /** This ensures that close is called prior to destructor */ - virtual void cull(); + virtual CullResult cull(); }; /** * BufferedSocket is an extendable socket class which modules @@ -219,4 +229,9 @@ class CoreExport BufferedSocket : public StreamSocket BufferedSocketError BeginConnect(const std::string &ipaddr, int aport, unsigned long maxtime, const std::string &connectbindip); }; +#include "modules.h" + +inline Module* StreamSocket::GetIOHook() { return IOHook; } +inline void StreamSocket::AddIOHook(Module* m) { IOHook = m; } +inline void StreamSocket::DelIOHook() { IOHook = NULL; } #endif