1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
<html>
<head>
<title>~/src/firstworks/rudiments-0.27/include/rudiments/rawbuffer.h.html</title>
<meta name="Generator" content="Vim/6.2">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff" text="#000000">
<pre>
<font color="#0000ff">// Copyright (c) 2004 David Muse</font>
<font color="#0000ff">// See the COPYING file for more information.</font>
<font color="#a520f7">#ifndef RUDIMENTS_RAWBUFFER_H</font>
<font color="#a520f7">#define RUDIMENTS_RAWBUFFER_H</font>
<font color="#a520f7">#include </font><font color="#ff00ff"><rudiments/private/rawbufferincludes.h></font>
<font color="#0000ff">// The rawbuffer class provides methods for operating on raw memory buffers.</font>
<font color="#298a52"><b>class</b></font> rawbuffer {
<font color="#a52829"><b>public</b></font>:
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *copy(<font color="#298a52"><b>void</b></font> *dest, <font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *src,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Copies "size" bytes from "src" into "dest".</font>
<font color="#0000ff">// "src" and "dest" may NOT overlap.</font>
<font color="#0000ff">// Returns a pointer to "dest".</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *copyWithOverlap(<font color="#298a52"><b>void</b></font> *dest,
<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *src,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Copies "size" bytes from "src" to "dest".</font>
<font color="#0000ff">// "src" and "dest" may overlap.</font>
<font color="#0000ff">// Returns a pointer to "dest".</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *copyUntil(<font color="#298a52"><b>void</b></font> *dest, <font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *src,
<font color="#298a52"><b>unsigned</b></font> <font color="#298a52"><b>char</b></font> character,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Copies bytes from "src" into "dest" until</font>
<font color="#0000ff">// "character" is encountered in "src" or "size"</font>
<font color="#0000ff">// bytes have been copied.</font>
<font color="#0000ff">// "src" and "dest" may NOT overlap.</font>
<font color="#0000ff">// Returns a pointer to "dest".</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *copySwapBytes(<font color="#298a52"><b>void</b></font> *dest,
<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *src,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Copies "size" bytes from "src" into "dest"</font>
<font color="#0000ff">// while swapping byte order. Useful for</font>
<font color="#0000ff">// exchanging data between big and little</font>
<font color="#0000ff">// endian machines.</font>
<font color="#0000ff">// "src" and "dest" may NOT overlap.</font>
<font color="#0000ff">// Returns a pointer to "dest".</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *set(<font color="#298a52"><b>void</b></font> *dest, <font color="#298a52"><b>unsigned</b></font> <font color="#298a52"><b>char</b></font> character,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Sets "size" bytes of "dest" to "character".</font>
<font color="#0000ff">// Returns a pointer to "dest".</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>int</b></font> compare(<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *s1, <font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *s2,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Returns an integer less than, equal to or</font>
<font color="#0000ff">// greater than 0 if "size" bytes of "s1" are</font>
<font color="#0000ff">// less than, equal to or greater than "size"</font>
<font color="#0000ff">// bytes of "s2".</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *findFirst(<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *haystack,
<font color="#298a52"><b>unsigned</b></font> <font color="#298a52"><b>char</b></font> needle,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Returns a pointer to the first occurrance</font>
<font color="#0000ff">// of "needle" in the first "size" bytes of</font>
<font color="#0000ff">// "haystack".</font>
<font color="#0000ff">// Returns NULL if no match is found.</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *findLast(<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *haystack,
<font color="#298a52"><b>unsigned</b></font> <font color="#298a52"><b>char</b></font> needle,
<font color="#298a52"><b>size_t</b></font> size);
<font color="#0000ff">// Returns a pointer to the last occurrance</font>
<font color="#0000ff">// of "needle" in the first "size" bytes of</font>
<font color="#0000ff">// "haystack".</font>
<font color="#0000ff">// Returns NULL if no match is found.</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *findFirst(<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *haystack,
<font color="#298a52"><b>size_t</b></font> haystacksize,
<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *needle,
<font color="#298a52"><b>size_t</b></font> needleize);
<font color="#0000ff">// Returns a pointer to the first occurrance</font>
<font color="#0000ff">// of "needle" in the first "size" bytes of</font>
<font color="#0000ff">// "haystack".</font>
<font color="#0000ff">// Returns NULL if no match is found.</font>
<font color="#298a52"><b>static</b></font> <font color="#298a52"><b>void</b></font> *findLast(<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *haystack,
<font color="#298a52"><b>size_t</b></font> haystacksize,
<font color="#298a52"><b>const</b></font> <font color="#298a52"><b>void</b></font> *needle,
<font color="#298a52"><b>size_t</b></font> needleize);
<font color="#0000ff">// Returns a pointer to the last occurrance</font>
<font color="#0000ff">// of "needle" in the first "size" bytes of</font>
<font color="#0000ff">// "haystack".</font>
<font color="#0000ff">// Returns NULL if no match is found.</font>
};
<font color="#a520f7">#endif</font>
</pre>
</body>
</html>
|