![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /******************************************************************************* 00002 * This file is part of openWNS (open Wireless Network Simulator) 00003 * _____________________________________________________________________________ 00004 * 00005 * Copyright (C) 2004-2007 00006 * Chair of Communication Networks (ComNets) 00007 * Kopernikusstr. 5, D-52074 Aachen, Germany 00008 * phone: ++49-241-80-27910, 00009 * fax: ++49-241-80-22242 00010 * email: info@openwns.org 00011 * www: http://www.openwns.org 00012 * _____________________________________________________________________________ 00013 * 00014 * openWNS is free software; you can redistribute it and/or modify it under the 00015 * terms of the GNU Lesser General Public License version 2 as published by the 00016 * Free Software Foundation; 00017 * 00018 * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY 00019 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00020 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00021 * details. 00022 * 00023 * You should have received a copy of the GNU Lesser General Public License 00024 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00025 * 00026 ******************************************************************************/ 00027 00028 #ifndef LTE_TIMING_EVENTS_RAP_EVENTS_HPP 00029 #define LTE_TIMING_EVENTS_RAP_EVENTS_HPP 00030 00031 #include <LTE/timing/events/Base.hpp> 00032 00033 namespace lte { 00034 namespace controlplane { 00035 namespace bch { 00036 class IBCHTimingTx; 00037 } 00038 class IMapHandlerTiming; 00039 } 00040 00041 namespace macr { 00042 class IRachTimingRx; 00043 } 00044 00045 namespace timing { 00046 class MasterScheduler; 00047 class SlaveScheduler; 00048 class SchedulerIncoming; 00049 00050 namespace events { 00051 namespace rap { 00052 00055 class EventBase : 00056 public lte::timing::events::Base 00057 { 00058 public: 00060 EventBase(wns::ldk::fun::FUN* _fun, const wns::pyconfig::View& config) : 00061 lte::timing::events::Base(_fun, config) 00062 {}; 00063 virtual ~EventBase(){}; 00064 }; 00065 00066 00067 class StartBCH : 00068 public EventBase 00069 //public wns::Cloneable<StartBCH> 00070 { 00071 lte::controlplane::bch::IBCHTimingTx* bch; 00072 public: 00073 StartBCH(wns::ldk::fun::FUN* _fun, const wns::pyconfig::View& config); 00074 virtual void execute(); 00075 }; //StartBCH 00076 00077 00078 class StartRACH : 00079 public EventBase 00080 //public wns::Cloneable<StartRACH> 00081 { 00082 lte::macr::IRachTimingRx* rach; 00083 public: 00084 StartRACH(wns::ldk::fun::FUN* _fun, const wns::pyconfig::View& config); 00085 virtual void execute(); 00086 }; //StartRACH 00087 00088 00089 class StartMap : 00090 public EventBase 00091 //public wns::Cloneable<StartMap> 00092 { 00093 lte::timing::MasterScheduler* rstx; // downlink ResourceScheduler 00094 lte::timing::MasterScheduler* rsrx; // uplink ResourceScheduler 00095 lte::controlplane::IMapHandlerTiming* mapHandler; 00096 int frameNr; 00097 int framesPerSuperFrame; 00098 bool useMapResourcesInUL; 00099 public: 00100 StartMap(wns::ldk::fun::FUN* _fun, const wns::pyconfig::View& config); 00101 virtual void execute(); 00102 }; //StartMap 00103 00104 00105 class StartData : 00106 public EventBase 00107 //public wns::Cloneable<StartData> 00108 { 00112 class SwitchingPoint : 00113 public EventBase 00114 //public wns::Cloneable<SwitchingPoint> 00115 { 00116 lte::timing::MasterScheduler* rsrx; 00117 lte::controlplane::IMapHandlerTiming* mapHandler; 00118 public: 00119 SwitchingPoint(wns::ldk::fun::FUN* _fun, 00120 const wns::pyconfig::View& config); 00121 // virtual ~SwitchingPoint(){}; 00122 virtual void execute(); 00123 int frameNr; 00124 }; // SwitchingPoint 00125 00129 class StopData : 00130 public EventBase 00131 //public wns::Cloneable<StopData> 00132 { 00133 lte::timing::SchedulerIncoming* rstx; 00134 public: 00135 StopData(wns::ldk::fun::FUN* _fun, 00136 const wns::pyconfig::View& config); 00137 // virtual ~StopData(){}; 00138 virtual void execute(); 00139 }; // StopData 00140 00141 lte::timing::MasterScheduler* rstx; 00142 lte::timing::MasterScheduler* rsrx; 00143 SwitchingPoint mySwitchingPointEvent; 00144 StopData myStopDataEvent; 00145 lte::controlplane::IMapHandlerTiming* mapHandler; 00146 int frameNr; 00147 bool useMapResourcesInUL; 00148 public: 00149 StartData(wns::ldk::fun::FUN* _fun, const wns::pyconfig::View& config); 00150 virtual ~StartData(); 00151 //virtual wns::CloneableInterface* clone() const; 00152 00156 virtual void setTimer(lte::timing::TimingScheduler* _timer); 00157 virtual void execute(); 00158 }; // StartData 00159 00160 typedef wns::ldk::FUNConfigCreator<EventBase> EventCreator; 00161 typedef wns::StaticFactory<EventCreator> EventFactory; 00162 00163 } // namespace rap 00164 } // namespace events 00165 }// namespace timing 00166 }// namespace lte 00167 00168 #endif // LTE_TIMING_EVENTS_RAP_EVENTS_HPP
1.5.5