Rudiments
/home/dmuse/src/rudiments/include/rudiments/rawbuffer.h
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