diff options
author | Pixel <Pixel> | 2002-07-21 11:12:13 +0000 |
---|---|---|
committer | Pixel <Pixel> | 2002-07-21 11:12:13 +0000 |
commit | 6528f07c516efe4d3b344f01740067878d5d9a43 (patch) | |
tree | f097e6797752dffe7b498a4f153e83bdeb59f024 /includes/Handle.h | |
parent | b54786a5120b48bd98fc4b199176d45bda3c2d67 (diff) |
Hello Baltisot
Diffstat (limited to 'includes/Handle.h')
-rw-r--r-- | includes/Handle.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/includes/Handle.h b/includes/Handle.h new file mode 100644 index 0000000..3b9c9dc --- /dev/null +++ b/includes/Handle.h @@ -0,0 +1,50 @@ +#ifndef __HANDLE_H__ +#define __HANDLE_H__ +#ifdef __cplusplus + +#include <zlib.h> +#include <unistd.h> +#include <iostream.h> +#include <String.h> +#include <Exceptions.h> + +#include <sys/types.h> +#include <time.h> + +class Handle : public Base { + public: + Handle(const Handle &); + virtual ~Handle(); + virtual ssize_t read(void *buf, size_t count) throw (GeneralException); + virtual ssize_t write(const void *buf, size_t count) throw (GeneralException); + bool IsClosed(void); + bool IsNonBlock(void); + void SetNonBlock(void); + virtual bool CanRead(); + virtual bool CanWrite(); + virtual String GetName(); + virtual ssize_t GetSize(); + virtual time_t GetModif(); + void close() throw (GeneralException); + int GetHandle(); + virtual bool CanWatch(); + virtual void Dup(const Handle &); + virtual void SetZ(int) throw (GeneralException); + protected: + Handle(int h); + private: + ssize_t uwrite(const void *, size_t) throw (GeneralException); + ssize_t uread(void *, size_t); + int h; + bool closed, nonblock; + gzFile zfile; + int z; +}; + +Handle & operator<<(Handle &, const String &); +Handle & operator>>(Handle &, String &); + +#else +#error This only works with a C++ compiler +#endif +#endif |