Scheduler: Implement new file descriptor event API
[senf.git] / Scheduler / ReadHelper.hh
index d1393ad..0b43431 100644 (file)
@@ -30,7 +30,7 @@
 #include <boost/intrusive_ptr.hpp>
 #include <boost/scoped_ptr.hpp>
 
-#include "Utils/intrusive_refcount.hh"
+#include "../Utils/intrusive_refcount.hh"
 #include "Scheduler.hh"
 
 //#include "ReadHelper.mpp"
@@ -42,7 +42,7 @@ namespace senf {
     /** \brief Asyncronous reading helper
 
         This class provides a simple asynchronous reading facility. This helper will register with
-        the Scheduler and read incoming data. It will collect the data until a specific numbner of
+        the Scheduler and read incoming data. It will collect the data until a specific number of
         bytes has been read or some Predicate evaluated on the data read thus far signals end of
         data.
 
@@ -58,7 +58,7 @@ namespace senf {
 
         The predicate is any class instance with an <tt>operator(std::string const &)</tt>. This
         operator is called, whenever some data has been read. If the data is not yet complete, the
-        predicate must return \c std::string::npos. If the ReadHelper should stop readeing more
+        predicate must return \c std::string::npos. If the ReadHelper should stop reading more
         data, the predicate must return the number of bytes which are to be considered 'matched'.
 
         \todo Move all not Handle dependent members to a ReadHandleBase class
@@ -90,7 +90,7 @@ namespace senf {
                                              \param[in] handle file descriptor or handle providing
                                                  the Handle interface defined above.
                                              \param[in] maxSize maximum number of bytes to read
-                                             \param[in] cb callback
+                                             \param[in] callback callback
                                              \returns Smart pointer to new ReadHelper instance */
 
         template <class Predicate>
@@ -106,7 +106,7 @@ namespace senf {
                                                  the Handle interface defined above.
                                              \param[in] maxSize maximum number of bytes to read
                                              \param[in] predicate predicate to check
-                                             \param[in] cb callback
+                                             \param[in] callback callback
                                              \returns smart pointer to new ReadHelper instance */
 
         ///@}
@@ -118,9 +118,9 @@ namespace senf {
         std::string const & data() const; ///< return data read
         std::string const & tail() const; ///< return data read but not matched by the predicate
 
-        bool complete() const;          ///< Check wether the read has completed successfully
+        bool complete() const;          ///< Check whether the read has completed successfully
         bool error() const;             ///< Check for error condition
-        void throw_error() const;       ///< If an error occured, throw it
+        void throw_error() const;       ///< If an error occurred, throw it
 
         void revoke();                  ///< Remove the ReadHelper from the scheduler
 
@@ -131,11 +131,12 @@ namespace senf {
 
         ReadHelper(Handle handle, unsigned maxSize,  InternalPredicate * predicate, Callback cb);
 
-        static void dispatchProcess(ptr helper, Handle handle, senf::Scheduler::EventId event);
-        void process(Handle handle, senf::Scheduler::EventId event);
+        static void dispatchProcess(ptr helper, Handle handle, int event);
+        void process(Handle handle, int event);
         void done();
 
         Handle handle_;
+        scheduler::FdEvent fde_;
         std::string::size_type maxSize_;
         boost::scoped_ptr<InternalPredicate> predicate_;
         Callback callback_;
@@ -177,4 +178,6 @@ namespace senf {
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: