All pastes #297355 Raw Edit

Someone

public cpp v1 · immutable
#297355 ·published 2006-12-31 00:55 UTC
rendered paste body
#include <boost/bind.hpp>#include <iostream>#include "server.hpp"using asio::ip::tcp;void Server::start(void){	ClientSocket* new_client = new ClientSocket(io_service_);    acceptor_.async_accept(new_client->socket(),    	boost::bind(&Server::handle_accept, this, new_client,        	asio::placeholders::error));}void Server::stop(void){	acceptor_.close();}void Server::handle_accept(ClientSocket* new_client, const asio::error& error){	if (!error)    {		clients.push_back(new_client);		asio::async_read_until(new_client->socket(), buffer, '\n', 			boost::bind(&Server::handle_read, this, new_client, 				asio::placeholders::error, asio::placeholders::bytes_transferred));			ClientSocket* new_client = new ClientSocket(io_service_);	    acceptor_.async_accept(new_client->socket(),	    	boost::bind(&Server::handle_accept, this, new_client,	        	asio::placeholders::error));    }    else    {      delete new_client;    }}void Server::promoteStringToClients(std::string str){	std::vector<ClientSocket*>::iterator i;	for (i=clients.begin(); i != clients.end(); ++i) 	{		this.writeStringToSocket((*i)->socket(), str);	}}	void Server::writeStringToSocket(asio::ip::tcp::socket& sock, std::string str){	asio::async_write(sock, asio::buffer(str.c_str(), str.size()),	          boost::bind(&Server::handle_write, this,	          asio::placeholders::error, asio::placeholders::bytes_transferred));}void Server::handle_write(const asio::error& error, std::size_t bytes_transferred){	if (!error)	{		std::vector<ClientSocket*>::iterator i;		for (i=clients.begin(); i != clients.end(); ++i) 		{			asio::async_read_until((*i)->socket(), buffer, '\n', 				boost::bind(&Server::handle_read, this, *i,					asio::placeholders::error, asio::placeholders::bytes_transferred));		}	}}/*int main(int argc, char* argv[]){	try	{		asio::io_service io_service;		Server s(io_service, 1338);		s.start();		io_service.run();	}  	catch (asio::error& e)  	{    	std::cerr << e << "\n";  	}  	catch (std::exception& e)  	{    	std::cerr << "Exception: " << e.what() << "\n";  	}	return 0;}*/