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 
13 class RUDIMENTS_DLLSPEC rawbuffer {
14  public:
15 
19  static void *duplicate(const void *src, size_t size);
20 
24  static void *copy(void *dest, const void *src,
25  size_t size);
26 
30  static void *copyWithOverlap(void *dest,
31  const void *src,
32  size_t size);
33 
39  static void *copyUntil(void *dest, const void *src,
40  unsigned char character,
41  size_t size);
42 
49  static void *copySwapBytes(void *dest,
50  const void *src,
51  size_t size);
52 
55  static void *set(void *dest, unsigned char character,
56  size_t size);
57 
60  static void *zero(void *dest, size_t size);
61 
66  static int32_t compare(const void *s1, const void *s2,
67  size_t size);
68 
73  static void *findFirst(void *haystack,
74  unsigned char needle,
75  size_t size);
76 
81  static void *findLast(void *haystack,
82  unsigned char needle,
83  size_t size);
84 
89  static void *findFirst(void *haystack,
90  size_t haystacksize,
91  const void *needle,
92  size_t needleize);
93 
98  static void *findLast(void *haystack,
99  size_t haystacksize,
100  const void *needle,
101  size_t needleize);
102 
107  static const void *findFirst(const void *haystack,
108  unsigned char needle,
109  size_t size);
110 
115  static const void *findLast(const void *haystack,
116  unsigned char needle,
117  size_t size);
118 
123  static const void *findFirst(const void *haystack,
124  size_t haystacksize,
125  const void *needle,
126  size_t needleize);
127 
132  static const void *findLast(const void *haystack,
133  size_t haystacksize,
134  const void *needle,
135  size_t needleize);
136 };
137 
138 #endif