diff options
author | Pixel <Pixel> | 2001-10-30 17:38:54 +0000 |
---|---|---|
committer | Pixel <Pixel> | 2001-10-30 17:38:54 +0000 |
commit | 57633137f749b0098eaf703f49ed00c96128966d (patch) | |
tree | f7e55be48d4724d44e5ed2362cf836162e866d05 /lib/ReadJob.cc | |
parent | e5057005049b11af44cb804118f95370f03ab32c (diff) |
Huge work on Tasking System.
Diffstat (limited to 'lib/ReadJob.cc')
-rw-r--r-- | lib/ReadJob.cc | 31 |
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()); } |