Rudiments
|
00001 // Copyright (c) 2004 David Muse 00002 // See the COPYING file for more information. 00003 00004 #ifndef RUDIMENTS_RAWBUFFER_H 00005 #define RUDIMENTS_RAWBUFFER_H 00006 00007 #include <rudiments/private/rawbufferincludes.h> 00008 00009 #ifdef RUDIMENTS_NAMESPACE 00010 namespace rudiments { 00011 #endif 00012 00017 class RUDIMENTS_DLLSPEC rawbuffer { 00018 public: 00019 00023 static void *duplicate(const void *src, size_t size); 00024 00028 static void *copy(void *dest, const void *src, 00029 size_t size); 00030 00034 static void *copyWithOverlap(void *dest, 00035 const void *src, 00036 size_t size); 00037 00043 static void *copyUntil(void *dest, const void *src, 00044 unsigned char character, 00045 size_t size); 00046 00053 static void *copySwapBytes(void *dest, 00054 const void *src, 00055 size_t size); 00056 00059 static void *set(void *dest, unsigned char character, 00060 size_t size); 00061 00064 static void *zero(void *dest, size_t size); 00065 00070 static int32_t compare(const void *s1, const void *s2, 00071 size_t size); 00072 00077 static void *findFirst(void *haystack, 00078 unsigned char needle, 00079 size_t size); 00080 00085 static void *findLast(void *haystack, 00086 unsigned char needle, 00087 size_t size); 00088 00093 static void *findFirst(void *haystack, 00094 size_t haystacksize, 00095 const void *needle, 00096 size_t needleize); 00097 00102 static void *findLast(void *haystack, 00103 size_t haystacksize, 00104 const void *needle, 00105 size_t needleize); 00106 00111 static const void *findFirst(const void *haystack, 00112 unsigned char needle, 00113 size_t size); 00114 00119 static const void *findLast(const void *haystack, 00120 unsigned char needle, 00121 size_t size); 00122 00127 static const void *findFirst(const void *haystack, 00128 size_t haystacksize, 00129 const void *needle, 00130 size_t needleize); 00131 00136 static const void *findLast(const void *haystack, 00137 size_t haystacksize, 00138 const void *needle, 00139 size_t needleize); 00140 }; 00141 00142 #ifdef RUDIMENTS_NAMESPACE 00143 } 00144 #endif 00145 00146 #endif