X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fconnection.hxx;fp=src%2Fconnection.hxx;h=9142c522e68ef522781077cc6976a1c5cf79b03f;hp=0000000000000000000000000000000000000000;hb=a11e19b7adab2d5b937573701959562f06087ac5;hpb=5816531135da09aceb7a026eeade735cbd20ef03 diff --git a/src/connection.hxx b/src/connection.hxx new file mode 100644 index 0000000..9142c52 --- /dev/null +++ b/src/connection.hxx @@ -0,0 +1,64 @@ +/*************************************************************************** + * Copyright (C) 2006 by Gerd v. Egidy * + * gve@intra2net.com * + * * + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library 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 Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser 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 __LIBT2N_CONNECTION +#define __LIBT2N_CONNECTION + +#include + +namespace libt2n +{ + +class connection +{ + private: + bool closed; + + protected: + connection() + { closed=false; } + + std::string buffer; + + typedef unsigned int packet_size_indicator; + + packet_size_indicator bytes_available(); + + virtual void real_write(const std::string& data)=0; + + public: + ~connection() + { close(); } + + bool is_closed() + { return closed; } + + virtual void close() + { closed=true; } + + virtual void fill_buffer(long long usec_timeout=-1)=0; + bool get_packet(std::string& data); + bool packet_available() + { return bytes_available(); } + + void write(const std::string& data); +}; + +} + +#endif