vdr 2.6.1
|
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <float.h>
#include <iconv.h>
#include <math.h>
#include <poll.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "thread.h"
Go to the source code of this file.
Classes | |
class | cCharSetConv |
class | cString |
class | cNullTerminate |
class | cBase64Encoder |
class | cBitStream |
class | cTimeMs |
class | cReadLine |
class | cPoller |
class | cReadDir |
class | cFile |
class | cSafeFile |
class | cUnbufferedFile |
class | cLockFile |
class | cListObject |
class | cListGarbageCollector |
class | cListBase |
class | cList< T > |
class | cVector< T > |
class | cStringList |
class | cFileNameList |
class | cDynamicBuffer |
class | cHashObject |
class | cHashBase |
class | cHash< T > |
Macros | |
#define | esyslog(a...) void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() ) |
#define | isyslog(a...) void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() ) |
#define | dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) |
#define | LOG_ERROR esyslog("ERROR (%s,%d): %m", __FILE__, __LINE__) |
#define | LOG_ERROR_STR(s) esyslog("ERROR (%s,%d): %s: %m", __FILE__, __LINE__, s) |
#define | SECSINDAY 86400 |
#define | KILOBYTE(n) ((n) * 1024) |
#define | MEGABYTE(n) ((n) * 1024LL * 1024LL) |
#define | MALLOC(type, size) (type *)malloc(sizeof(type) * (size)) |
#define | CHECK(s) { if ((s) < 0) LOG_ERROR; } |
#define | FATALERRNO (errno && errno != EAGAIN && errno != EINTR) |
#define | BCDCHARTOINT(x) (10 * ((x & 0xF0) >> 4) + (x & 0xF)) |
#define | IsBitSet(v, b) ((v) & (1 << (b))) |
#define | Utf8BufSize(s) ((s) * 4) |
#define | Utf8to(conv, c) (cCharSetConv::SystemCharacterTable() ? to##conv(c) : tow##conv(c)) |
#define | Utf8is(ccls, c) (cCharSetConv::SystemCharacterTable() ? is##ccls(c) : isw##ccls(c)) |
#define | DEPRECATED_CFILE 0 |
#define | DEF_LIST_LOCK2(Class, Name) |
#define | DEF_LIST_LOCK(Class) DEF_LIST_LOCK2(Class, Class) |
#define | USE_LIST_LOCK_READ2(Class, Name) |
#define | USE_LIST_LOCK_READ(Class) USE_LIST_LOCK_READ2(Class, Class) |
#define | USE_LIST_LOCK_WRITE2(Class, Name) |
#define | USE_LIST_LOCK_WRITE(Class) USE_LIST_LOCK_WRITE2(Class, Class) |
#define | HASHSIZE 512 |
Typedefs | |
typedef unsigned char | uchar |
Functions | |
template<class T > | |
void | DELETENULL (T *&p) |
template<class T > | |
T | min (T a, T b) |
template<class T > | |
T | max (T a, T b) |
template<class T > | |
void | swap (T &a, T &b) |
template<class T > | |
int | sgn (T a) |
template<class T > | |
T | constrain (T v, T l, T h) |
void | syslog_with_tid (int priority, const char *format,...) __attribute__((format(printf |
int | BCD2INT (int x) |
template<class T > | |
T | get_unaligned (T *p) |
template<class T > | |
void | put_unaligned (unsigned int v, T *p) |
bool | DoubleEqual (double a, double b) |
int | Utf8CharLen (const char *s) |
uint | Utf8CharGet (const char *s, int Length=0) |
int | Utf8CharSet (uint c, char *s=NULL) |
int | Utf8SymChars (const char *s, int Symbols) |
int | Utf8StrLen (const char *s) |
char * | Utf8Strn0Cpy (char *Dest, const char *Src, int n) |
int | Utf8ToArray (const char *s, uint *a, int Size) |
int | Utf8FromArray (const uint *a, char *s, int Size, int Max=-1) |
ssize_t | safe_read (int filedes, void *buffer, size_t size) |
ssize_t | safe_write (int filedes, const void *buffer, size_t size) |
void | writechar (int filedes, char c) |
int | WriteAllOrNothing (int fd, const uchar *Data, int Length, int TimeoutMs=0, int RetryMs=0) |
char * | strcpyrealloc (char *dest, const char *src) |
char * | strn0cpy (char *dest, const char *src, size_t n) |
char * | strreplace (char *s, char c1, char c2) |
char * | strreplace (char *s, const char *s1, const char *s2) |
const char * | strchrn (const char *s, char c, size_t n) |
int | strcountchr (const char *s, char c) |
cString | strgetbefore (const char *s, char c, int n=1) |
const char * | strgetlast (const char *s, char c) |
char * | strgetlast (char *s, char c) |
char * | skipspace (const char *s) |
char * | stripspace (char *s) |
char * | compactspace (char *s) |
char * | compactchars (char *s, char c) |
cString | strescape (const char *s, const char *chars) |
cString | strgetval (const char *s, const char *name, char d='=') |
char * | strshift (char *s, int n) |
bool | startswith (const char *s, const char *p) |
bool | endswith (const char *s, const char *p) |
bool | isempty (const char *s) |
int | numdigits (int n) |
bool | isnumber (const char *s) |
int64_t | StrToNum (const char *s) |
bool | StrInArray (const char *a[], const char *s) |
double | atod (const char *s) |
cString | dtoa (double d, const char *Format="%f") |
cString | itoa (int n) |
uint16_t | Peek13 (const uchar *p) |
void | Poke13 (uchar *p, uint16_t v) |
cString | AddDirectory (const char *DirName, const char *FileName) |
bool | EntriesOnSameFileSystem (const char *File1, const char *File2) |
int | FreeDiskSpaceMB (const char *Directory, int *UsedMB=NULL) |
bool | DirectoryOk (const char *DirName, bool LogErrors=false) |
bool | MakeDirs (const char *FileName, bool IsDirectory=false) |
bool | RemoveFileOrDir (const char *FileName, bool FollowSymlinks=false) |
bool | RemoveEmptyDirectories (const char *DirName, bool RemoveThis=false, const char *IgnoreFiles[]=NULL) |
int | DirSizeMB (const char *DirName) |
char * | ReadLink (const char *FileName) |
bool | SpinUpDisk (const char *FileName) |
void | TouchFile (const char *FileName) |
time_t | LastModifiedTime (const char *FileName) |
off_t | FileSize (const char *FileName) |
cString | WeekDayName (int WeekDay) |
cString | WeekDayName (time_t t) |
cString | WeekDayNameFull (int WeekDay) |
cString | WeekDayNameFull (time_t t) |
cString | DayDateTime (time_t t=0) |
cString | TimeToString (time_t t) |
cString | DateString (time_t t) |
cString | ShortDateString (time_t t) |
cString | TimeString (time_t t) |
uchar * | RgbToJpeg (uchar *Mem, int Width, int Height, int &Size, int Quality=100) |
const char * | GetHostName (void) |
int | CompareInts (const void *a, const void *b) |
int | CompareStrings (const void *a, const void *b) |
int | CompareStringsIgnoreCase (const void *a, const void *b) |
int | CompareStringsNumerically (const void *a, const void *b) |
Variables | |
int | SysLogLevel |
cListGarbageCollector | ListGarbageCollector |
#define BCDCHARTOINT | ( | x | ) | (10 * ((x & 0xF0) >> 4) + (x & 0xF)) |
#define DEF_LIST_LOCK | ( | Class | ) | DEF_LIST_LOCK2(Class, Class) |
#define DEF_LIST_LOCK2 | ( | Class, | |
Name | |||
) |
#define dsyslog | ( | a... | ) | void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) |
#define esyslog | ( | a... | ) | void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() ) |
#define FATALERRNO (errno && errno != EAGAIN && errno != EINTR) |
#define isyslog | ( | a... | ) | void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() ) |
#define LOG_ERROR esyslog("ERROR (%s,%d): %m", __FILE__, __LINE__) |
#define LOG_ERROR_STR | ( | s | ) | esyslog("ERROR (%s,%d): %s: %m", __FILE__, __LINE__, s) |
#define MALLOC | ( | type, | |
size | |||
) | (type *)malloc(sizeof(type) * (size)) |
#define USE_LIST_LOCK_READ | ( | Class | ) | USE_LIST_LOCK_READ2(Class, Class) |
#define USE_LIST_LOCK_READ2 | ( | Class, | |
Name | |||
) |
#define USE_LIST_LOCK_WRITE | ( | Class | ) | USE_LIST_LOCK_WRITE2(Class, Class) |
#define USE_LIST_LOCK_WRITE2 | ( | Class, | |
Name | |||
) |
#define Utf8is | ( | ccls, | |
c | |||
) | (cCharSetConv::SystemCharacterTable() ? is##ccls(c) : isw##ccls(c)) |
#define Utf8to | ( | conv, | |
c | |||
) | (cCharSetConv::SystemCharacterTable() ? to##conv(c) : tow##conv(c)) |
cString AddDirectory | ( | const char * | DirName, |
const char * | FileName | ||
) |
Definition at line 402 of file tools.c.
Referenced by cLockFile::cLockFile(), DirSizeMB(), cFileNameList::Load(), RemoveEmptyDirectories(), and RemoveFileOrDir().
double atod | ( | const char * | s | ) |
char * compactchars | ( | char * | s, |
char | c | ||
) |
removes all occurrences of 'c' from the beginning an end of 's' and replaces sequences of multiple 'c's with a single 'c'.
Definition at line 248 of file tools.c.
Referenced by cString::CompactChars().
|
inline |
Definition at line 832 of file tools.h.
Referenced by CompareStringsNumerically(), and cStringList::Sort().
|
inline |
Definition at line 837 of file tools.h.
Referenced by cStringList::Sort().
|
inline |
Definition at line 842 of file tools.h.
References CompareStrings().
Referenced by cStringList::SortNumerically().
cString DateString | ( | time_t | t | ) |
cString DayDateTime | ( | time_t | t = 0 | ) |
bool DirectoryOk | ( | const char * | DirName, |
bool | LogErrors = false |
||
) |
Definition at line 481 of file tools.c.
Referenced by cLockFile::cLockFile(), and SpinUpDisk().
int DirSizeMB | ( | const char * | DirName | ) |
returns the total size of the files in the given directory, or -1 in case of an error
Definition at line 639 of file tools.c.
Referenced by DirSizeMB().
cString dtoa | ( | double | d, |
const char * | Format = "%f" |
||
) |
bool EntriesOnSameFileSystem | ( | const char * | File1, |
const char * | File2 | ||
) |
off_t FileSize | ( | const char * | FileName | ) |
int FreeDiskSpaceMB | ( | const char * | Directory, |
int * | UsedMB = NULL |
||
) |
|
inline |
Definition at line 82 of file tools.h.
References __attribute__().
const char * GetHostName | ( | void | ) |
bool MakeDirs | ( | const char * | FileName, |
bool | IsDirectory = false |
||
) |
|
inline |
Definition at line 88 of file tools.h.
References __attribute__().
char * ReadLink | ( | const char * | FileName | ) |
returns a new string allocated on the heap, which the caller must delete (or NULL in case of an error)
Definition at line 671 of file tools.c.
Referenced by cSafeFile::cSafeFile().
bool RemoveEmptyDirectories | ( | const char * | DirName, |
bool | RemoveThis = false , |
||
const char * | IgnoreFiles[] = NULL |
||
) |
Removes all empty directories under the given directory DirName.
If RemoveThis is true, DirName will also be removed if it is empty. IgnoreFiles can be set to an array of file names that will be ignored when considering whether a directory is empty. If IgnoreFiles is given, the array must end with a NULL pointer.
Definition at line 585 of file tools.c.
Referenced by RemoveEmptyDirectories().
bool RemoveFileOrDir | ( | const char * | FileName, |
bool | FollowSymlinks = false |
||
) |
Converts the given Memory to a JPEG image and returns a pointer to the resulting image.
Mem must point to a data block of exactly (Width * Height) triplets of RGB image data bytes. Upon return, Size will hold the number of bytes of the resulting JPEG data. Quality can be in the range 0..100 and controls the quality of the resulting image, where 100 is "best". The caller takes ownership of the result and has to delete it once it is no longer needed. The result may be NULL in case of an error.
ssize_t safe_read | ( | int | filedes, |
void * | buffer, | ||
size_t | size | ||
) |
Definition at line 53 of file tools.c.
Referenced by cUnbufferedFile::Read().
ssize_t safe_write | ( | int | filedes, |
const void * | buffer, | ||
size_t | size | ||
) |
Definition at line 65 of file tools.c.
Referenced by cUnbufferedFile::Write(), and writechar().
cString ShortDateString | ( | time_t | t | ) |
|
inline |
Definition at line 241 of file tools.h.
References cString::s.
const char * strchrn | ( | const char * | s, |
char | c, | ||
size_t | n | ||
) |
int strcountchr | ( | const char * | s, |
char | c | ||
) |
|
inline |
Definition at line 240 of file tools.h.
References cString::s, and strgetlast().
const char * strgetlast | ( | const char * | s, |
char | c | ||
) |
Definition at line 213 of file tools.c.
Referenced by strgetlast().
cString strgetval | ( | const char * | s, |
const char * | name, | ||
char | d = '=' |
||
) |
Returns the value part of a 'name=value' pair in s.
name must either be at the beginning of s, or has to be preceded by white space. There may be any number of white space around the '=' sign. The value is everything up to (and excluding) the next white space, or the end of s. If an other delimiter shall be used (like, e.g., ':'), it can be given as the third parameter. If name occurs more than once in s, only the first occurrence is taken.
bool StrInArray | ( | const char * | a[], |
const char * | s | ||
) |
Returns true if the string s is equal to one of the strings pointed to by the (NULL terminated) array a.
Definition at line 390 of file tools.c.
Referenced by RemoveEmptyDirectories().
char * stripspace | ( | char * | s | ) |
Definition at line 219 of file tools.c.
Referenced by compactspace().
char * strn0cpy | ( | char * | dest, |
const char * | src, | ||
size_t | n | ||
) |
Definition at line 131 of file tools.c.
Referenced by Utf8Strn0Cpy(), and WeekDayName().
char * strreplace | ( | char * | s, |
char | c1, | ||
char | c2 | ||
) |
char * strreplace | ( | char * | s, |
const char * | s1, | ||
const char * | s2 | ||
) |
char * strshift | ( | char * | s, |
int | n | ||
) |
int64_t StrToNum | ( | const char * | s | ) |
Converts the given string to a number.
The numerical part of the string may be followed by one of the letters K, M, G or T to abbreviate Kilo-, Mega-, Giga- or Terabyte, respectively (based on 1024). Everything after the first non-numeric character is silently ignored, as are any characters other than the ones mentioned here.
void syslog_with_tid | ( | int | priority, |
const char * | format, | ||
... | |||
) |
cString TimeString | ( | time_t | t | ) |
cString TimeToString | ( | time_t | t | ) |
uint Utf8CharGet | ( | const char * | s, |
int | Length = 0 |
||
) |
Returns the UTF-8 symbol at the beginning of the given string.
Length can be given from a previous call to Utf8CharLen() to avoid calculating it again. If no Length is given, Utf8CharLen() will be called.
Definition at line 825 of file tools.c.
Referenced by cCharSetConv::SetSystemCharacterTable(), and Utf8ToArray().
int Utf8CharLen | ( | const char * | s | ) |
Returns the number of character bytes at the beginning of the given string that form a UTF-8 symbol.
Definition at line 811 of file tools.c.
Referenced by cCharSetConv::SetSystemCharacterTable(), Utf8CharGet(), Utf8StrLen(), Utf8Strn0Cpy(), Utf8SymChars(), and Utf8ToArray().
int Utf8CharSet | ( | uint | c, |
char * | s = NULL |
||
) |
Converts the given UTF-8 symbol to a sequence of character bytes and copies them to the given string.
Returns the number of bytes written. If no string is given, only the number of bytes is returned and nothing is copied.
Definition at line 840 of file tools.c.
Referenced by Utf8FromArray().
int Utf8FromArray | ( | const uint * | a, |
char * | s, | ||
int | Size, | ||
int | Max = -1 |
||
) |
Converts the given array of UTF-8 symbols (including the terminating 0) into a sequence of character bytes of at most Size length.
Returns the number of character bytes written (without the terminating 0). If Max is given, only that many symbols will be converted. The resulting string is always zero-terminated if Size is big enough.
int Utf8StrLen | ( | const char * | s | ) |
char * Utf8Strn0Cpy | ( | char * | Dest, |
const char * | Src, | ||
int | n | ||
) |
int Utf8SymChars | ( | const char * | s, |
int | Symbols | ||
) |
Returns the number of character bytes at the beginning of the given string that form at most the given number of UTF-8 symbols.
Definition at line 874 of file tools.c.
Referenced by WeekDayName().
int Utf8ToArray | ( | const char * | s, |
uint * | a, | ||
int | Size | ||
) |
cString WeekDayName | ( | int | WeekDay | ) |
Converts the given WeekDay (0=Sunday, 1=Monday, ...) to a three letter day name.
Definition at line 1172 of file tools.c.
Referenced by DateString(), DayDateTime(), and WeekDayName().
cString WeekDayName | ( | time_t | t | ) |
cString WeekDayNameFull | ( | int | WeekDay | ) |
Converts the given WeekDay (0=Sunday, 1=Monday, ...) to a full day name.
Definition at line 1193 of file tools.c.
Referenced by WeekDayNameFull().
cString WeekDayNameFull | ( | time_t | t | ) |
int WriteAllOrNothing | ( | int | fd, |
const uchar * | Data, | ||
int | Length, | ||
int | TimeoutMs = 0 , |
||
int | RetryMs = 0 |
||
) |
|
extern |
Definition at line 2120 of file tools.c.
Referenced by cListBase::Del().