StoreIOBuffer.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_STOREIOBUFFER_H
10 #define SQUID_STOREIOBUFFER_H
11 
12 #include "base/Range.h"
13 #include "MemBuf.h"
14 
16 {
17 
18 public:
19  StoreIOBuffer():length(0), offset (0), data (NULL) {flags.error = 0;}
20 
21  StoreIOBuffer(size_t aLength, int64_t anOffset, char *someData) :
22  length (aLength), offset (anOffset), data (someData) {
23  flags.error = 0;
24  }
25 
26  /* Create a StoreIOBuffer from a MemBuf and offset */
27  /* NOTE that MemBuf still "owns" the pointers, StoreIOBuffer is just borrowing them */
28  StoreIOBuffer(MemBuf *aMemBuf, int64_t anOffset) :
29  length(aMemBuf->contentSize()),
30  offset (anOffset),
31  data(aMemBuf->content()) {
32  flags.error = 0;
33  }
34 
35  StoreIOBuffer(MemBuf *aMemBuf, int64_t anOffset, size_t anLength) :
36  length(anLength),
37  offset (anOffset),
38  data(aMemBuf->content()) {
39  flags.error = 0;
40  }
41 
43  return Range<int64_t>(offset, offset + length);
44  }
45 
46  void dump() const {
47  if (fwrite(data, length, 1, stderr)) {}
48  if (fwrite("\n", 1, 1, stderr)) {}
49  }
50 
51  struct {
52  unsigned error:1;
53  } flags;
54  size_t length;
55  int64_t offset;
56  char *data;
57 };
58 
59 inline
60 std::ostream &
61 operator <<(std::ostream &os, const StoreIOBuffer &b)
62 {
63  return os << "ioBuf(@" << b.offset << ", len=" << b.length << ", " <<
64  (void*)b.data << (b.flags.error ? ", ERR" : "") << ')';
65 }
66 
67 #endif /* SQUID_STOREIOBUFFER_H */
68 
void dump() const
Definition: StoreIOBuffer.h:46
StoreIOBuffer(MemBuf *aMemBuf, int64_t anOffset)
Definition: StoreIOBuffer.h:28
Definition: Range.h:18
int64_t offset
Definition: StoreIOBuffer.h:55
std::ostream & operator<<(std::ostream &os, const StoreIOBuffer &b)
Definition: StoreIOBuffer.h:61
StoreIOBuffer(MemBuf *aMemBuf, int64_t anOffset, size_t anLength)
Definition: StoreIOBuffer.h:35
struct StoreIOBuffer::@146 flags
unsigned error
Definition: StoreIOBuffer.h:52
Range< int64_t > range() const
Definition: StoreIOBuffer.h:42
Definition: MemBuf.h:23
StoreIOBuffer(size_t aLength, int64_t anOffset, char *someData)
Definition: StoreIOBuffer.h:21
#define NULL
Definition: types.h:166

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors