24#ifndef PROTO_CONNEXION_HPP
25#define PROTO_CONNEXION_HPP
33#include "exceptions.hpp"
61 status get_status()
const {
return etat; };
62 const std::string & get_ip()
const {
return ip; };
63 unsigned int get_port()
const {
return port; };
80 void write(
const char *a,
unsigned int size);
89 virtual void write_impl(
const char *a,
unsigned int size) = 0;
92 virtual unsigned int read_impl(
char *a,
unsigned int size,
bool blocking) = 0;
103 unsigned buffer_size;
105 unsigned int already_read;
106 unsigned int data_size;
109 unsigned out_buf_size;
111 unsigned int last_unwrote;
114 void fill_buffer(
bool blocking);
buffers data from a TCP connexion, this is a pure virtual class
Definition: proto_connexion.hpp:41
char read_test_second(bool blocking)
Definition: proto_connexion.cpp:116
virtual unsigned int read_impl(char *a, unsigned int size, bool blocking)=0
implementation of the low level (without buffering) reading operation
void flush_write()
flush pending writings if any
Definition: proto_connexion.cpp:144
void set_status(status st)
let inherited class modifying the object status
Definition: proto_connexion.hpp:95
proto_connexion(const proto_connexion &ref)=delete
forbidding copy constuctor and assignment operator
virtual void write_impl(const char *a, unsigned int size)=0
implementation of the low level (without buffering) writing operation
void write(const char *a, unsigned int size)
write data
Definition: proto_connexion.cpp:127
char read_one(bool blocking)
extracts one byte form the buffer / exception thrown if not available
Definition: proto_connexion.cpp:96
char read_test_first(bool blocking)
Definition: proto_connexion.cpp:106
virtual ~proto_connexion()
destructor
Definition: proto_connexion.cpp:88
proto_connexion(const std::string &peerip, unsigned int peerport)
constructor
Definition: proto_connexion.cpp:55