X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FReadHelper.ct;h=981d9705cdc0ea3fd9f4593e57647258bf860fad;hb=76fe5e8b7de8a71aeb6fe9b1d0ea37d5fa51c87a;hp=40ac19936dcb6e2c31d470ddf1ac9a306eee0d6b;hpb=8421c3a8da7485cb8781045494ecaab3ed84f403;p=senf.git diff --git a/Scheduler/ReadHelper.ct b/Scheduler/ReadHelper.ct index 40ac199..981d970 100644 --- a/Scheduler/ReadHelper.ct +++ b/Scheduler/ReadHelper.ct @@ -25,8 +25,8 @@ // Custom includes #include -#include "Utils/membind.hh" -#include "Utils/Exception.hh" +#include "../Utils/membind.hh" +#include "../Utils/Exception.hh" #include "Scheduler.hh" #define prefix_ @@ -43,7 +43,7 @@ prefix_ senf::ReadHelper::ReadHelper(Handle handle, std::string::size_ty // scheduler. This ensures, that the refcount is at least 1 as // long as the helper is registered with the scheduler. senf::Scheduler::instance() - .add(handle,boost::bind(&ReadHelper::dispatchProcess,ptr(this),_1,_2), + .add(handle,boost::bind(&ReadHelper::dispatchProcess,ptr(this), handle, _1), senf::Scheduler::EV_READ); } @@ -71,8 +71,9 @@ prefix_ void senf::ReadHelper::process(Handle handle, { try { if (event != senf::Scheduler::EV_READ) - throw SystemException(EPIPE); - std::string rcv (handle.read(maxSize_ - data_.size())); + throw SystemException(EPIPE SENF_EXC_DEBUGINFO); + std::string rcv; + handle.read(rcv, maxSize_ - data_.size()); data_.append(rcv); std::string::size_type n = predicate_ ? (*predicate_)(data_) : std::string::npos; if (n != std::string::npos || data_.size() >= maxSize_ || rcv.size() == 0) { @@ -84,7 +85,7 @@ prefix_ void senf::ReadHelper::process(Handle handle, } } catch (senf::SystemException const & ex) { - errno_ = ex.err; + errno_ = ex.errorNumber(); done(); return; } @@ -118,4 +119,6 @@ operator()(std::string const & data) // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: