summaryrefslogtreecommitdiff
path: root/lib/ReadJob.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ReadJob.cc')
-rw-r--r--lib/ReadJob.cc31
1 files changed, 27 insertions, 4 deletions
diff --git a/lib/ReadJob.cc b/lib/ReadJob.cc
index bd63377..d5b3212 100644
--- a/lib/ReadJob.cc
+++ b/lib/ReadJob.cc
@@ -1,6 +1,7 @@
#include "ReadJob.h"
+#include "HttpServ.h"
-ReadJob::ReadJob(Handle & as, Handle & ad) : s(as), d(ad) { }
+ReadJob::ReadJob(Handle * as, Handle * ad, String regex, int flags) : s(as), d(ad), current(0) { }
ReadJob::~ReadJob() { }
@@ -8,9 +9,31 @@ int ReadJob::Do() {
int r;
String buff;
- while (!s.IsClosed()) {
- s >> buff;
- d << buff;
+ cerr << "ReadJob running...\n";
+
+ while (!s->IsClosed()) {
+ if (!current) {
+ try {
+ *s >> buff;
+ }
+ catch (IOAgain) {
+ return TASK_WAITING_HANDLE;
+ }
+ current = 0;
+ }
+ try {
+ *d << buff << endnl;
+ }
+ catch (IOAgain) {
+ current = 1;
+ return TASK_WAITING_HANDLE;
+ }
if (buff == "") return TASK_DONE;
}
+
+ return TASK_DONE;
+}
+
+String ReadJob::GetName() {
+ return (String("ReadJob from ") + s->GetName() + " to " + d->GetName());
}