Main MRPT website > C++ reference for MRPT 1.3.2
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-2015, 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 (in #include <mrpt/system/os.h>)
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  /** Since MRPT 1.3.0 this function does nothing */
163  MRPT_DECLARE_DEPRECATED_FUNCTION("Deprecated: This function does nothing now. Do not call it.",
165  );
166 
167  /** For use in setConsoleColor */
169  {
174  };
175 
176  /** Changes the text color in the console for the text written from now on.
177  * The parameter "color" can be any value in TConsoleColor.
178  *
179  * By default the color of "cout" is changed, unless changeStdErr=true, in which case "cerr" is changed.
180  */
181  void BASE_IMPEXP setConsoleColor( TConsoleColor color, bool changeStdErr=false );
182 
183  /** @} */
184 
185  } // End of namespace
186 
187 } // End of namespace
188 
189 #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:168
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.
mrpt::system::TTimeStamp now()
A shortcut for system::getCurrentTime.
Definition: datetime.h:70
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.
#define MRPT_DECLARE_DEPRECATED_FUNCTION(__MSG, __FUNC)
Usage: MRPT_DECLARE_DEPRECATED_FUNCTION("Use XX instead", void myFunc(double));.
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.
void registerFatalExceptionHandlers()
Since MRPT 1.3.0 this function does nothing.
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.9.1 for MRPT 1.3.2 SVN:Unversioned directory at Thu Dec 10 00:07:55 UTC 2015