From 75007da068aac10fed90fc5234ab2d50deed3e61 Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Thu, 1 Mar 2001 00:22:23 +0000 Subject: Modified icons. Started NLS support. Added kpsion KDE2 application. Unified file-headers. --- lib/ppsocket.h | 389 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 209 insertions(+), 180 deletions(-) (limited to 'lib/ppsocket.h') diff --git a/lib/ppsocket.h b/lib/ppsocket.h index b8f7ebe..05593d3 100644 --- a/lib/ppsocket.h +++ b/lib/ppsocket.h @@ -1,3 +1,26 @@ +/*-*-c++-*- + * $Id$ + * + * This file is part of plptools. + * + * Copyright (C) 1999 Philip Proudman + * Copyright (C) 1999-2001 Fritz Elfert + * + * This program 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ #ifndef _PPSOCKET_H_ #define _PPSOCKET_H_ @@ -17,189 +40,195 @@ class ppsocket { public: - /** - * Constructs a ppsocket - */ - ppsocket(); - - /** - * Copy constructor - */ - ppsocket(const ppsocket&); - - /** - * Destructor - */ - virtual ~ppsocket(); + /** + * Constructs a ppsocket + */ + ppsocket(); + + /** + * Copy constructor + */ + ppsocket(const ppsocket&); + + /** + * Destructor + */ + virtual ~ppsocket(); - /** - * Connects to a given host. - * - * @param Peer The Host to connect to (name or dotquad-string). - * @param PeerPort The port to connect to. - * @param Host The local address to bind to. - * @param HostPort The local port to bind to. - * - * @returns true on success, false otherwise. - */ - virtual bool connect(const char * const Peer, int PeerPort, const char * const Host = NULL, int HostPort = 0); - - /** - * Reopens the connection after closing it. - * - * @returns true on success, false otherwise. - */ - virtual bool reconnect(); - - /** - * Retrieve a string representation of the ppsocket. - * - * @returns a string in the form ": -> :" - * where elements not known, are replaced by "???" and none-existing - * elements are represented by the word "none". - */ - virtual string toString(); - - /** - * Starts listening. - * - * @param Host The local address to bind to. - * @param Port The local port to listen on. - * - * @returns true on success, false otherwise. - */ - virtual bool listen(const char * const Host, int Port); - - /** - * Accept a connection. - * - * @param Peer If non-Null, the peer's name is returned here. - * - * @returns A pointer to a new instance for the accepted connection or NULL - * if an error happened. - */ - ppsocket *accept(string *Peer); - - /** - * Check and optionally wait for incoming data. - * - * @param sec Timeout in seconds - * @param usec Timeout in microseconds - * - * @returns true if data is available, false otherwise. - */ - bool dataToGet(int sec, int usec) const; - - /** - * Receive data into a @ref bufferStore . - * - * @param a The bufferStore to fill with received data. - * @param wait If true, wait until something is received, else return - * if no data is available. - * @returns 1 if a bufferStore received, 0, if no bufferStore received, -1 - * on error. - */ - int getBufferStore(bufferStore &a, bool wait = true); - - /** - * Sends data from a @ref bufferStore . - * - * @param a The bufferStore to send. - * @returns true on success, false otherwise. - */ - bool sendBufferStore(const bufferStore &a); - - /** - * Closes the connection. - * - * @returns true on success, false otherwise. - */ - bool closeSocket(void); - - /** - * Binds to a local address and port. - * - * @param Host The local address to bind to. - * @param Port The local port to listen on. - * - * @returns true on success, false otherwise. - */ - bool bindSocket(const char * const Host, int Port); - - /** - * Tries repeated binds to a local address and port. - * If @p Retries is <= @p High - @p Low, then - * the port to bind is randomly chosen in the given range. - * Otherwise, all ports starting from @p High up to @p Low - * are tried in sequence. - * - * @param Host The local address to bind to. - * @param Low The lowest local port to listen on. - * @param High The highest local port to listen on. - * @param Retries The number of retries until giving up. - * - * @returns true on success, false otherwise. - */ - bool bindInRange(const char * const Host, int Low, int High, int Retries); - - /** - * Sets the linger parameter of the socket. - * - * @param LingerOn true, if lingering should be on. - * @param LingerTime If lingering is on, the linger-time. - * - * @returns true on success, false otherwise. - */ - bool linger(bool LingerOn, int LingerTime = 0); - - /** - * Retrieves peer information. - * - * @param Peer The peers name is returned here. - * @param Port The peers port is returned here. - * - * @returns true on success, false otherwise. - */ - bool getPeer(string *Peer, int *Port); - - /** - * Retrieves local information. - * - * @param Host The local name is returned here. - * @param Port The local port is returned here. - * - * @returns true on success, false otherwise. - */ - bool getHost(string *Host, int *Port); - - /** - * Registers an @ref IOWatch for this socket. - * This IOWatch gets the socket added/removed - * automatically. - * - * @param watch The IOWatch to register. - */ - void setWatch(IOWatch *watch); + /** + * Connects to a given host. + * + * @param Peer The Host to connect to (name or dotquad-string). + * @param PeerPort The port to connect to. + * @param Host The local address to bind to. + * @param HostPort The local port to bind to. + * + * @returns true on success, false otherwise. + */ + virtual bool connect(const char * const Peer, int PeerPort, const char * const Host = NULL, int HostPort = 0); + + /** + * Reopens the connection after closing it. + * + * @returns true on success, false otherwise. + */ + virtual bool reconnect(); + + /** + * Retrieve a string representation of the ppsocket. + * + * @returns a string in the form ": -> :" + * where elements not known, are replaced by "???" and none-existing + * elements are represented by the word "none". + */ + virtual string toString(); + + /** + * Starts listening. + * + * @param Host The local address to bind to. + * @param Port The local port to listen on. + * + * @returns true on success, false otherwise. + */ + virtual bool listen(const char * const Host, int Port); + + /** + * Accept a connection. + * + * @param Peer If non-Null, the peer's name is returned here. + * + * @returns A pointer to a new instance for the accepted connection or NULL + * if an error happened. + */ + ppsocket *accept(string *Peer); + + /** + * Check and optionally wait for incoming data. + * + * @param sec Timeout in seconds + * @param usec Timeout in microseconds + * + * @returns true if data is available, false otherwise. + */ + bool dataToGet(int sec, int usec) const; + + /** + * Receive data into a @ref bufferStore . + * + * @param a The bufferStore to fill with received data. + * @param wait If true, wait until something is received, else return + * if no data is available. + * @returns 1 if a bufferStore received, 0, if no bufferStore received, -1 + * on error. + */ + int getBufferStore(bufferStore &a, bool wait = true); + + /** + * Sends data from a @ref bufferStore . + * + * @param a The bufferStore to send. + * @returns true on success, false otherwise. + */ + bool sendBufferStore(const bufferStore &a); + + /** + * Closes the connection. + * + * @returns true on success, false otherwise. + */ + bool closeSocket(void); + + /** + * Binds to a local address and port. + * + * @param Host The local address to bind to. + * @param Port The local port to listen on. + * + * @returns true on success, false otherwise. + */ + bool bindSocket(const char * const Host, int Port); + + /** + * Tries repeated binds to a local address and port. + * If @p Retries is <= @p High - @p Low, then + * the port to bind is randomly chosen in the given range. + * Otherwise, all ports starting from @p High up to @p Low + * are tried in sequence. + * + * @param Host The local address to bind to. + * @param Low The lowest local port to listen on. + * @param High The highest local port to listen on. + * @param Retries The number of retries until giving up. + * + * @returns true on success, false otherwise. + */ + bool bindInRange(const char * const Host, int Low, int High, int Retries); + + /** + * Sets the linger parameter of the socket. + * + * @param LingerOn true, if lingering should be on. + * @param LingerTime If lingering is on, the linger-time. + * + * @returns true on success, false otherwise. + */ + bool linger(bool LingerOn, int LingerTime = 0); + + /** + * Retrieves peer information. + * + * @param Peer The peers name is returned here. + * @param Port The peers port is returned here. + * + * @returns true on success, false otherwise. + */ + bool getPeer(string *Peer, int *Port); + + /** + * Retrieves local information. + * + * @param Host The local name is returned here. + * @param Port The local port is returned here. + * + * @returns true on success, false otherwise. + */ + bool getHost(string *Host, int *Port); + + /** + * Registers an @ref IOWatch for this socket. + * This IOWatch gets the socket added/removed + * automatically. + * + * @param watch The IOWatch to register. + */ + void setWatch(IOWatch *watch); - private: - /** - * Creates the socket. - */ - virtual bool createSocket(void); - - int getLastError(void) { return(m_LastError); } - bool setPeer(const char * const Peer, int Port); - bool setHost(const char * const Host, int Port); - int recv(void *buf, int len, int flags); - int send(const void * const buf, int len, int flags); +private: + /** + * Creates the socket. + */ + virtual bool createSocket(void); + + int getLastError(void) { return(m_LastError); } + bool setPeer(const char * const Peer, int Port); + bool setHost(const char * const Host, int Port); + int recv(void *buf, int len, int flags); + int send(const void * const buf, int len, int flags); - struct sockaddr m_HostAddr; - struct sockaddr m_PeerAddr; - int m_Socket; - int m_Port; - bool m_Bound; - int m_LastError; - IOWatch *myWatch; + struct sockaddr m_HostAddr; + struct sockaddr m_PeerAddr; + int m_Socket; + int m_Port; + bool m_Bound; + int m_LastError; + IOWatch *myWatch; }; #endif + +/* + * Local variables: + * c-basic-offset: 4 + * End: + */ -- cgit v1.2.3