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:84
std::vector< std::string > StringVector
Definition containers.h:33
void correctPath(const StringVector &list)
Correct a possible wrong PATH variable.
Definition portable.cpp:532
FILE * popen(const DString &name, const DString &type)
Definition portable.cpp:495
std::ifstream openInputStream(const DString &name, bool binary=false, bool openAtEnd=false)
Definition portable.cpp:692
double getSysElapsedTime()
Definition portable.cpp:113
void setenv(const DString &variable, const DString &value)
Definition portable.cpp:302
const char * ghostScriptCommand()
Definition portable.cpp:453
uint32_t pid()
Definition portable.cpp:264
int system(const DString &command, const DString &args, bool commandHasConsole=true)
Definition portable.cpp:121
int pclose(FILE *stream)
Definition portable.cpp:504
DString getenv(const DString &variable)
Definition portable.cpp:337
void unlink(const DString &fileName)
Definition portable.cpp:560
DString removeLongPathMarker(const DString &path)
Definition portable.cpp:656
bool fileSystemIsCaseSensitive()
Definition portable.cpp:486
DString pathSeparator()
Definition portable.cpp:390
size_t recodeUtf8StringToW(const DString &inputStr, uint16_t **buf)
Definition portable.cpp:639
bool isAbsolutePath(const DString &fileName)
Definition portable.cpp:513
DString pathListSeparator()
Definition portable.cpp:399
std::ofstream openOutputStream(const DString &name, bool append=false)
Definition portable.cpp:681
FILE * fopen(const DString &fileName, const DString &mode)
Definition portable.cpp:365
const char * commandExtension()
Definition portable.cpp:477
const char * strnstr(const char *haystack, const char *needle, size_t haystack_len)
Definition portable.cpp:616
const char * devNull()
Definition portable.cpp:630
int fclose(FILE *f)
Definition portable.cpp:385
void unsetenv(const DString &variable)
Definition portable.cpp:317
bool checkForExecutable(const DString &fileName)
Definition portable.cpp:439
void setShortDir()
Definition portable.cpp:569
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)