00001 /* 00002 FSF: Flow Scheduling Framework library 00003 00004 Version 1.0 Copyright (C) 2010 Alexandre R.J. Francois 00005 00006 Previous versions Copyright (C) 2001-2005 University of Southern California 00007 00008 Author: Alexandre R.J. Francois - alexandrefrancois@yahoo.com 00009 www.alexandrefrancois.org 00010 00011 Modular Flow Scheduling Middleware 00012 mfsm.sourceForge.net 00013 00014 This library is free software; you can redistribute it and/or 00015 modify it under the terms of the GNU Lesser General Public 00016 License as published by the Free Software Foundation; either 00017 version 2.1 of the License, or (at your option) any later version. 00018 00019 This library is distributed in the hope that it will be useful, 00020 but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00022 Lesser General Public License for more details. 00023 00024 You should have received a copy of the GNU Lesser General Public 00025 License along with this library; if not, write to the Free Software 00026 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00027 */ 00028 00029 #ifndef FSF_REPOSITORY_H 00030 #define FSF_REPOSITORY_H 00031 00032 #include "FsfPulse.h" 00033 #include "FsfFilter.h" 00034 00035 namespace fsf{ 00036 class CCell; 00037 00038 00046 class CRepository{ 00047 private: 00049 CPassivePulse m_pulse; 00050 00051 CMutex m_csCells; 00052 std::list<CCell*> m_listCells; 00053 00054 public: 00055 00057 00058 CRepository(); 00059 ~CRepository(); 00060 00061 00063 00064 00066 bool connectCell(CCell *pCell); 00068 bool disconnectCell(CCell *pCell); 00069 00071 void notifyPulseUpdate(); 00072 00074 void replacePulse(CPassivePulse *pPulse, Time tNewTime=0); 00075 00078 CPassivePulse *getPulse() { return &m_pulse; } 00079 00081 00082 00083 }; 00084 00085 } // namespace fsf 00086 00087 #endif // FSF_REPOSITORY_H 00088