Mercurial > cabal
diff sources/headers/network.h @ 0:bafff9de2a76
Initial commit since summer'07
| author | Vlad Glagolev <enqlave@gmail.com> |
|---|---|
| date | Sun, 20 Jan 2008 19:25:25 +0300 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/headers/network.h Sun Jan 20 19:25:25 2008 +0300 @@ -0,0 +1,61 @@ +/** + * network.h (2007-04-02) + * + * -- CABAL -- network header + * + * Copyright (c) 2007 Vlad Glagolev <enqlave@gmail.com> + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _NETWORK_H_ +#define _NETWORK_H_ + +#include "core.h" + +class Network { + +public: + Network(); + ~Network(); + + void msgSend(string); + string msgReceive(); + + int cs; + + struct address_type { + int inet; + struct sockaddr_in sa; +#ifdef ENABLE_IPV6 + struct sockaddr_in6 sa6; +#endif + } address; + + bool socketClose(); + + bool hostResolve(pchar, address_type *, int inet = 0); + bool tcpActivate(int, pchar host = 0); + bool hostOpen(); + + int canRead(int); + int canWrite(int); + + fd_set rs, ws; + timeval timeout; + + bool connecting, connected; +}; + +#endif // _NETWORK_H_
