26 #include <boost/shared_array.hpp>
28 #include <QWeakPointer>
29 #include <QSharedPointer>
30 #include <ktorrent_export.h>
31 #include <util/constants.h>
40 class KTORRENT_EXPORT Buffer
43 typedef QSharedPointer<Buffer> Ptr;
44 typedef boost::shared_array<bt::Uint8> Data;
46 Buffer(Data data, bt::Uint32 fill, bt::Uint32 cap, QWeakPointer<BufferPool> pool);
50 bt::Uint32 capacity()
const {
return cap;}
53 bt::Uint32 size()
const {
return fill;}
56 void setSize(bt::Uint32 s) {fill = s;}
59 bt::Uint8* get() {
return data.get();}
65 QWeakPointer<BufferPool> pool;
81 void setWeakPointer(QWeakPointer<BufferPool> wp) {
self = wp;}
89 Buffer::Ptr get(bt::Uint32 min_size);
96 void release(Buffer::Data data, bt::Uint32 size);
103 typedef QSharedPointer<BufferPool> Ptr;
106 typedef std::map<bt::Uint32, std::list<Buffer::Data> > FreeBufferMap;
108 FreeBufferMap free_buffers;
109 QWeakPointer<BufferPool>
self;