int main(int argc,char **argv) { wxPuts(wxGetHomeDir()); wxPuts(wxGetOsDescription()); wxPuts(wxGetUserName()); wxPuts(wxGetFullHostName()); long mem = wxGetFreeMemory().ToLong(); wxPrintf(wxT("Memory: %d\n"),mem); return 0; }
std::vector<std::string> WXW_GetComputerIPs () { std::vector<std::string> aryReturn; wxIPV4address ipAddress; ipAddress.Hostname (wxGetFullHostName ()); wxString strAddr = ipAddress.IPAddress (); aryReturn.push_back (RadXmlCommon::convertwxStringToString (strAddr)); return (aryReturn); }
wxString wxGetFullHostName() { static const size_t hostnameSize = 257; wxString buf; bool ok = wxGetFullHostName(wxStringBuffer(buf, hostnameSize), hostnameSize); if ( !ok ) buf.Empty(); return buf; }
int t04() { wxPuts(wxGetHomeDir()); wxPuts(wxGetOsDescription()); wxPuts(wxGetUserName()); wxPuts(wxGetFullHostName()); wxMemorySize mem = wxGetFreeMemory(); wxPrintf(wxT("Memory: %s\n"), mem.ToString()); return EXIT_SUCCESS; }
void wxTerminal::DoWritePrompt() { wxString prompt; for ( size_t n=0; n < m_promptFormat.Len(); ++n ) { wxChar c = m_promptFormat[n]; if ( c != wxT('%') ) prompt += c; // If this is a standard character, add it to the string else { c = m_promptFormat[++n]; // If it was '%', the next char determines what to do if ( c==wxT('%') ) { prompt += c; // %% really means it continue; } if ( c==wxT('H') ) { prompt += wxGetFullHostName(); // Full host-name continue; } if ( c==wxT('h') ) { prompt += wxGetHostName(); // Less-full host-name continue; } if ( c==wxT('u') ) { prompt += wxGetUserId(); // Add user-name to prompt continue; } if ( c==wxT('w') ) { prompt += m_workingDir; // Add Current Working Dir continue; } if ( c==wxT('W') ) { wxString tmpwd = m_workingDir; wxString sep = wxFileName::GetPathSeparator(); if(tmpwd.EndsWith(sep)) { tmpwd.RemoveLast(); } prompt += tmpwd.AfterLast(wxFILE_SEP_PATH); // Filename-bit only of cwd continue; } } } int promptStart = m_textCtrl->GetLastPosition(); m_textCtrl->AppendText( prompt ); // write the prompt, // Cancel it, whether there's a valid one or not: even an old selection interferes m_textCtrl->SetSelection( m_textCtrl->GetLastPosition(), m_textCtrl->GetLastPosition() ); m_textCtrl->SetInsertionPointEnd(); m_commandStart = m_textCtrl->GetInsertionPoint(); m_textCtrl->SetStyle(promptStart, m_commandStart-1, m_promptStyle); // restore default style m_textCtrl->SetDefaultStyle( m_defaultStyle ); m_textCtrl->SetFocus(); }
wxString wxGetEmailAddress() { wxString email; wxString host = wxGetFullHostName(); if ( !host.empty() ) { wxString user = wxGetUserId(); if ( !user.empty() ) { email << user << wxT('@') << host; } } return email; }
int main( int argc, char** argv ) { // initialize wxWidgets wxInitializer init; wxPrintf( wxT("Hello in wxWidgets World!\n\n") ); // print some system info... wxPuts(wxGetHomeDir()); wxPuts(wxGetOsDescription()); wxPuts(wxGetUserName()); wxPuts(wxGetFullHostName()); long mem = wxGetFreeMemory().ToLong(); wxPrintf(wxT("Memory: %ld\n"), mem); return 0; }
void InteractiveOutputTestCase::TestOsInfo() { #ifdef TEST_INFO_FUNCTIONS wxPuts(wxT("*** Testing OS info functions ***\n")); int major, minor; wxGetOsVersion(&major, &minor); wxPrintf(wxT("Running under: %s, version %d.%d\n"), wxGetOsDescription().c_str(), major, minor); wxPrintf(wxT("%ld free bytes of memory left.\n"), wxGetFreeMemory().ToLong()); wxPrintf(wxT("Host name is %s (%s).\n"), wxGetHostName().c_str(), wxGetFullHostName().c_str()); wxPuts(wxEmptyString); #endif // TEST_INFO_FUNCTIONS }
bool wxGISServer::SetupLog(const wxString &sLogPath) { if(sLogPath.IsEmpty()) { wxLogError(_("wxGISServer: Failed to get log folder")); return false; } if(!wxDirExists(sLogPath)) wxFileName::Mkdir(sLogPath, 0777, wxPATH_MKDIR_FULL); wxDateTime dt(wxDateTime::Now()); wxString logfilename = sLogPath + wxFileName::GetPathSeparator() + wxString::Format(wxT("srvlog_%.4d%.2d%.2d.log"),dt.GetYear(), dt.GetMonth() + 1, dt.GetDay()); if(m_LogFile.IsOpened()) m_LogFile.Close(); if(!m_LogFile.Open(logfilename.GetData(), wxT("a+"))) wxLogError(_("wxGISServer: Failed to open log file %s"), logfilename.c_str()); wxLog::SetActiveTarget(new wxLogStderr(m_LogFile.fp())); #ifdef WXGISPORTABLE wxLogMessage(wxT("Portable")); #endif wxLogMessage(wxT(" ")); wxLogMessage(wxT("####################################################################")); wxLogMessage(wxT("## %s ##"),wxNow().c_str()); wxLogMessage(wxT("####################################################################")); long dFreeMem = wxMemorySize(wxGetFreeMemory() / 1048576).ToLong(); wxLogMessage(_("HOST '%s': OS desc - %s, free memory - %u Mb"), wxGetFullHostName().c_str(), wxGetOsDescription().c_str(), dFreeMem); wxLogMessage(_("wxGISServer: %s %s is initializing..."), GetAppName().c_str(), GetAppVersionString().c_str()); wxLogMessage(_("wxGISServer: Log file: %s"), logfilename.c_str()); wxString sCPLLogPath = sLogPath + wxFileName::GetPathSeparator() + wxString(wxT("gdal_log_cat.txt")); CPLString szCPLLogPath(sCPLLogPath.mb_str(wxConvUTF8)); CPLSetConfigOption("CPL_LOG", szCPLLogPath ); return true; }
bool wxGISApplication::SetupLog(const wxString &sLogPath, const wxString &sNamePrefix) { if(sLogPath.IsEmpty()) { wxLogError(_("wxGISApplication: Failed to get log folder")); return false; } if(!wxDirExists(sLogPath)) wxFileName::Mkdir(sLogPath, 0777, wxPATH_MKDIR_FULL); wxDateTime dt(wxDateTime::Now()); wxString logfilename = sLogPath + wxFileName::GetPathSeparator() + wxString::Format(wxT("%slog_%.4d%.2d%.2d.log"),sNamePrefix.c_str(), dt.GetYear(), dt.GetMonth() + 1, dt.GetDay()); if(m_LogFile.IsOpened()) m_LogFile.Close(); if(!m_LogFile.Open(logfilename.GetData(), wxT("a+"))) wxLogError(_("wxGISApplication: Failed to open log file %s"), logfilename.c_str()); wxLog::SetActiveTarget(new wxLogStderr(m_LogFile.fp())); #ifdef WXGISPORTABLE wxLogMessage(wxT("Portable")); #endif wxLogMessage(wxT(" ")); wxLogMessage(wxT("####################################################################")); wxLogMessage(wxT("## %s ##"),wxNow().c_str()); wxLogMessage(wxT("####################################################################")); wxLongLong nFreeMem = wxGetFreeMemory(); wxString sFreeMem = wxFileName::GetHumanReadableSize(wxULongLong(nFreeMem.GetHi(), nFreeMem.GetLo())); // long dFreeMem = wxMemorySize(wxGetFreeMemory() / 1048576).ToLong(); wxLogMessage(_("HOST '%s': OS desc - %s, free memory - %s"), wxGetFullHostName().c_str(), wxGetOsDescription().c_str(), sFreeMem.c_str()); wxLogMessage(_("wxGISApplication: %s %s is initializing..."), GetAppName().c_str(), GetAppVersionString().c_str()); wxLogMessage(_("wxGISApplication: Log file: %s"), logfilename.c_str()); return true; }
wxString Path::Normalise(const wxString &path){ #ifdef __WXMSW__ //We only need to set this up once, and do it the first time if(DriveLabels.empty()){ TCHAR drives[256]; if(GetLogicalDriveStrings(256, drives)){ LPTSTR drive = drives; int offset = _tcslen(drive) + 1; while(*drive){ wxString volumename = wxEmptyString; TCHAR label[256]; if(GetVolumeInformation(drive, label, sizeof(label), NULL, 0, NULL, NULL, 0)){ volumename.Printf(wxT("%s"),label); if(volumename != wxEmptyString){ DriveLabels[volumename] = wxString(drive).Left(2); } } drive += offset; } } } #endif if(path.find("@") == wxNOT_FOUND){ return path; } wxString token; wxString normalised = wxEmptyString; wxDateTime now = wxDateTime::Now(); wxStringTokenizer tkz(path, wxT("@"), wxTOKEN_RET_EMPTY_ALL); bool previousmatched = true; wxFileConfig config("", "", Locations::GetSettingsPath() + "variables.ini"); while(tkz.HasMoreTokens()){ token = tkz.GetNextToken(); wxString strValue, read; if(token == "date"){ token = now.FormatISODate(); normalised += token; previousmatched = true; } else if(token == "time"){ token = now.Format("%H") + "-" + now.Format("%M"); normalised += token; previousmatched = true; } else if(token == "YYYY" || token == "year"){ token = now.Format("%Y"); normalised += token; previousmatched = true; } else if(token == "MM" || token == "month"){ token = now.Format("%m"); normalised += token; previousmatched = true; } else if(token == "monthname"){ token = wxDateTime::GetMonthName(wxDateTime::Now().GetMonth()); normalised += token; previousmatched = true; } else if(token == "monthshortname"){ token = wxDateTime::GetMonthName(wxDateTime::Now().GetMonth(), wxDateTime::Name_Abbr); normalised += token; previousmatched = true; } else if(token == "DD" || token == "day"){ token = now.Format("%d"); normalised += token; previousmatched = true; } else if(token == "dayname"){ token = wxDateTime::GetWeekDayName(wxDateTime::Now().GetWeekDay()); normalised += token; previousmatched = true; } else if(token == "dayshortname"){ token = wxDateTime::GetWeekDayName(wxDateTime::Now().GetWeekDay(), wxDateTime::Name_Abbr); normalised += token; previousmatched = true; } else if(token == "hh" || token == "hour"){ token = now.Format(wxT("%H")); normalised += token; previousmatched = true; } else if(token == "mm" || token == "minute"){ token = now.Format("%M"); normalised += token; previousmatched = true; } else if(token == "dayofweek"){ int num = wxDateTime::Now().GetWeekDay(); if(num == 0) num = 7; token = wxString::Format("%d", num); normalised += token; previousmatched = true; } else if(token == "weekofyear"){ int num = wxDateTime::Now().GetWeekOfYear(); token = wxString::Format("%d", num); normalised += token; previousmatched = true; } else if(token == wxT("drive")){ normalised += wxPathOnly(wxStandardPaths::Get().GetExecutablePath()).Left(2); previousmatched = true; } else if(token == wxT("docs")){ normalised += wxStandardPaths::Get().GetDocumentsDir(); previousmatched = true; } else if(token == "username"){ normalised += wxGetUserId(); previousmatched = true; } else if(token == wxT("volume")){ #ifdef __WXMSW__ wxString name = wxEmptyString; WCHAR volumeLabel[256]; GetVolumeInformation(wxPathOnly(wxStandardPaths::Get().GetExecutablePath()).Left(3), volumeLabel, sizeof(volumeLabel), NULL, 0, NULL, NULL, 0); name.Printf(wxT("%s"),volumeLabel); normalised += name; #endif previousmatched = true; } else if(token == wxT("label")){ wxFileConfig autorun("", "", wxPathOnly(wxStandardPaths::Get().GetExecutablePath()).Left(3) + wxFILE_SEP_PATH + wxT("autorun.inf")); wxString label = autorun.Read(wxT("Autorun/Label")); normalised += label; previousmatched = true; } else if(DriveLabels[token] != wxEmptyString){ normalised += DriveLabels[token]; previousmatched = true; } else if(wxGetEnv(token , &strValue)){ normalised += strValue; previousmatched = true; } else if(config.HasGroup(token) && config.Read(token + wxT("/") + wxGetFullHostName(), &read)){ normalised += read; previousmatched = true; } else if(config.HasGroup(token) && config.Read(token + wxT("/") + _("Other"), &read)){ normalised += read; previousmatched = true; } else{ if(previousmatched){ normalised += token; } else{ normalised = normalised + wxT("@") + token; } //This time we did not match previousmatched = false; } } if(normalised.Length() == 2 && normalised.Right(1) == wxT(":")){ normalised += wxFILE_SEP_PATH; } wxFileName flReturn(normalised); if(flReturn.IsOk()){ //If we havent made any changes in this run then return, else scan again //as new variables may have been added return normalised == path ? path : Normalise(normalised); } return wxEmptyString; }
int MainRestartLoop(DBconn *serviceConn) { // clean up old jobs int rc; LogMessage(_("Clearing zombies"), LOG_DEBUG); rc = serviceConn->ExecuteVoid(wxT("CREATE TEMP TABLE pga_tmp_zombies(jagpid int4)")); if (serviceConn->BackendMinimumVersion(9, 2)) { rc = serviceConn->ExecuteVoid( wxT("INSERT INTO pga_tmp_zombies (jagpid) ") wxT("SELECT jagpid ") wxT(" FROM pgagent.pga_jobagent AG ") wxT(" LEFT JOIN pg_stat_activity PA ON jagpid=pid ") wxT(" WHERE pid IS NULL") ); } else { rc = serviceConn->ExecuteVoid( wxT("INSERT INTO pga_tmp_zombies (jagpid) ") wxT("SELECT jagpid ") wxT(" FROM pgagent.pga_jobagent AG ") wxT(" LEFT JOIN pg_stat_activity PA ON jagpid=procpid ") wxT(" WHERE procpid IS NULL") ); } if (rc > 0) { // There are orphaned agent entries // mark the jobs as aborted rc = serviceConn->ExecuteVoid( wxT("UPDATE pgagent.pga_joblog SET jlgstatus='d' WHERE jlgid IN (") wxT("SELECT jlgid ") wxT("FROM pga_tmp_zombies z, pgagent.pga_job j, pgagent.pga_joblog l ") wxT("WHERE z.jagpid=j.jobagentid AND j.jobid = l.jlgjobid AND l.jlgstatus='r');\n") wxT("UPDATE pgagent.pga_jobsteplog SET jslstatus='d' WHERE jslid IN ( ") wxT("SELECT jslid ") wxT("FROM pga_tmp_zombies z, pgagent.pga_job j, pgagent.pga_joblog l, pgagent.pga_jobsteplog s ") wxT("WHERE z.jagpid=j.jobagentid AND j.jobid = l.jlgjobid AND l.jlgid = s.jsljlgid AND s.jslstatus='r');\n") wxT("UPDATE pgagent.pga_job SET jobagentid=NULL, jobnextrun=NULL ") wxT(" WHERE jobagentid IN (SELECT jagpid FROM pga_tmp_zombies);\n") wxT("DELETE FROM pgagent.pga_jobagent ") wxT(" WHERE jagpid IN (SELECT jagpid FROM pga_tmp_zombies);\n") ); } rc = serviceConn->ExecuteVoid(wxT("DROP TABLE pga_tmp_zombies")); wxString hostname = wxGetFullHostName(); rc = serviceConn->ExecuteVoid( wxT("INSERT INTO pgagent.pga_jobagent (jagpid, jagstation) SELECT pg_backend_pid(), '") + hostname + wxT("'")); if (rc < 0) return rc; while (1) { bool foundJobToExecute = false; LogMessage(_("Checking for jobs to run"), LOG_DEBUG); DBresult *res = serviceConn->Execute( wxT("SELECT J.jobid ") wxT(" FROM pgagent.pga_job J ") wxT(" WHERE jobenabled ") wxT(" AND jobagentid IS NULL ") wxT(" AND jobnextrun <= now() ") wxT(" AND (jobhostagent = '' OR jobhostagent = '") + hostname + wxT("')") wxT(" ORDER BY jobnextrun")); if (res) { while(res->HasData()) { wxString jobid = res->GetString(wxT("jobid")); JobThread *jt = new JobThread(jobid); if (jt->Runnable()) { jt->Create(); jt->Run(); foundJobToExecute = true; } else { // Failed to launch the thread. Insert an entry with // "internal error" status in the joblog table, to leave // a trace of fact that we tried to launch the job. DBresult *res = serviceConn->Execute( wxT("INSERT INTO pgagent.pga_joblog(jlgid, jlgjobid, jlgstatus) ") wxT("VALUES (nextval('pgagent.pga_joblog_jlgid_seq'), ") + jobid + wxT(", 'i')")); if (res) delete res; // A thread object that's started will destroy itself when // it's finished, but one that never starts we'll have to // destory ourselves. delete jt; } res->MoveNext(); } delete res; LogMessage(_("Sleeping..."), LOG_DEBUG); WaitAWhile(); } else { LogMessage(_("Failed to query jobs table!"), LOG_ERROR); } if (!foundJobToExecute) DBconn::ClearConnections(); } return 0; }