00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef KSOCKETBUFFER_P_H
00026
#define KSOCKETBUFFER_P_H
00027
00028
#include <qmutex.h>
00029
#include <qcstring.h>
00030
#include <qvaluelist.h>
00031
#include "kiobuffer.h"
00032
00033
namespace KNetwork {
00034
00035
class KActiveSocketBase;
00036
00037
namespace Internal {
00038
00048
class KSocketBuffer:
public KIOBufferBase
00049 {
00050
public:
00056 KSocketBuffer(Q_LONG size = -1);
00057
00061 KSocketBuffer(
const KSocketBuffer& other);
00062
00066
virtual ~KSocketBuffer();
00067
00071 KSocketBuffer&
operator=(
const KSocketBuffer& other);
00072
00076
virtual bool canReadLine() const;
00077
00081 virtual
QCString readLine();
00082
00089 virtual Q_LONG length() const;
00090
00097 virtual Q_LONG size() const;
00098
00106 virtual
bool setSize(Q_LONG size);
00107
00115 virtual Q_LONG feedBuffer(const
char *data, Q_LONG len);
00116
00120 virtual
void clear();
00121
00130 virtual Q_LONG consumeBuffer(
char *data, Q_LONG maxlen,
bool discard = true);
00131
00140 virtual Q_LONG sendTo(
KActiveSocketBase* device, Q_LONG len = -1);
00141
00151 virtual Q_LONG receiveFrom(
KActiveSocketBase* device, Q_LONG len = -1);
00152
00153 protected:
00154 mutable
QMutex m_mutex;
00155
QValueList<
QByteArray> m_list;
00156
QIODevice::Offset m_offset;
00157
00158 Q_LONG m_size;
00159 mutable Q_LONG m_length;
00160 };
00161
00162 } }
00163
00164 #endif