Rudiments
rawbuffer.h
1 // Copyright (c) 2004 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_RAWBUFFER_H
5 #define RUDIMENTS_RAWBUFFER_H
6 
7 #include <rudiments/private/rawbufferincludes.h>
8 
9 #ifdef RUDIMENTS_NAMESPACE
10 namespace rudiments {
11 #endif
12 
17 class RUDIMENTS_DLLSPEC rawbuffer {
18  public:
19 
23  static void *duplicate(const void *src, size_t size);
24 
28  static void *copy(void *dest, const void *src,
29  size_t size);
30 
34  static void *copyWithOverlap(void *dest,
35  const void *src,
36  size_t size);
37 
43  static void *copyUntil(void *dest, const void *src,
44  unsigned char character,
45  size_t size);
46 
53  static void *copySwapBytes(void *dest,
54  const void *src,
55  size_t size);
56 
59  static void *set(void *dest, unsigned char character,
60  size_t size);
61 
64  static void *zero(void *dest, size_t size);
65 
70  static int32_t compare(const void *s1, const void *s2,
71  size_t size);
72 
77  static void *findFirst(void *haystack,
78  unsigned char needle,
79  size_t size);
80 
85  static void *findLast(void *haystack,
86  unsigned char needle,
87  size_t size);
88 
93  static void *findFirst(void *haystack,
94  size_t haystacksize,
95  const void *needle,
96  size_t needleize);
97 
102  static void *findLast(void *haystack,
103  size_t haystacksize,
104  const void *needle,
105  size_t needleize);
106 
111  static const void *findFirst(const void *haystack,
112  unsigned char needle,
113  size_t size);
114 
119  static const void *findLast(const void *haystack,
120  unsigned char needle,
121  size_t size);
122 
127  static const void *findFirst(const void *haystack,
128  size_t haystacksize,
129  const void *needle,
130  size_t needleize);
131 
136  static const void *findLast(const void *haystack,
137  size_t haystacksize,
138  const void *needle,
139  size_t needleize);
140 };
141 
142 #ifdef RUDIMENTS_NAMESPACE
143 }
144 #endif
145 
146 #endif