Main Page   Modules   Class Hierarchy   Data Structures   File List   Data Fields   Globals   Related Pages  

oscl_uuid_utils.h

Go to the documentation of this file.
00001 
00005 #ifndef OSCL_UUID_UTILS_H_INCLUDED
00006 #define OSCL_UUID_UTILS_H_INCLUDED
00007 
00008 #ifndef OSCL_STRING_UTILS_H
00009 #include "oscl_string_utils.h"
00010 #endif
00011 
00012 #ifndef OSCL_STDSTRING_H_INCLUDED
00013 #include "oscl_stdstring.h"
00014 #endif
00015 
00016 const char PV_CHAR_CLOSE_BRACKET = ')';
00017 const char PV_CHAR_COMMA = ',';
00018 static void SetOsclUuid(OsclUuid& uuid, const char* aUuidString)
00019 {
00020     //Initialize all data members to 0 to begin with
00021     uuid.data1 = uuid.data2 = uuid.data3 = 0;
00022 
00023     for (int ii = 0; ii < 8; ++ii)
00024     {
00025         uuid.data4[ii] = 0;
00026     }
00027 
00028     if (!aUuidString)
00029     {
00030         return;
00031     }
00032     int uuidStrLen = oscl_strlen(aUuidString);
00033 
00034     if (uuidStrLen != 0)
00035     {
00036         const char* sptr = NULL, *eptr = NULL;
00037         int commaval = 0;
00038         sptr = aUuidString;
00039         ++sptr; //Increment over the starting parantheses '('
00040         eptr = sptr;
00041         for (int i = 0; i < uuidStrLen - 1 ; ++i)
00042         {
00043             if ((*eptr != PV_CHAR_COMMA) && (*eptr != PV_CHAR_CLOSE_BRACKET)) //Increment the pointer unless you get to the ","
00044             {                               //The comma signifies the beginning of the new OsclUuid parameter
00045                 ++eptr;
00046             }
00047             else
00048             {
00049                 sptr = sptr + 2;//Move over the 0x characters in the beginning of the hex value;
00050                 ++commaval;
00051                 switch (commaval)
00052                 {
00053                     case 1:
00054                     {
00055                         PV_atoi(sptr , 'x', eptr - sptr, uuid.data1);
00056                         break;
00057                     }
00058                     case 2:
00059                     {
00060                         uint32 tempdata2 = 0;
00061                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata2);
00062                         uuid.data2 = (uint16)tempdata2;
00063                         break;
00064                     }
00065                     case 3:
00066                     {
00067                         uint32 tempdata3 = 0;
00068                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata3);
00069                         uuid.data3 = (uint16)tempdata3;
00070                         break;
00071                     }
00072                     case 4:
00073                     {
00074                         uint32 tempdata4_0 = 0;
00075                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_0);
00076                         uuid.data4[0] = (uint8)tempdata4_0;
00077                         break;
00078                     }
00079                     case 5:
00080                     {
00081                         uint32 tempdata4_1 = 0;
00082                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_1);
00083                         uuid.data4[1] = (uint8)tempdata4_1;
00084                         break;
00085                     }
00086                     case 6:
00087                     {
00088                         uint32 tempdata4_2 = 0;
00089                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_2);
00090                         uuid.data4[2] = (uint8)tempdata4_2;
00091                         break;
00092                     }
00093                     case 7:
00094                     {
00095                         uint32 tempdata4_3 = 0;
00096                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_3);
00097                         uuid.data4[3] = (uint8)tempdata4_3;
00098                         break;
00099                     }
00100                     case 8:
00101                     {
00102                         uint32 tempdata4_4 = 0;
00103                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_4);
00104                         uuid.data4[4] = (uint8)tempdata4_4;
00105                         break;
00106                     }
00107                     case 9:
00108                     {
00109                         uint32 tempdata4_5 = 0;
00110                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_5);
00111                         uuid.data4[5] = (uint8)tempdata4_5;
00112                         break;
00113                     }
00114                     case 10:
00115                     {
00116                         uint32 tempdata4_6 = 0;
00117                         PV_atoi(sptr , 'x', (eptr - sptr), tempdata4_6);
00118                         uuid.data4[6] = (uint8)tempdata4_6;
00119                         break;
00120                     }
00121                     case 11:
00122                     {
00123                         uint32 tempdata4_7 = 0;
00124                         PV_atoi(sptr, 'x', (eptr - sptr), tempdata4_7);
00125                         uuid.data4[7] = (uint8)tempdata4_7;
00126                         break;
00127                     }
00128                 }
00129                 if (*eptr == PV_CHAR_CLOSE_BRACKET) //Break from the loop on finding
00130                 {
00131                     break;
00132                 }
00133                 ++eptr;
00134                 sptr = eptr;
00135             }
00136         }
00137     }
00138 }
00139 #endif
00140 
00141 

OSCL API
Posting Version: CORE_8.508.1.1