--- parser3/src/include/pa_common.h 2003/03/20 08:11:13 1.89.2.13.2.3 +++ parser3/src/include/pa_common.h 2003/11/06 08:48:59 1.95 @@ -8,16 +8,13 @@ #ifndef PA_COMMON_H #define PA_COMMON_H -static const char* IDENT_COMMON_H="$Date: 2003/03/20 08:11:13 $"; - +static const char* IDENT_COMMON_H="$Date: 2003/11/06 08:48:59 $"; #include "pa_string.h" #include "pa_hash.h" -//#include "pa_value.h" -//typedef Hash HashStringValue; - -class HashStringValue; +class Value; +typedef Hash HashStringValue; // replace system s*nprintf with our versions #undef vsnprintf @@ -59,40 +56,19 @@ inline long lseek( int handle, long offs #endif -#ifdef HAVE_TRUNC -# ifndef trunc -extern "C" double trunc(double); -# endif -#else -inline double trunc(double param) { return param > 0? floor(param) : ceil(param); } -#endif - -#ifdef HAVE_ROUND -# ifndef round -extern "C" double round(double); -# endif -#else -inline double round(double param) { return floor(param+0.5); } -#endif -#ifdef HAVE_SIGN -# ifndef sign -extern "C" double sign(double); -# endif -#else -inline double sign(double param) { return param > 0 ? 1 : ( param < 0 ? -1 : 0 ); } -#endif - -/// yields to OS for secs secs and usecs milliseconds -int pa_sleep(unsigned long secs, unsigned long usecs); - /** under WIN32 "t" mode fixes DOS chars OK, can't say that about other systems/ line break styles */ void fix_line_breaks( - char *buf, - size_t& size ///< may change! used to speedup next actions + char *str, + size_t& length///< may change! used to speedup next actions ); +int pa_lock_shared_blocking(int fd); +int pa_lock_exclusive_blocking(int fd); +int pa_lock_exclusive_nonblocking(int fd); +int pa_unlock(int fd); + typedef void (*File_read_action)( struct stat& finfo, int f, @@ -118,14 +94,14 @@ bool file_read_action_under_lock(const S @returns true if read OK */ -char *file_read_text(Charset& charset, +char *file_read_text(Request_charsets& charsets, const String& file_spec, bool fail_on_read_problem=true, HashStringValue* options=0/*, HashStringValue* * out_fields=0*/); struct File_read_result { bool success; - char* data; size_t size; + char* str; size_t length; HashStringValue* headers; }; @@ -137,7 +113,7 @@ struct File_read_result { @returns true if read OK */ -File_read_result file_read(Charset& charset, +File_read_result file_read(Request_charsets& charsets, const String& file_spec, bool as_text, HashStringValue* options=0, @@ -186,7 +162,7 @@ bool entry_exists(const char* fname, str bool entry_exists(const String& file_spec); bool file_readable(const String& file_spec); bool dir_readable(const String& file_spec); -const String* file_readable(String& path, String& name); +const String* file_readable(const String& path, const String& name); bool file_executable(const String& file_spec); bool file_stat(const String& file_spec, @@ -208,13 +184,6 @@ char *lsplit(char **string_ref,char deli char *rsplit(char *string, char delim); const char* format(double value, char *fmt); -#ifndef max -inline int max(int a, int b) { return a>b?a:b; } -inline int min(int a, int b){ return ab?a:b; } -inline size_t min(size_t a, size_t b){ return a