diff options
| author | Josh Blum <josh@joshknows.com> | 2012-05-15 11:11:35 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2012-05-16 10:59:09 -0700 | 
| commit | 8d5dc71d64e91d0ed85730e3c2a5b9ea494dc25c (patch) | |
| tree | c7b0a599c0e26f0f00adbceef9f4a94d8d318a21 | |
| parent | 78bf395b2d9ab0ae3ec2b9c7cd583f30a4780d95 (diff) | |
| download | uhd-8d5dc71d64e91d0ed85730e3c2a5b9ea494dc25c.tar.gz uhd-8d5dc71d64e91d0ed85730e3c2a5b9ea494dc25c.tar.bz2 uhd-8d5dc71d64e91d0ed85730e3c2a5b9ea494dc25c.zip  | |
uhd: used shared get_tmp_path for logging as well
Moved some of the log.cpp tmp paths smarts into paths as well
| -rw-r--r-- | host/lib/utils/log.cpp | 47 | ||||
| -rw-r--r-- | host/lib/utils/paths.cpp | 30 | 
2 files changed, 31 insertions, 46 deletions
diff --git a/host/lib/utils/log.cpp b/host/lib/utils/log.cpp index 31d11796e..d6d1786c7 100644 --- a/host/lib/utils/log.cpp +++ b/host/lib/utils/log.cpp @@ -1,5 +1,5 @@  // -// Copyright 2011 Ettus Research LLC +// Copyright 2012 Ettus Research LLC  //  // This program is free software: you can redistribute it and/or modify  // it under the terms of the GNU General Public License as published by @@ -18,6 +18,7 @@  #include <uhd/utils/log.hpp>  #include <uhd/utils/msg.hpp>  #include <uhd/utils/static.hpp> +#include <uhd/utils/paths.hpp>  #include <boost/filesystem.hpp>  #include <boost/format.hpp>  #include <boost/thread/mutex.hpp> @@ -35,12 +36,6 @@ namespace boost{ namespace interprocess{  #else  #include <boost/interprocess/sync/file_lock.hpp>  #endif -#ifdef BOOST_MSVC -#define USE_GET_TEMP_PATH -#include <Windows.h> //GetTempPath -#endif -#include <stdio.h> //P_tmpdir -#include <cstdlib> //getenv  #include <fstream>  #include <sstream>  #include <cctype> @@ -50,42 +45,6 @@ namespace pt = boost::posix_time;  namespace ip = boost::interprocess;  /*********************************************************************** - * Helper function to get the system's temporary path - **********************************************************************/ -static fs::path get_temp_path(void){ -    const char *tmp_path = NULL; - -    //try the official uhd temp path environment variable -    tmp_path = std::getenv("UHD_TEMP_PATH"); -    if (tmp_path != NULL) return tmp_path; - -    //try the windows function if available -    #ifdef USE_GET_TEMP_PATH -    char lpBuffer[2048]; -    if (GetTempPath(sizeof(lpBuffer), lpBuffer)) return lpBuffer; -    #endif - -    //try windows environment variables -    tmp_path = std::getenv("TMP"); -    if (tmp_path != NULL) return tmp_path; - -    tmp_path = std::getenv("TEMP"); -    if (tmp_path != NULL) return tmp_path; - -    //try the stdio define if available -    #ifdef P_tmpdir -        return P_tmpdir; -    #endif - -    //try unix environment variables -    tmp_path = std::getenv("TMPDIR"); -    if (tmp_path != NULL) return tmp_path; - -    //give up and use the unix default -    return "/tmp"; -} - -/***********************************************************************   * Global resources for the logger   **********************************************************************/  class log_resource_type{ @@ -119,7 +78,7 @@ public:      void log_to_file(const std::string &log_msg){          boost::mutex::scoped_lock lock(_mutex);          if (_file_lock == NULL){ -            const std::string log_path = (get_temp_path() / "uhd.log").string(); +            const std::string log_path = (fs::path(uhd::get_tmp_path()) / "uhd.log").string();              _file_stream.open(log_path.c_str(), std::fstream::out | std::fstream::app);              _file_lock = new ip::file_lock(log_path.c_str());          } diff --git a/host/lib/utils/paths.cpp b/host/lib/utils/paths.cpp index 4fc877d5d..43094521a 100644 --- a/host/lib/utils/paths.cpp +++ b/host/lib/utils/paths.cpp @@ -1,5 +1,5 @@  // -// Copyright 2010-2011 Ettus Research LLC +// Copyright 2010-2012 Ettus Research LLC  //  // This program is free software: you can redistribute it and/or modify  // it under the terms of the GNU General Public License as published by @@ -26,6 +26,10 @@  #include <vector>  #include <cstdlib> //getenv  #include <cstdio>  //P_tmpdir +#ifdef BOOST_MSVC +#define USE_GET_TEMP_PATH +#include <windows.h> //GetTempPath +#endif  namespace fs = boost::filesystem; @@ -87,13 +91,35 @@ std::vector<fs::path> get_module_paths(void){   * Implement the functions in paths.hpp   **********************************************************************/  std::string uhd::get_tmp_path(void){ -    const char *tmp_path = std::getenv("TMP"); +    const char *tmp_path = NULL; + +    //try the official uhd temp path environment variable +    tmp_path = std::getenv("UHD_TEMP_PATH"); +    if (tmp_path != NULL) return tmp_path; + +    //try the windows function if available +    #ifdef USE_GET_TEMP_PATH +    char lpBuffer[2048]; +    if (GetTempPath(sizeof(lpBuffer), lpBuffer)) return lpBuffer; +    #endif + +    //try windows environment variables +    tmp_path = std::getenv("TMP");      if (tmp_path != NULL) return tmp_path; +    tmp_path = std::getenv("TEMP"); +    if (tmp_path != NULL) return tmp_path; + +    //try the stdio define if available      #ifdef P_tmpdir      if (P_tmpdir != NULL) return P_tmpdir;      #endif +    //try unix environment variables +    tmp_path = std::getenv("TMPDIR"); +    if (tmp_path != NULL) return tmp_path; + +    //give up and use the unix default      return "/tmp";  }  | 
