1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3<title>oscl_uuid.h Source File</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5</head><body> 6<!-- Generated by Doxygen 1.2.18 --> 7<center> 8<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> 9<hr><h1>oscl_uuid.h</h1><a href="oscl__uuid_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 1000007 <span class="preprocessor">#ifndef OSCL_UUID_H_INCLUDED</span> 1100008 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_UUID_H_INCLUDED</span> 1200009 <span class="preprocessor"></span> 1300010 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span> 1400011 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> 1500012 <span class="preprocessor">#endif</span> 1600013 <span class="preprocessor"></span> 1700014 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H</span> 1800015 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a>"</span> 1900016 <span class="preprocessor">#endif</span> 2000017 <span class="preprocessor"></span> 2100018 <span class="preprocessor">#ifndef OSCL_STRING_UTILS_H</span> 2200019 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__string__utils_8h.html">oscl_string_utils.h</a>"</span> 2300020 <span class="preprocessor">#endif</span> 2400021 <span class="preprocessor"></span> 2500022 <span class="preprocessor">#ifndef OSCL_STDSTRING_H_INCLUDED</span> 2600023 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__stdstring_8h.html">oscl_stdstring.h</a>"</span> 2700024 <span class="preprocessor">#endif</span> 2800025 <span class="preprocessor"></span><span class="comment">// __cplusplus</span> 2900026 30<a name="l00027"></a><a class="code" href="oscl__uuid_8h.html#a1">00027</a> <span class="keyword">typedef</span> uint32 <a class="code" href="oscl__uuid_8h.html#a1">OsclUid32</a>; 31<a name="l00028"></a><a class="code" href="oscl__uuid_8h.html#a2">00028</a> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="oscl__uuid_8h.html#a2">PV_CHAR_CLOSE_BRACKET</a> = <span class="charliteral">')'</span>; 32<a name="l00029"></a><a class="code" href="oscl__uuid_8h.html#a3">00029</a> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="oscl__uuid_8h.html#a3">PV_CHAR_COMMA</a> = <span class="charliteral">','</span>; 33<a name="l00033"></a><a class="code" href="structOsclUuid.html">00033</a> <span class="keyword">struct </span><a class="code" href="structOsclUuid.html">OsclUuid</a> 3400034 { 35<a name="l00035"></a><a class="code" href="oscl__uuid_8h.html#a0">00035</a> <span class="preprocessor">#define BYTES_IN_UUID_ARRAY 8</span> 3600036 <span class="preprocessor"></span> 37<a name="l00037"></a><a class="code" href="structOsclUuid.html#a0">00037</a> <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>() 3800038 { 3900039 <a class="code" href="group__osclmemory.html#a14">oscl_memset</a>(<span class="keyword">this</span>, 0, <span class="keyword">sizeof</span>(<a class="code" href="structOsclUuid.html">OsclUuid</a>)); 4000040 } 4100041 42<a name="l00042"></a><a class="code" href="structOsclUuid.html#a1">00042</a> <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>(uint32 l, uint16 w1, uint16 w2, uint8 b1, uint8 b2, uint8 b3, 4300043 uint8 b4, uint8 b5, uint8 b6, uint8 b7, uint8 b8) 4400044 { 4500045 <a class="code" href="structOsclUuid.html#m0">data1</a> = l; 4600046 <a class="code" href="structOsclUuid.html#m1">data2</a> = w1; 4700047 <a class="code" href="structOsclUuid.html#m2">data3</a> = w2; 4800048 <a class="code" href="structOsclUuid.html#m3">data4</a>[0] = b1; 4900049 <a class="code" href="structOsclUuid.html#m3">data4</a>[1] = b2; 5000050 <a class="code" href="structOsclUuid.html#m3">data4</a>[2] = b3; 5100051 <a class="code" href="structOsclUuid.html#m3">data4</a>[3] = b4; 5200052 <a class="code" href="structOsclUuid.html#m3">data4</a>[4] = b5; 5300053 <a class="code" href="structOsclUuid.html#m3">data4</a>[5] = b6; 5400054 <a class="code" href="structOsclUuid.html#m3">data4</a>[6] = b7; 5500055 <a class="code" href="structOsclUuid.html#m3">data4</a>[7] = b8; 5600056 } 5700057 5800058 <span class="comment">//The OSCL UUID structure takes in a string parameter</span> 5900059 <span class="comment">//Expected string input for the OsclString should be like:</span> 6000060 <span class="comment">//(0xa054569c,0x24c5,0x452e,0x99,0x77,0x87,0x4b,0xca,0x79,0xd3,0xaf)</span> 6100061 62<a name="l00062"></a><a class="code" href="structOsclUuid.html#a2">00062</a> <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* aUuidString) 6300063 { 6400064 <span class="comment">//Initialize all data members to 0 to begin with</span> 6500065 <a class="code" href="structOsclUuid.html#m0">data1</a> = <a class="code" href="structOsclUuid.html#m1">data2</a> = <a class="code" href="structOsclUuid.html#m2">data3</a> = 0; 6600066 6700067 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> ii = 0; ii < 8; ++ii) 6800068 { 6900069 <a class="code" href="structOsclUuid.html#m3">data4</a>[ii] = 0; 7000070 } 7100071 7200072 <span class="keywordtype">int</span> uuidStrLen = <a class="code" href="group__osclbase.html#a43">oscl_strlen</a>(aUuidString); 7300073 7400074 <span class="keywordflow">if</span> (uuidStrLen != 0) 7500075 { 7600076 <span class="keyword">const</span> <span class="keywordtype">char</span>* sptr = <a class="code" href="group__osclbase.html#a81">NULL</a>, *eptr = <a class="code" href="group__osclbase.html#a81">NULL</a>; 7700077 <span class="keywordtype">int</span> commaval = 0; 7800078 sptr = aUuidString; 7900079 ++sptr; <span class="comment">//Increment over the starting parantheses '('</span> 8000080 eptr = sptr; 8100081 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0;i < uuidStrLen - 1 ; ++i) 8200082 { 8300083 <span class="keywordflow">if</span> ((*eptr != <a class="code" href="oscl__uuid_8h.html#a3">PV_CHAR_COMMA</a>) && (*eptr != <a class="code" href="oscl__uuid_8h.html#a2">PV_CHAR_CLOSE_BRACKET</a>)) <span class="comment">//Increment the pointer unless you get to the ","</span> 8400084 { <span class="comment">//The comma signifies the beginning of the new OsclUuid parameter</span> 8500085 ++eptr; 8600086 } 8700087 <span class="keywordflow">else</span> 8800088 { 8900089 sptr = sptr + 2;<span class="comment">//Move over the 0x characters in the beginning of the hex value;</span> 9000090 ++commaval; 9100091 <span class="keywordflow">switch</span> (commaval) 9200092 { 9300093 <span class="keywordflow">case</span> 1: 9400094 { 9500095 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, eptr - sptr, <a class="code" href="structOsclUuid.html#m0">data1</a>); 9600096 <span class="keywordflow">break</span>; 9700097 } 9800098 <span class="keywordflow">case</span> 2: 9900099 { 10000100 uint32 tempdata2 = 0; 10100101 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata2); 10200102 <a class="code" href="structOsclUuid.html#m1">data2</a> = (uint16)tempdata2; 10300103 <span class="keywordflow">break</span>; 10400104 } 10500105 <span class="keywordflow">case</span> 3: 10600106 { 10700107 uint32 tempdata3 = 0; 10800108 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata3); 10900109 <a class="code" href="structOsclUuid.html#m2">data3</a> = (uint16)tempdata3; 11000110 <span class="keywordflow">break</span>; 11100111 } 11200112 <span class="keywordflow">case</span> 4: 11300113 { 11400114 uint32 tempdata4_0 = 0; 11500115 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_0); 11600116 <a class="code" href="structOsclUuid.html#m3">data4</a>[0] = (uint8)tempdata4_0; 11700117 <span class="keywordflow">break</span>; 11800118 } 11900119 <span class="keywordflow">case</span> 5: 12000120 { 12100121 uint32 tempdata4_1 = 0; 12200122 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_1); 12300123 <a class="code" href="structOsclUuid.html#m3">data4</a>[1] = (uint8)tempdata4_1; 12400124 <span class="keywordflow">break</span>; 12500125 } 12600126 <span class="keywordflow">case</span> 6: 12700127 { 12800128 uint32 tempdata4_2 = 0; 12900129 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_2); 13000130 <a class="code" href="structOsclUuid.html#m3">data4</a>[2] = (uint8)tempdata4_2; 13100131 <span class="keywordflow">break</span>; 13200132 } 13300133 <span class="keywordflow">case</span> 7: 13400134 { 13500135 uint32 tempdata4_3 = 0; 13600136 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_3); 13700137 <a class="code" href="structOsclUuid.html#m3">data4</a>[3] = (uint8)tempdata4_3; 13800138 <span class="keywordflow">break</span>; 13900139 } 14000140 <span class="keywordflow">case</span> 8: 14100141 { 14200142 uint32 tempdata4_4 = 0; 14300143 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_4); 14400144 <a class="code" href="structOsclUuid.html#m3">data4</a>[4] = (uint8)tempdata4_4; 14500145 <span class="keywordflow">break</span>; 14600146 } 14700147 <span class="keywordflow">case</span> 9: 14800148 { 14900149 uint32 tempdata4_5 = 0; 15000150 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_5); 15100151 <a class="code" href="structOsclUuid.html#m3">data4</a>[5] = (uint8)tempdata4_5; 15200152 <span class="keywordflow">break</span>; 15300153 } 15400154 <span class="keywordflow">case</span> 10: 15500155 { 15600156 uint32 tempdata4_6 = 0; 15700157 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr , <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_6); 15800158 <a class="code" href="structOsclUuid.html#m3">data4</a>[6] = (uint8)tempdata4_6; 15900159 <span class="keywordflow">break</span>; 16000160 } 16100161 <span class="keywordflow">case</span> 11: 16200162 { 16300163 uint32 tempdata4_7 = 0; 16400164 <a class="code" href="group__osclutil.html#a19">PV_atoi</a>(sptr, <span class="charliteral">'x'</span>, (eptr - sptr), tempdata4_7); 16500165 <a class="code" href="structOsclUuid.html#m3">data4</a>[7] = (uint8)tempdata4_7; 16600166 <span class="keywordflow">break</span>; 16700167 } 16800168 } 16900169 <span class="keywordflow">if</span> (*eptr == <a class="code" href="oscl__uuid_8h.html#a2">PV_CHAR_CLOSE_BRACKET</a>) <span class="comment">//Break from the loop on finding</span> 17000170 { 17100171 <span class="keywordflow">break</span>; 17200172 } 17300173 ++eptr; 17400174 sptr = eptr; 17500175 } 17600176 } 17700177 } 17800178 } 17900179 180<a name="l00180"></a><a class="code" href="structOsclUuid.html#a3">00180</a> <a class="code" href="structOsclUuid.html#a0">OsclUuid</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a> &uuid) 18100181 { 18200182 <a class="code" href="group__osclmemory.html#a11">oscl_memcpy</a>(<span class="keyword">this</span>, &uuid, <span class="keyword">sizeof</span>(<a class="code" href="structOsclUuid.html">OsclUuid</a>)); 18300183 } 18400184 185<a name="l00185"></a><a class="code" href="structOsclUuid.html#a4">00185</a> <a class="code" href="structOsclUuid.html">OsclUuid</a> &<a class="code" href="structOsclUuid.html#a4">operator=</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a>& src) 18600186 { 18700187 <a class="code" href="group__osclmemory.html#a11">oscl_memcpy</a>(<span class="keyword">this</span>, &src, <span class="keyword">sizeof</span>(<a class="code" href="structOsclUuid.html">OsclUuid</a>)); 18800188 <span class="keywordflow">return</span> *<span class="keyword">this</span>; 18900189 } 19000190 191<a name="l00191"></a><a class="code" href="structOsclUuid.html#a5">00191</a> <span class="keywordtype">bool</span> <a class="code" href="structOsclUuid.html#a5">operator==</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a>& src)<span class="keyword"> const</span> 19200192 <span class="keyword"> </span>{ 19300193 <span class="keywordflow">if</span> (<a class="code" href="structOsclUuid.html#m0">data1</a> != src.<a class="code" href="structOsclUuid.html#m0">data1</a> || <a class="code" href="structOsclUuid.html#m1">data2</a> != src.<a class="code" href="structOsclUuid.html#m1">data2</a> || <a class="code" href="structOsclUuid.html#m2">data3</a> != src.<a class="code" href="structOsclUuid.html#m2">data3</a>) 19400194 { 19500195 <span class="keywordflow">return</span> <span class="keyword">false</span>; 19600196 } 19700197 19800198 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> ii = 0; ii < 8; ++ii) 19900199 { 20000200 <span class="keywordflow">if</span> (<a class="code" href="structOsclUuid.html#m3">data4</a>[ii] != src.<a class="code" href="structOsclUuid.html#m3">data4</a>[ii]) 20100201 { 20200202 <span class="keywordflow">return</span> <span class="keyword">false</span>; 20300203 } 20400204 } 20500205 20600206 <span class="keywordflow">return</span> <span class="keyword">true</span>; 20700207 } 20800208 209<a name="l00209"></a><a class="code" href="structOsclUuid.html#a6">00209</a> <span class="keywordtype">bool</span> <a class="code" href="structOsclUuid.html#a6">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structOsclUuid.html">OsclUuid</a> &src)<span class="keyword"> const</span> 21000210 <span class="keyword"> </span>{ 21100211 <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == src); 21200212 } 21300213 214<a name="l00214"></a><a class="code" href="structOsclUuid.html#m0">00214</a> uint32 <a class="code" href="structOsclUuid.html#m0">data1</a>; 215<a name="l00215"></a><a class="code" href="structOsclUuid.html#m1">00215</a> uint16 <a class="code" href="structOsclUuid.html#m1">data2</a>; 216<a name="l00216"></a><a class="code" href="structOsclUuid.html#m2">00216</a> uint16 <a class="code" href="structOsclUuid.html#m2">data3</a>; 217<a name="l00217"></a><a class="code" href="structOsclUuid.html#m3">00217</a> uint8 <a class="code" href="structOsclUuid.html#m3">data4</a>[<a class="code" href="oscl__uuid_8h.html#a0">BYTES_IN_UUID_ARRAY</a>]; 21800218 }; 21900219 22000220 <span class="preprocessor">#endif</span> 22100221 <span class="preprocessor"></span> 222</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 223<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 224</small></address> 225</body> 226</html> 227