Doxygen
Loading...
Searching...
No Matches
portable.h
Go to the documentation of this file.
1#ifndef PORTABLE_H
2#define PORTABLE_H
3
4#include <cstdint>
5#include <cstdio>
6#include <fstream>
7#include <sys/types.h>
8
9#include "containers.h"
10#include "dstring.h"
11
12/** @file
13 * @brief Portable versions of functions that are platform dependent.
14 */
15
16namespace Portable
17{
18 int system(const DString &command,const DString &args,bool commandHasConsole=true);
19 uint32_t pid();
20 DString getenv(const DString &variable);
21 void setenv(const DString &variable,const DString &value);
22 void unsetenv(const DString &variable);
23 FILE * fopen(const DString &fileName,const DString &mode);
24 int fclose(FILE *f);
25 void unlink(const DString &fileName);
28 const char * ghostScriptCommand();
29 const char * commandExtension();
31 FILE * popen(const DString &name,const DString &type);
32 int pclose(FILE *stream);
33 double getSysElapsedTime();
34 bool isAbsolutePath(const DString &fileName);
35 void correctPath(const StringVector &list);
36 void setShortDir();
37 const char * strnstr(const char *haystack, const char *needle, size_t haystack_len);
38 const char * devNull();
39 bool checkForExecutable(const DString &fileName);
40 size_t recodeUtf8StringToW(const DString &inputStr,uint16_t **buf);
41 std::ofstream openOutputStream(const DString &name,bool append=false);
42 std::ifstream openInputStream(const DString &name,bool binary=false,bool openAtEnd=false);
44}
45
46
47extern "C" {
48 void * portable_iconv_open(const char *tocode, const char *fromcode);
49 size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft,
50 char* * outbuf, size_t *outbytesleft);
51 int portable_iconv_close (void *cd);
52}
53
54#endif
55
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
std::vector< std::string > StringVector
Definition containers.h:33
void correctPath(const StringVector &list)
Correct a possible wrong PATH variable.
Definition portable.cpp:516
FILE * popen(const DString &name, const DString &type)
Definition portable.cpp:479
std::ifstream openInputStream(const DString &name, bool binary=false, bool openAtEnd=false)
Definition portable.cpp:676
double getSysElapsedTime()
Definition portable.cpp:97
void setenv(const DString &variable, const DString &value)
Definition portable.cpp:286
const char * ghostScriptCommand()
Definition portable.cpp:437
uint32_t pid()
Definition portable.cpp:248
int system(const DString &command, const DString &args, bool commandHasConsole=true)
Definition portable.cpp:105
int pclose(FILE *stream)
Definition portable.cpp:488
DString getenv(const DString &variable)
Definition portable.cpp:321
void unlink(const DString &fileName)
Definition portable.cpp:544
DString removeLongPathMarker(const DString &path)
Definition portable.cpp:640
bool fileSystemIsCaseSensitive()
Definition portable.cpp:470
DString pathSeparator()
Definition portable.cpp:374
size_t recodeUtf8StringToW(const DString &inputStr, uint16_t **buf)
Definition portable.cpp:623
bool isAbsolutePath(const DString &fileName)
Definition portable.cpp:497
DString pathListSeparator()
Definition portable.cpp:383
std::ofstream openOutputStream(const DString &name, bool append=false)
Definition portable.cpp:665
FILE * fopen(const DString &fileName, const DString &mode)
Definition portable.cpp:349
const char * commandExtension()
Definition portable.cpp:461
const char * strnstr(const char *haystack, const char *needle, size_t haystack_len)
Definition portable.cpp:600
const char * devNull()
Definition portable.cpp:614
int fclose(FILE *f)
Definition portable.cpp:369
void unsetenv(const DString &variable)
Definition portable.cpp:301
bool checkForExecutable(const DString &fileName)
Definition portable.cpp:423
void setShortDir()
Definition portable.cpp:553
int portable_iconv_close(void *cd)
size_t portable_iconv(void *cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
void * portable_iconv_open(const char *tocode, const char *fromcode)