StreamReadReplyTask.hpp

00001 /*
00002 Copyright 2007, 2008, 2009, 2010, 2011 Instituto de Sistemas e Robotica, Instituto Superior Tecnico
00003 
00004 This file is part of MeRMaID.
00005 
00006 MeRMaID is free software: you can redistribute it and/or modify
00007 it under the terms of the GNU Lesser General Public License as published by
00008 the Free Software Foundation, either version 3 of the License, or
00009 (at your option) any later version.
00010 
00011 MeRMaID is distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 GNU Lesser General Public License for more details.
00015 
00016 You should have received a copy of the GNU Lesser General Public License
00017 along with MeRMaID.  If not, see <http://www.gnu.org/licenses/>.
00018 */
00019 
00020 
00021 
00022 #ifndef __STREAMREADREPLYTASK_H
00023 #define __STREAMREADREPLYTASK_H
00024 
00025 #include <Task.hpp>
00026 
00027 #include "StreamOperationHandlerMethod.hpp"
00028 
00029 namespace mermaid
00030 {
00031   namespace support
00032   {
00033     namespace io
00034     {
00035     
00036       using mermaid::support::activeobject::Task;
00037       using boost::shared_ptr;
00038       
00039       /**
00040        * @Class StreamReadReplyTask StreamReadReplyTask.hpp "StreamReadReplyTask.hpp"
00041        * @Description StreamReadReplyTask class
00042        *
00043        * This is the task which delivers the read operation reply
00044        * @Author Joao Carreira
00045        */
00046       class StreamReadReplyTask : public Task
00047       {
00048         public:
00049         
00050           /**
00051            * @Description Constructor.
00052            *
00053            * @Argument bytesRead The number of bytes read
00054            * @Argument requestedBytes The number of bytes requested to be read
00055            * @Argument data The read data
00056            * @Argument success TRUE if read operation was successful, FALSE otherwise
00057            * @Argument streamOperationHandler The handler which will receive the reply
00058            * @Author Joao Carreira
00059            */
00060           StreamReadReplyTask (size_t bytesRead, size_t requestedBytes, const char* data, bool success,
00061                                shared_ptr<StreamOperationHandlerMethodBase> streamOperationHandler);
00062                                
00063           /**
00064            * @Description Task main method
00065            *
00066            * Deliver the reply to the handler
00067            * @Author Joao Carreira
00068            */
00069           virtual void run();
00070           
00071           /**
00072            * @Description Destructor
00073            *
00074            * @Author Joao Carreira
00075            */
00076           virtual ~StreamReadReplyTask();
00077           
00078         private:
00079           size_t bytesRead_;
00080           size_t requestedBytes_;
00081           const char *data_;
00082           bool success_;
00083           shared_ptr<StreamOperationHandlerMethodBase> streamOperationHandler_;
00084           
00085       }; // class StreamReadReplyTask
00086       
00087     } // namespace io
00088   } // namespace support
00089 } // namespace mermaid
00090 
00091 #endif // __STREAMREADREPLYTASK_H
Generated on Fri Mar 4 22:14:58 2011 for MeRMaID::support by  doxygen 1.6.3