- /* 
-     Texel - A UCI chess engine. 
-     Copyright (C) 2013  Peter Ă–sterlund, peterosterlund2@gmail.com 
-   
-     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 
-     the Free Software Foundation, either version 3 of the License, or 
-     (at your option) any later version. 
-   
-     This program 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 this program.  If not, see <http://www.gnu.org/licenses/>. 
- */ 
-   
- /* 
-  * logger.hpp 
-  * 
-  *  Created on: Aug 6, 2013 
-  *      Author: petero 
-  */ 
-   
- #ifndef LOGGER_HPP_ 
- #define LOGGER_HPP_ 
-   
- #include "util.hpp" 
- #include "timeUtil.hpp" 
-   
- #include <sstream> 
- #include <iostream> 
- #include <iomanip> 
- #include <mutex> 
-   
-   
- namespace Logger { 
-     /** Get mutex for log synchronization. */ 
-     std::mutex& getLogMutex(); 
-   
-   
-     /** Thread-safe logging to cout. */ 
-     template <typename Func> void log(Func func) { 
-         std::stringstream ss; 
-         { 
-             std::stringstream t; 
-             t.precision(6); 
-             t << std::fixed << currentTime() << ' '; 
-             ss << t.str(); 
-         } 
-         func(ss); 
-         std::lock_guard<std::mutex> L(getLogMutex()); 
-         std::cout << ss.str() << std::endl; 
-     } 
- }; 
-   
- #endif /* LOGGER_HPP_ */ 
-