blob: 8cc2a24ab5880aa86be3acd1b5a41265678c45ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
/*
* Copyright (C) 2007-2019 Xagasoft, All rights reserved.
*
* This file is part of the libbu++ library and is released under the
* terms of the license contained in the file LICENSE.
*/
#ifndef BU_BLOB_BUILDER_H
#define BU_BLOB_BUILDER_H
#include "bu/config.h"
#include "bu/sharedcore.h"
namespace Bu
{
class BlobBuilder;
class BlobBuilderCore
{
friend class BlobBuilder;
friend class SharedCore<BlobBuilder, BlobBuilderCore>;
private:
class Chunk
{
public:
Chunk();
~Chunk();
int16_t iFill;
int16_t iLength;
char *pData;
Chunk *pNext;
};
BlobBuilderCore();
BlobBuilderCore( const BlobBuilderCore &rSrc );
virtual ~BlobBuilderCore();
void clear();
Chunk *pFirst;
Chunk *pLast;
int32_t iLength;
};
class BlobBuilder : public Bu::SharedCore<BlobBuilder, BlobBuilderCore>
{
protected:
using SharedCore<BlobBuilder, BlobBuilderCore>::core;
using SharedCore<BlobBuilder, BlobBuilderCore>::_hardCopy;
public:
BlobBuilder();
BlobBuilder( const BlobBuilder &rSrc );
virtual ~BlobBuilder();
private:
};
};
#endif
|