summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/Action.h2
-rw-r--r--include/Buffer.h5
-rw-r--r--include/Confirm.h2
-rw-r--r--include/CopyJob.h4
-rw-r--r--include/Form.h2
-rw-r--r--include/Handle.h2
-rw-r--r--include/Image.h61
-rw-r--r--include/Input.h2
-rw-r--r--include/Makefile.am2
-rw-r--r--include/Menu.h2
-rw-r--r--include/Message.h2
-rw-r--r--include/Table.h2
12 files changed, 76 insertions, 12 deletions
diff --git a/include/Action.h b/include/Action.h
index 99ad7ea..d11162f 100644
--- a/include/Action.h
+++ b/include/Action.h
@@ -12,7 +12,7 @@ class Action : public Base {
Action(const String & = "");
virtual ~Action();
Action * Look4URL(const String &);
- virtual Task * Do(Variables *, Handle *) = 0;
+ virtual Task * Do(Variables *, Variables *, Handle *) = 0;
virtual void SendHead(Handle *);
virtual void SendFoot(Handle *);
virtual void ShowButton(Handle *, const String & = " Ok ", const String & = "start");
diff --git a/include/Buffer.h b/include/Buffer.h
index 5b35139..cf6481f 100644
--- a/include/Buffer.h
+++ b/include/Buffer.h
@@ -21,9 +21,12 @@ class Buffer : public Handle {
virtual String GetName();
virtual Buffer operator=(const Buffer &);
virtual bool CanWatch();
+ virtual ssize_t GetSize();
+ char operator[](size_t) const;
+ char & operator[](size_t);
private:
- char * buffer;
+ char * buffer, zero;
int realsiz, bufsiz, ptr;
};
diff --git a/include/Confirm.h b/include/Confirm.h
index be0b659..da0365d 100644
--- a/include/Confirm.h
+++ b/include/Confirm.h
@@ -11,7 +11,7 @@ class Confirm : public Action {
Confirm(const String & titre, const String & msg, const String & url, Action * yes, Action * no = 0);
virtual ~Confirm() { }
virtual String GetTitle();
- virtual Task * Do(Variables *, Handle *);
+ virtual Task * Do(Variables *, Variables *, Handle *);
private:
String tit, msg;
diff --git a/include/CopyJob.h b/include/CopyJob.h
index bd859bb..2a886c5 100644
--- a/include/CopyJob.h
+++ b/include/CopyJob.h
@@ -9,14 +9,14 @@
class CopyJob : public Task {
public:
- CopyJob(Handle *, Handle *, ssize_t = -1, bool = false);
+ CopyJob(Handle *, Handle *, ssize_t = -1, bool = false, bool = false);
virtual ~CopyJob();
virtual int Do() throw (GeneralException);
virtual String GetName();
private:
Handle * s, * d;
- bool ds;
+ bool ds, dd;
ssize_t siz, cursiz;
char buffer[COPY_BUFSIZ];
int r;
diff --git a/include/Form.h b/include/Form.h
index 77498a8..9e77967 100644
--- a/include/Form.h
+++ b/include/Form.h
@@ -13,7 +13,7 @@ class Form : public Action {
int nb, Action * ok = 0);
virtual ~Form() { }
virtual String GetTitle();
- virtual Task * Do(Variables *, Handle *);
+ virtual Task * Do(Variables *, Variables *, Handle *);
private:
String tit, iv, * nms, * ivs, * defs, ** lsts, ** dscs;
diff --git a/include/Handle.h b/include/Handle.h
index 9fef098..3b9c9dc 100644
--- a/include/Handle.h
+++ b/include/Handle.h
@@ -23,7 +23,7 @@ class Handle : public Base {
virtual bool CanRead();
virtual bool CanWrite();
virtual String GetName();
- virtual off_t GetSize();
+ virtual ssize_t GetSize();
virtual time_t GetModif();
void close() throw (GeneralException);
int GetHandle();
diff --git a/include/Image.h b/include/Image.h
new file mode 100644
index 0000000..8fd719c
--- /dev/null
+++ b/include/Image.h
@@ -0,0 +1,61 @@
+#ifndef __IMAGE_H__
+#define __IMAGE_H__
+#ifdef __cplusplus
+
+#include <Buffer.h>
+
+enum {
+ FORMAT_TGA_BASIC,
+} format_t;
+
+struct Color {
+ Color(unsigned char aR, unsigned char aG, unsigned char aB, unsigned char aA = 255) :
+ R(aR), G(aG), B(aB), A(aA) { }
+ unsigned char R, G, B, A;
+};
+
+class Image : public Buffer {
+ public:
+ Image(unsigned int, unsigned int);
+ virtual ~Image();
+ Color GetPixel(unsigned int, unsigned int);
+ void SetPixel(unsigned int, unsigned int, Color);
+ bool Prepare(unsigned int = FORMAT_TGA_BASIC);
+ void Fill(Color = Color(0, 0, 0));
+ virtual String GetName();
+ virtual bool CanWrite();
+
+ private:
+ typedef unsigned char Byte;
+ typedef unsigned short int Word;
+ typedef unsigned long int DWord;
+ struct TGAHeader {
+ Byte IDLength;
+ Byte ColorMapType;
+ Byte ImageType;
+ Word CM_FirstEntry;
+ Word CM_Length;
+ Byte CM_EntrySize;
+ Word IS_XOrigin;
+ Word IS_YOrigin;
+ Word IS_Width;
+ Word IS_Height;
+ Byte IS_Depth;
+ Byte IS_Descriptor;
+ } __attribute__((packed));
+
+ struct TGAFooter {
+ DWord ExtOffset;
+ DWord DevOffset;
+ char Sig[18];
+ } __attribute__((packed));
+
+ unsigned int x, y;
+ bool r;
+ Color * img;
+};
+
+#else
+#error This only works with a C++ compiler
+#endif
+#endif
diff --git a/include/Input.h b/include/Input.h
index 7aa0ff2..87190f1 100644
--- a/include/Input.h
+++ b/include/Input.h
@@ -14,7 +14,7 @@ class Input : public Handle {
virtual bool CanWrite();
virtual bool CanRead();
virtual String GetName();
- virtual off_t GetSize();
+ virtual ssize_t GetSize();
virtual time_t GetModif();
protected:
diff --git a/include/Makefile.am b/include/Makefile.am
index c748342..de443e0 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -2,4 +2,4 @@
pkginclude_HEADERS = \
Exceptions.h Handle.h String.h Output.h Socket.h HttpServ.h Variables.h Menu.h \
Action.h Message.h Form.h Confirm.h Table.h IRC.h Task.h Buffer.h General.h \
-CopyJob.h ReadJob.h Regex.h TaskMan.h InPipe.h OutPipe.h Input.h
+CopyJob.h ReadJob.h Regex.h TaskMan.h InPipe.h OutPipe.h Input.h Image.h
diff --git a/include/Menu.h b/include/Menu.h
index 6e77c70..2558920 100644
--- a/include/Menu.h
+++ b/include/Menu.h
@@ -11,7 +11,7 @@ class Menu : public Action {
Menu(const String & titre, const String & url, String * labels, Action ** listac, int nb);
virtual ~Menu() {}
virtual String GetTitle();
- virtual Task * Do(Variables *, Handle *);
+ virtual Task * Do(Variables *, Variables *, Handle *);
private:
String tit;
diff --git a/include/Message.h b/include/Message.h
index 043f4d6..35437bd 100644
--- a/include/Message.h
+++ b/include/Message.h
@@ -11,7 +11,7 @@ class Message : public Action {
Message(const String & titre, const String & msg, const String & url, Action * ok = 0);
virtual ~Message() { }
virtual String GetTitle();
- virtual Task * Do(Variables *, Handle *);
+ virtual Task * Do(Variables *, Variables *, Handle *);
private:
String tit, msg;
diff --git a/include/Table.h b/include/Table.h
index 5b01aab..c616e7e 100644
--- a/include/Table.h
+++ b/include/Table.h
@@ -11,7 +11,7 @@ class Table : public Action {
Table(const String & titre, const String & url, String * heads, String * cells, int nbcol, int nblgn, Action * ok = 0);
virtual ~Table() { }
virtual String GetTitle();
- virtual Task * Do(Variables *, Handle *);
+ virtual Task * Do(Variables *, Variables *, Handle *);
private:
String tit, * hds, * cls;