// Copyright (C) 2004 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #ifndef DLIB_MISC_API_KERNEl_1_ #define DLIB_MISC_API_KERNEl_1_ #ifdef DLIB_ISO_CPP_ONLY #error "DLIB_ISO_CPP_ONLY is defined so you can't use this OS dependent code. Turn DLIB_ISO_CPP_ONLY off if you want to use it." #endif #include "misc_api_kernel_abstract.h" #include "../algs.h" #include <string> #include "../uintn.h" namespace dlib { // ---------------------------------------------------------------------------------------- void sleep ( unsigned long milliseconds ); // ---------------------------------------------------------------------------------------- std::string get_current_dir ( ); // ---------------------------------------------------------------------------------------- class set_current_dir_error : public error { public: set_current_dir_error( const std::string& a ): error(a) {} }; void set_current_dir ( const std::string& new_dir ); // ---------------------------------------------------------------------------------------- class timestamper { /*! INITIAL VALUE - last_time == 0 - offset == 0 - dword_max == 2^32 CONVENTION - last_time == the time returned by GetTickCount() the last time we called it. - offset == the number of microseconds we should add to the result of GetTickCount() so that it is correct. - dword_max == 2^32. This is the number of values representable by a DWORD. !*/ mutable unsigned long last_time; mutable uint64 offset; mutable uint64 dword_max; public: timestamper( ) : last_time(0), offset(0) { dword_max = 0xFFFFFFFF; ++dword_max; } uint64 get_timestamp ( ) const; }; // ---------------------------------------------------------------------------------------- class dir_create_error : public error { public: dir_create_error( const std::string& dir_name ) : error(EDIR_CREATE,"Error creating directory '" + dir_name + "'."), name(dir_name) {} ~dir_create_error() throw() {} const std::string name; }; void create_directory ( const std::string& dir ); // ---------------------------------------------------------------------------------------- } #ifdef NO_MAKEFILE #include "misc_api_kernel_1.cpp" #endif #endif // DLIB_MISC_API_KERNEl_1_