00001 #ifndef __SGMLIST_H_INCLUDED__ 00002 #define __SGMLIST_H_INCLUDED__ 00003 //********************************************************************** 00004 // * 00005 // Filename: sgmlist.h * 00006 // Date: 30 Mar 2002 * 00007 // File Version: 1 * 00008 // * 00009 // Description: List class to hold instances of Signalman class. * 00010 // * 00011 // Author: Chris White (whitecf@bcs.org.uk) * 00012 // Company: Monitor Computing Services Ltd. * 00013 // * 00014 //********************************************************************** 00015 // * 00016 // Copyright (C) 2002 Monitor Computing Services Ltd. * 00017 // * 00018 // This program is free software; you can redistribute it and/or * 00019 // modify it under the terms of the GNU General Public License * 00020 // as published by the Free Software Foundation; either version 2 * 00021 // of the License, or any later version. * 00022 // * 00023 // This program is distributed in the hope that it will be useful, * 00024 // but WITHOUT ANY WARRANTY; without even the implied warranty of * 00025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00026 // GNU General Public License for more details. * 00027 // * 00028 // You should have received a copy of the GNU General Public * 00029 // License (http://www.gnu.org/copyleft/gpl.html) along with this * 00030 // program; if not, write to: * 00031 // The Free Software Foundation Inc., * 00032 // 59 Temple Place - Suite 330, * 00033 // Boston, MA 02111-1307, * 00034 // USA. * 00035 // * 00036 //********************************************************************** 00037 // * 00038 // Notes: * 00039 // * 00040 //********************************************************************** 00041 00042 00043 // Forward declerations 00044 template <class T> class TSListImp; 00045 00046 00047 namespace Monitor { 00048 namespace BellMaster { 00049 00050 00051 // Forward declerations within namespace 00052 class Signalman; 00053 00054 00055 00056 class SignalmanList 00057 { 00058 public: 00059 SignalmanList(); 00060 ~SignalmanList(); 00061 00062 void 00063 addSignalman(const Signalman &newSignalman); 00064 00065 void 00066 removeSignalman(const Signalman &oldSignalman); 00067 00071 void 00072 clear(); 00073 00077 const unsigned& 00078 size() const; 00079 00083 Signalman& 00084 operator[](int index) const; 00085 00086 private: 00087 00091 TSListImp< Signalman > *myList; 00092 00096 unsigned listSize; 00097 00101 TSListImp< Signalman >& 00102 getList() const; 00103 }; // class SignalemanList 00104 00105 }; // namespace BellMaster 00106 }; // namespace Monitor 00107 00108 00109 #endif // __SGMLIST_H_INCLUDED__