Finished libSocket and libUtils documentation
[senf.git] / Scheduler / WriteHelper.ct
index 8ef626d..28bf5b6 100644 (file)
@@ -1,8 +1,25 @@
 // $Id$
 //
+// Copyright (C) 2006 Stefan Bund <g0dil@berlios.de>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc.,
+// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // Copyright (C) 2006 
 
-// Definition of non-inline template functions
+/** \file
+    \brief WriteHelper non-inline template implementation */
 
 //#include "WriteHelper.ih"
 
 ///////////////////////////////ct.p////////////////////////////////////////
 
 template <class Handle>
-prefix_ satcom::lib::WriteHelper<Handle>::WriteHelper(Handle handle, std::string data,
+prefix_ senf::WriteHelper<Handle>::WriteHelper(Handle handle, std::string data,
                                                       Callback callback)
     : handle_(handle), data_(data), callback_(callback),
       offset_(0), errno_(0)
 {
-    satcom::lib::Scheduler::instance()
+    senf::Scheduler::instance()
        .add(handle_, boost::bind(&WriteHelper::dispatchProcess, ptr(this), _1, _2),
-            satcom::lib::Scheduler::EV_WRITE);
+            senf::Scheduler::EV_WRITE);
 }
 
 template <class Handle>
-prefix_ std::string const & satcom::lib::WriteHelper<Handle>::data()
+prefix_ std::string const & senf::WriteHelper<Handle>::data()
     const
 {
     if (offset_ > 0) {
@@ -37,17 +54,17 @@ prefix_ std::string const & satcom::lib::WriteHelper<Handle>::data()
 }
 
 template <class Handle>
-prefix_ void satcom::lib::WriteHelper<Handle>::revoke()
+prefix_ void senf::WriteHelper<Handle>::revoke()
 {
     ptr guard (this); // To ensure, 'this' is deleted only after this method terminates ...
-    satcom::lib::Scheduler::instance()
-       .remove(handle_, satcom::lib::Scheduler::EV_WRITE);
+    senf::Scheduler::instance()
+       .remove(handle_, senf::Scheduler::EV_WRITE);
 }
 
 template <class Handle>
 prefix_ void
-satcom::lib::WriteHelper<Handle>::dispatchProcess(ptr helper, Handle handle,
-                                                  satcom::lib::Scheduler::EventId event)
+senf::WriteHelper<Handle>::dispatchProcess(ptr helper, Handle handle,
+                                                  senf::Scheduler::EventId event)
 {
     // since we have a 'ptr' argument, the instance cannot be deleted
     // before this method returns
@@ -55,26 +72,27 @@ satcom::lib::WriteHelper<Handle>::dispatchProcess(ptr helper, Handle handle,
 }
 
 template <class Handle>
-prefix_ void satcom::lib::WriteHelper<Handle>::process(Handle handle,
-                                                       satcom::lib::Scheduler::EventId event)
+prefix_ void senf::WriteHelper<Handle>::process(Handle handle,
+                                                       senf::Scheduler::EventId event)
 {
+    /** \fixme Move the done() calls to outside the try/catch block */
     try {
-       if (event != satcom::lib::Scheduler::EV_WRITE)
-           throw satcom::lib::SystemException(EPIPE);
+       if (event != senf::Scheduler::EV_WRITE)
+           throw senf::SystemException(EPIPE);
        offset_ += handle.write(data_.data()+offset_,data_.size()-offset_);
        if (offset_ >= data_.size()) {
            data_.erase();
            done();
        }
     }
-    catch (satcom::lib::SystemException const & ex) {
+    catch (senf::SystemException const & ex) {
        errno_ = ex.err;
        done();
     }
 }
 
 template <class Handle>
-prefix_ void satcom::lib::WriteHelper<Handle>::done()
+prefix_ void senf::WriteHelper<Handle>::done()
 {
     revoke();
     callback_(ptr(this));