utilitylibraries/libutils/src/descriptor16tostring.cpp
changeset 34 5fae379060a7
parent 0 e4d67989cc36
child 57 2efc27d87e1c
equal deleted inserted replaced
31:ce057bb09d0b 34:5fae379060a7
    35     unsigned int ilen = aSrc.Length(); 
    35     unsigned int ilen = aSrc.Length(); 
    36     int retval = ESuccess;
    36     int retval = ESuccess;
    37     int minusone = -1;
    37     int minusone = -1;
    38     char* charString = new char[ilen*2+1];
    38     char* charString = new char[ilen*2+1];
    39     
    39     
    40     wchar_t *wcharString = new wchar_t[ilen+1];
    40     if (!charString)
    41     
    41     {
    42     if (!charString || !wcharString)
    42     	return EInsufficientSystemMemory;
    43     {
    43     }
       
    44     
       
    45     wchar_t *wcharString = new wchar_t[ilen+1];
       
    46     
       
    47     if (!wcharString)
       
    48     {
       
    49     	delete []charString;
    44     	return EInsufficientSystemMemory;
    50     	return EInsufficientSystemMemory;
    45     }
    51     }
    46     
    52     
    47     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
    53     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
    48     wcharString[ilen] = L'\0';
    54     wcharString[ilen] = L'\0';
    75 EXPORT_C int Tbufc16ToString(TDesC16& aSrc, string& aDes)
    81 EXPORT_C int Tbufc16ToString(TDesC16& aSrc, string& aDes)
    76 {
    82 {
    77     int ilen = aSrc.Length(), retval = ESuccess;
    83     int ilen = aSrc.Length(), retval = ESuccess;
    78     int minusone = -1;
    84     int minusone = -1;
    79     char* charString = new char[ilen*2+1];
    85     char* charString = new char[ilen*2+1];
    80     wchar_t *wcharString = new wchar_t[ilen+1];
    86     
    81     
    87     if (!charString)
    82     if (!charString || !wcharString)
    88     {
    83     {
    89     	return EInsufficientSystemMemory;
       
    90     }
       
    91     
       
    92     wchar_t *wcharString = new wchar_t[ilen+1];
       
    93     
       
    94     if (!wcharString)
       
    95     {
       
    96     	delete []charString;
    84     	return EInsufficientSystemMemory;
    97     	return EInsufficientSystemMemory;
    85     }
    98     }
    86     
    99     
    87     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   100     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
    88     wcharString[ilen] = L'\0';
   101     wcharString[ilen] = L'\0';
   116 {
   129 {
   117     int retval = ESuccess;
   130     int retval = ESuccess;
   118     unsigned int ilen= aSrc.Length();
   131     unsigned int ilen= aSrc.Length();
   119 	  int minusone = -1;
   132 	  int minusone = -1;
   120 	  char* charString = new char[ilen*2+1];
   133 	  char* charString = new char[ilen*2+1];
   121     wchar_t *wcharString = new wchar_t[ilen+1];
   134 	  
   122     
   135 	  if (!charString)
   123     if (!charString || !wcharString)
   136     {
   124     {
   137     	return EInsufficientSystemMemory;
       
   138     }
       
   139     wchar_t *wcharString = new wchar_t[ilen+1];
       
   140     
       
   141     if (!wcharString)
       
   142     {
       
   143     	delete []charString;
   125     	return EInsufficientSystemMemory;
   144     	return EInsufficientSystemMemory;
   126     }
   145     }
   127     
   146     
   128     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   147     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   129     wcharString[ilen] = L'\0';
   148     wcharString[ilen] = L'\0';
   156 
   175 
   157 EXPORT_C int Tptrc16ToString (const TDesC16& aSrc, string& aDes)
   176 EXPORT_C int Tptrc16ToString (const TDesC16& aSrc, string& aDes)
   158 {
   177 {
   159     int retval = ESuccess;	
   178     int retval = ESuccess;	
   160 	  int ilen= aSrc.Length();
   179 	  int ilen= aSrc.Length();
   161 	int minusone = -1;
   180 	  int minusone = -1;
   162 	  char* buf = new char[ilen*2 +1];
   181 	  char* buf = new char[ilen*2 +1];
   163     wchar_t *wcharString = new wchar_t[ilen+1];
   182 	  
   164     
   183 	  if (!buf)
   165     if (!buf || !wcharString)
   184     {
   166     {
   185     	return EInsufficientSystemMemory;
       
   186     }
       
   187     
       
   188     wchar_t *wcharString = new wchar_t[ilen+1];
       
   189     
       
   190     if (!wcharString)
       
   191     {
       
   192     	delete []buf;
   167     	return EInsufficientSystemMemory;
   193     	return EInsufficientSystemMemory;
   168     }
   194     }
   169     
   195     
   170     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   196     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   171     wcharString[ilen] = L'\0';
   197     wcharString[ilen] = L'\0';
   218     		n_size = ilen; 
   244     		n_size = ilen; 
   219     		return EInvalidSize; 		
   245     		return EInvalidSize; 		
   220     	}
   246     	}
   221     }
   247     }
   222     
   248     
   223 	char* buf = new char[ilen*2 +1];
   249 	  char* buf = new char[ilen*2 +1];
   224     wchar_t *wcharString = new wchar_t[ilen+1];
   250 	
   225     
   251 	  if (!buf)
   226     if (!buf || !wcharString)
   252     {
   227     {
   253     	return EInsufficientSystemMemory;
       
   254     }
       
   255     
       
   256     wchar_t *wcharString = new wchar_t[ilen+1];
       
   257     
       
   258     if (!wcharString)
       
   259     {
       
   260     	delete []buf;
   228     	return EInsufficientSystemMemory;
   261     	return EInsufficientSystemMemory;
   229     }
   262     }
   230     
   263     
   231     wmemcpy(wcharString, (const wchar_t*)aSrc->Ptr(), ilen);
   264     wmemcpy(wcharString, (const wchar_t*)aSrc->Ptr(), ilen);
   232     wcharString[ilen] = L'\0';
   265     wcharString[ilen] = L'\0';
   233    
   266    
   234 	
   267 	
   235 	if(minusone != wcstombs(buf, wcharString, ilen*2))
   268 	if(minusone != wcstombs(buf, wcharString, ilen*2))
   236 	{
   269 	{
   237 	    buf[ilen*2] = '\0';
   270 	    buf[ilen*2] = '\0';
   238 	    aDes.append(buf, ilen*2);		
   271 	    aDes.assign(buf, ilen*2);		
   239 		
   272 		
   240 	}
   273 	}
   241 	else 
   274 	else 
   242 	{
   275 	{
   243 		retval = EInvalidWCSSequence;
   276 		retval = EInvalidWCSSequence;
   268     {
   301     {
   269     	return EDescriptorNoData;
   302     	return EDescriptorNoData;
   270     }
   303     }
   271     
   304     
   272     char* buf = new char[ilen*2 +1];
   305     char* buf = new char[ilen*2 +1];
   273     wchar_t *wcharString = new wchar_t[ilen+1];
   306         
   274     
   307     if (!buf)
   275     if (!buf || !wcharString)
   308     {
   276     {
   309     	return EInsufficientSystemMemory;
       
   310     }
       
   311     
       
   312     wchar_t *wcharString = new wchar_t[ilen+1];
       
   313     
       
   314     if (!wcharString)
       
   315     {
       
   316     	delete []buf;
   277     	return EInsufficientSystemMemory;
   317     	return EInsufficientSystemMemory;
   278     }
   318     }
   279     
   319     
   280     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   320     wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   281     wcharString[ilen] = L'\0';
   321     wcharString[ilen] = L'\0';
   319    {
   359    {
   320    		return EDescriptorNoData;
   360    		return EDescriptorNoData;
   321    }
   361    }
   322 
   362 
   323    char* buf = new char[ilen*2 +1];
   363    char* buf = new char[ilen*2 +1];
       
   364    
       
   365    if (!buf)
       
   366    {
       
   367        return EInsufficientSystemMemory;
       
   368    }
       
   369    
   324    wchar_t *wcharString = new wchar_t[ilen+1];
   370    wchar_t *wcharString = new wchar_t[ilen+1];
   325     
   371     
   326    if (!buf || !wcharString)
   372    if (!wcharString)
   327    {
   373    {
       
   374    	   delete []buf;
   328        return EInsufficientSystemMemory;
   375        return EInsufficientSystemMemory;
   329    }
   376    }
   330     
   377     
   331    wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   378    wmemcpy(wcharString, (const wchar_t*)aSrc.Ptr(), ilen);
   332    wcharString[ilen] = L'\0';
   379    wcharString[ilen] = L'\0';