view sources/headers/network.hpp @ 5:0faceb076254

code clean up added PID to the default Core argument bool => true|false
author Vlad Glagolev <enqlave@gmail.com>
date Thu, 24 Jan 2008 21:00:52 +0300
parents a7051ac7118b
children 9be05a31b7f9
line wrap: on
line source

/**
 * network.hpp (2007-04-02)
 *
 * -- CABAL -- network header
 *
 * Copyright (c) 2007-2008 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_HPP_
#define _NETWORK_HPP_

#include "core.hpp"

class Network
{
public:
	Network();
	~Network();

	void sendMsg(string);
	string receiveMsg();

	int cs;

	struct address_type {
		int inet;
		struct sockaddr_in sa;
#ifdef ENABLE_IPV6
		struct sockaddr_in6 sa6;
#endif
	} address;

	bool closeSocket();

	bool openHost();
	bool resolveHost(pchar, address_type *, int inet = 0);
	bool activateTCP(int, pchar host = 0);

	int canRead(int);
	int canWrite(int);

	fd_set rs, ws;
	timeval timeout;

	bool connecting, connected;
};

#endif // _NETWORK_HPP_