Main MRPT website > C++ reference
MRPT logo
os.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2014, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+ */
9 #ifndef FILE_MRPT_OS_H
10 #define FILE_MRPT_OS_H
11 
12 #include <mrpt/config.h>
13 
14 #include <cstdlib>
15 #include <cstdarg>
16 
17 // Duplicated here since <mrpt/system/os.h> is the only header that cannot include "utils_defs.h"
18 #include <mrpt/base/link_pragmas.h> // DLL import/export definitions
19 
20 #include <mrpt/utils/mrpt_stdint.h>
21 #include <mrpt/utils/mrpt_macros.h>
22 
23 namespace mrpt
24 {
25  /** This namespace provides a OS-independent interface to many useful functions: filenames manipulation, time and date, string parsing, file I/O, threading, memory allocation, etc.
26  * \sa mrpt::system::os \ingroup mrpt_base_grp
27  */
28  namespace system
29  {
30  /** \defgroup mrpt_system_os OS and compiler abstraction
31  * \ingroup mrpt_base_grp */
32 
33  /** This namespace provides a OS-independent interface to low-level functions.
34  * Most of these functions are converted into calls to standard functions, unless we are into Visual Studio 2005 (or newer). In that case the secure version
35  * of the standard library functions (prefix "_s") are used instead. \ingroup mrpt_base_grp mrpt_system_os
36  */
37  namespace os
38  {
39  /** \addtogroup mrpt_system_os
40  * @{ */
41 
42  /** An OS-independent version of sprintf (Notice the bufSize param, which may be ignored in some compilers)
43  * \sa utils::format
44  */
45  int BASE_IMPEXP sprintf(char *buf, size_t bufSize, const char *format, ...) MRPT_NO_THROWS MRPT_printf_format_check(3,4);
46 
47  /** An OS-independent version of vsprintf (Notice the bufSize param, which may be ignored in some compilers)
48  */
49  int BASE_IMPEXP vsprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS;
50 
51  /** An OS-independent version of vsnprintf (Notice the bufSize param, which may be ignored in some compilers)
52  */
53  int BASE_IMPEXP vsnprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS;
54 
55  /** An OS-independent version of fopen.
56  * \return It will always return NULL on any error.
57  */
58  FILE BASE_IMPEXP *fopen(const char *fileName,const char *mode) MRPT_NO_THROWS;
59 
60  /** An OS-independent version of fopen (std::string version)
61  * \return It will always return NULL on any error.
62  */
63  FILE BASE_IMPEXP *fopen(const std::string &fileName,const char *mode) MRPT_NO_THROWS;
64 
65  /** An OS-independent version of fprintf
66  */
67  int BASE_IMPEXP fprintf(FILE *fil, const char *format, ...) MRPT_NO_THROWS MRPT_printf_format_check(2,3);
68 
69  /** An OS-independent version of fscanf
70  * \return The number of fields correctly assigned
71  */
72  //int BASE_IMPEXP fscanf(FILE *fil, const char *format, ...) MRPT_NO_THROWS MRPT_scanf_format_check(2,3);
73 
74  /** An OS-independent version of fclose.
75  * \exception std::exception On trying to close a NULL file descriptor.
76  */
77  void BASE_IMPEXP fclose(FILE *f);
78 
79  /** An OS-independent version of strcat.
80  * \return It will always return the "dest" pointer.
81  */
82  char BASE_IMPEXP * strcat(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS;
83 
84  /** An OS-independent version of strcpy.
85  * \return It will always return the "dest" pointer.
86  */
87  char BASE_IMPEXP *strcpy(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS;
88 
89  /** An OS-independent version of strcmp.
90  * \return It will return 0 when both strings are equal, casi sensitive.
91  */
92  int BASE_IMPEXP _strcmp(const char*str1,const char*str2) MRPT_NO_THROWS;
93 
94  /** An OS-independent version of strcmpi.
95  * \return It will return 0 when both strings are equal, casi insensitive.
96  */
97  int BASE_IMPEXP _strcmpi(const char*str1,const char*str2) MRPT_NO_THROWS;
98 
99  /** An OS-independent version of strncmp.
100  * \return It will return 0 when both strings are equal, casi sensitive.
101  */
102  int BASE_IMPEXP _strncmp(const char*str,const char*subStr,size_t count) MRPT_NO_THROWS;
103 
104  /** An OS-independent version of strnicmp.
105  * \return It will return 0 when both strings are equal, casi insensitive.
106  */
107  int BASE_IMPEXP _strnicmp(const char*str,const char*subStr,size_t count) MRPT_NO_THROWS;
108 
109  /** An OS-independent version of strtoll.
110  */
111  int64_t BASE_IMPEXP _strtoll(const char *nptr, char **endptr, int base);
112 
113  /** An OS-independent version of strtoull.
114  */
115  uint64_t BASE_IMPEXP _strtoull(const char *nptr, char **endptr, int base);
116 
117  /** An OS-independent version of timegm (which is not present in all compilers): converts a time structure into an UTM time_t */
118  time_t BASE_IMPEXP timegm(struct tm *tm);
119 
120  /** An OS and compiler independent version of "memcpy"
121  */
122  void BASE_IMPEXP memcpy(
123  void *dest,
124  size_t destSize,
125  const void *src,
126  size_t copyCount ) MRPT_NO_THROWS;
127 
128  /** An OS-independent version of getch, which waits until a key is pushed.
129  * \return The pushed key code
130  */
131  int BASE_IMPEXP getch() MRPT_NO_THROWS;
132 
133  /** An OS-independent version of kbhit, which returns true if a key has been pushed.
134  */
135  bool BASE_IMPEXP kbhit() MRPT_NO_THROWS;
136 
137  /** @} */
138 
139  } // end namespace "os"
140 
141  /** \addtogroup mrpt_system_os
142  * @{ */
143 
144  /** Shows the message "Press any key to continue" (or other custom message) to the current standard output and returns when a key is pressed.
145  */
146  void BASE_IMPEXP pause(const std::string &msg = std::string("Press any key to continue...") ) MRPT_NO_THROWS;
147 
148  /** Clears the console window */
149  void BASE_IMPEXP clearConsole();
150 
151  /** Returns the MRPT compilation date
152  */
154 
155  /** Returns a string describing the MRPT version including the SVN number.
156  */
157  std::string BASE_IMPEXP MRPT_getVersion();
158 
159  /** Returns a const ref to a text with the same text that appears at the beginning of each MRPT file (useful for displaying the License text in GUIs) */
160  const std::string BASE_IMPEXP & getMRPTLicense();
161 
162  /** Call this to register handlers for fatal erros (memory access,etc) that show useful debug information (It is called automatically normally, no need for the user to explicitly call this method.).
163  */
165 
166  /** For use in setConsoleColor */
168  {
173  };
174 
175  /** Changes the text color in the console for the text written from now on.
176  * The parameter "color" can be any value in TConsoleColor.
177  *
178  * By default the color of "cout" is changed, unless changeStdErr=true, in which case "cerr" is changed.
179  */
180  void BASE_IMPEXP setConsoleColor( TConsoleColor color, bool changeStdErr=false );
181 
182  /** @} */
183 
184  } // End of namespace
185 
186 } // End of namespace
187 
188 #endif
int BASE_IMPEXP _strnicmp(const char *str, const char *subStr, size_t count) MRPT_NO_THROWS
An OS-independent version of strnicmp.
TConsoleColor
For use in setConsoleColor.
Definition: os.h:167
void BASE_IMPEXP memcpy(void *dest, size_t destSize, const void *src, size_t copyCount) MRPT_NO_THROWS
An OS and compiler independent version of "memcpy".
char BASE_IMPEXP * strcpy(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS
An OS-independent version of strcpy.
bool BASE_IMPEXP kbhit() MRPT_NO_THROWS
An OS-independent version of kbhit, which returns true if a key has been pushed.
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
int BASE_IMPEXP void BASE_IMPEXP fclose(FILE *f)
An OS-independent version of fscanf.
#define MRPT_NO_THROWS
Used after member declarations.
void BASE_IMPEXP registerFatalExceptionHandlers()
Call this to register handlers for fatal erros (memory access,etc) that show useful debug information...
STL namespace.
#define MRPT_printf_format_check(_FMT_, _VARARGS_)
int BASE_IMPEXP getch() MRPT_NO_THROWS
An OS-independent version of getch, which waits until a key is pushed.
std::string BASE_IMPEXP MRPT_getVersion()
Returns a string describing the MRPT version including the SVN number.
void BASE_IMPEXP pause(const std::string &msg=std::string("Press any key to continue...")) MRPT_NO_THROWS
Shows the message "Press any key to continue" (or other custom message) to the current standard outpu...
int64_t BASE_IMPEXP _strtoll(const char *nptr, char **endptr, int base)
An OS-independent version of strtoll.
time_t BASE_IMPEXP timegm(struct tm *tm)
An OS-independent version of timegm (which is not present in all compilers): converts a time structur...
int BASE_IMPEXP sprintf(char *buf, size_t bufSize, const char *format,...) MRPT_NO_THROWS MRPT_printf_format_check(3
An OS-independent version of sprintf (Notice the bufSize param, which may be ignored in some compiler...
std::string BASE_IMPEXP MRPT_getCompilationDate()
Returns the MRPT compilation date.
int BASE_IMPEXP vsnprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS
An OS-independent version of vsnprintf (Notice the bufSize param, which may be ignored in some compil...
void BASE_IMPEXP clearConsole()
Clears the console window.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
int BASE_IMPEXP int BASE_IMPEXP vsprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS
An OS-independent version of vsprintf (Notice the bufSize param, which may be ignored in some compile...
void BASE_IMPEXP setConsoleColor(TConsoleColor color, bool changeStdErr=false)
Changes the text color in the console for the text written from now on.
uint64_t BASE_IMPEXP _strtoull(const char *nptr, char **endptr, int base)
An OS-independent version of strtoull.
int BASE_IMPEXP _strcmpi(const char *str1, const char *str2) MRPT_NO_THROWS
An OS-independent version of strcmpi.
int BASE_IMPEXP fprintf(FILE *fil, const char *format,...) MRPT_NO_THROWS MRPT_printf_format_check(2
An OS-independent version of fprintf.
int BASE_IMPEXP _strcmp(const char *str1, const char *str2) MRPT_NO_THROWS
An OS-independent version of strcmp.
int BASE_IMPEXP _strncmp(const char *str, const char *subStr, size_t count) MRPT_NO_THROWS
An OS-independent version of strncmp.
FILE BASE_IMPEXP * fopen(const char *fileName, const char *mode) MRPT_NO_THROWS
An OS-independent version of fopen.
const std::string BASE_IMPEXP & getMRPTLicense()
Returns a const ref to a text with the same text that appears at the beginning of each MRPT file (use...
char BASE_IMPEXP * strcat(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS
An OS-independent version of strcat.



Page generated by Doxygen 1.8.8 for MRPT 1.2.2 SVN:Unversioned directory at Tue Oct 14 02:14:08 UTC 2014