ISpotMessage::BufferType SpotMessageHardwareInfo::serialize (void) const { // Serialize the header. ISpotMessage::BufferType retBuffer( AbsSpotMessageWithAppCatCmdID::serialize() ); if( m_ItemVector.size() == 0 ) // no specified items means request of ALL available items in SPOT. { retBuffer.push_back(0); // 0x00 means all available items request. } else { // Serialize the rest of the message. // Sets the number of items in the request message. retBuffer.push_back( static_cast<unsigned char>(m_ItemVector.size()) ); // Copy the item codes to the request message. retBuffer.insert(retBuffer.begin() + CMessageItemDataOffset, m_ItemVector.begin(), m_ItemVector.end()); } std::cout << "SpotMessageHardwareInfo::serialize() - Length: " << size() << " bytes.\n"; char* pcBuffer = new char[3 * size() + 2]; std::cout << "\nMessage Data: " << Utils::dumpBuffer(pcBuffer, &retBuffer.front(), size()) << std::endl << std::endl; delete[] pcBuffer; return retBuffer; // TODO: Fix ugly return vectors by value. }
wxChar* wxGetUserHome ( const wxString &rUser ) #endif { wxChar* zHome; wxString sUser1(rUser); wxChar *wxBuffer = new wxChar[256]; #ifndef __EMX__ if (!sUser1.empty()) { wxChar zTmp[64]; if (wxGetUserId( zTmp ,sizeof(zTmp)/sizeof(char) )) { // Guests belong in the temp dir if (wxStricmp(zTmp, _T("annonymous")) == 0) { if ((zHome = wxGetenv(_T("TMP"))) != NULL || (zHome = wxGetenv(_T("TMPDIR"))) != NULL || (zHome = wxGetenv(_T("TEMP"))) != NULL) delete[] wxBuffer; return *zHome ? zHome : (wxChar*)_T("\\"); } if (wxStricmp(zTmp, WXSTRINGCAST sUser1) == 0) sUser1 = wxEmptyString; } } #endif if (sUser1.empty()) { if ((zHome = wxGetenv(_T("HOME"))) != NULL) { wxStrcpy(wxBuffer, zHome); wxUnix2DosFilename(wxBuffer); #if wxUSE_UNICODE wxWCharBuffer retBuffer (wxBuffer); delete[] wxBuffer; return retBuffer; #else wxStrcpy(zHome, wxBuffer); delete[] wxBuffer; return zHome; #endif } } delete[] wxBuffer; return (wxChar*)wxEmptyString; // No home known! }