00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 io_handler_chainer.h - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: io_handler_chainer.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00031 00032 #ifndef __IO_HANDLER_CHAINER_H__ 00033 #define __IO_HANDLER_CHAINER_H__ 00034 00035 #define IOHC_NORMAL_SHUTDOWN 1 00036 #define IOHC_FORCED_SHUTDOWN 2 00037 #define IOHC_READ_ERROR 3 00038 #define IOHC_WRITE_ERROR 4 00039 #define IOHC_EXCEPTION 5 00040 00041 00042 #include "thread_executor.h" 00043 #include "io_handler.h" 00044 00047 class IOHandlerChainer : public ThreadExecutor 00048 { 00049 public: 00055 IOHandlerChainer(zmm::Ref<IOHandler> readFrom, zmm::Ref<IOHandler> writeTo, int chunkSize); 00056 virtual int getStatus() { return status; } 00057 protected: 00058 virtual void threadProc(); 00059 private: 00060 int status; 00061 char* buf; 00062 int chunkSize; 00063 zmm::Ref<IOHandler> readFrom; 00064 zmm::Ref<IOHandler> writeTo; 00065 }; 00066 00067 #endif // __IO_HANDLER_CHAINER_H__
1.6.1