// uuid.cpp - UUID subroutines.
//
// (c) 2012-2015 Xestia Software Development.
//
// This file is part of Xestia Address Book.
//
// Xestia Address Book is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by the
// Free Software Foundation, version 3 of the license.
//
// Xestia Address Book is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with Xestia Address Book. If not, see
#include
wxString GenerateUUID()
{
#if defined(__WIN32__)
#include
UUID UUIDData;
UuidCreate(&UUIDData);
wchar_t* UUIDStr = 0;
UuidToString(&UUIDData, (RPC_WSTR*)&UUIDStr);
wxString Result(UUIDStr);
#elif defined(__HAIKU__)
#else
#include
wxString Result;
FILE *uuid_hdl = popen("uuidgen", "r");
if (uuid_hdl == NULL) {
return Result;
}
char strdata[64];
std::string uuidout;
while (fgets(strdata, sizeof(strdata), uuid_hdl) != NULL){
uuidout.append(strdata);
}
pclose(uuid_hdl);
Result = wxString::Format(wxT("%s"), uuidout);
Result.Trim();
#endif
return Result;
}