umts-timers.h

00001 /*
00002  * Copyright (c) 2003 Ericsson Telecommunicatie B.V.
00003  * All rights reserved.
00004  * 
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *     notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *     notice, this list of conditions and the following disclaimer in the
00012  *     documentation and/or other materials provided with the
00013  *     distribution.
00014  * 3. Neither the name of Ericsson Telecommunicatie B.V. may be used
00015  *     to endorse or promote products derived from this software without
00016  *     specific prior written permission.
00017  * 
00018  * 
00019  * THIS SOFTWARE IS PROVIDED BY ERICSSON TELECOMMUNICATIE B.V. AND
00020  * CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
00021  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00022  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00023  * IN NO EVENT SHALL ERICSSON TELECOMMUNICATIE B.V., THE AUTHOR OR HIS
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00027  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
00028  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00029  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00030  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * 
00032  * 
00033  * Contact for feedback on EURANE: eurane@ti-wmc.nl
00034  * EURANE = Enhanced UMTS Radio Access Network Extensions
00035  * website: http://www.ti-wmc.nl/eurane/
00036  */
00037 
00038 /*
00039  * $Id$
00040  */
00041 
00042 
00043 #ifndef ns_umts_timers_h
00044 #define ns_umts_timers_h
00045 
00046 //#include "virtual_umtsmac.h"
00047 #include "rlc.h"
00048 #include "timer-handler.h"
00049 
00050 
00051 #define RLC_TIMER_POLL          0
00052 #define RLC_TIMER_RTX           1
00053 #define RLC_TIMER_DELSND        2
00054 #define RLC_TIMER_STPROB        3
00055 #define RLC_TIMER_TTI           4
00056 #define RLC_TIMER_TEMP_PDU      5 // Timeout for Temporary PDUs, in order
00057                              // not to get a deadlock when the last
00058                              // PDU is not followed by another PDU.
00059 #define RLC_TIMER_CREDIT        6 // Timeout for sending a PDU in the
00060                              // Transmission Buffer.
00061 #define RLC_TIMER_STATUS        7 // Timeout for sending Status Information
00062                              // in a separate PDU.
00063 #define RLC_TIMER_MRWACK        8 // Timeout for retransmitting a STATUS MRW
00064 
00065 
00066 #define MACHS_TIMER_FRAME      10
00067 #define MACHS_TIMER_CREDALLOC  11
00068 #define MACHS_TIMER_SCHEDULE   12
00069 #define MACHS_TIMER_REORDER_STALL 13
00070 #define MACHS_TIMER_PROCESS_CLEAR 14
00071 
00072 class UmtsTimer:public TimerHandler {
00073 public:
00074    UmtsTimer(RLC * rlc, int timeoutNumber, int flowID = -1);
00075    double      timeOfExpiry();
00076    char       *getName();
00077    void        cancel();        // overloaded from TimerHandler
00078    void        sched(double delay); // overloaded from TimerHandler
00079    void        resched(double delay);  // overloaded from TimerHandler
00080 protected:
00081    virtual void expire(Event * e);
00082    RLC        *rlc_;
00083    int         timeoutNumber_;
00084 };
00085 
00086 
00087 /* class HsdpaMacTimer:public TimerHandler { */
00088 /* public: */
00089 /*    HsdpaMacTimer(VirtualUmtsMac * mac, int timeoutNumber, int flowID = -1); */
00090 /*    double      timeOfExpiry(); */
00091 /*    char       *getName(); */
00092 /*    void        cancel();        // overloaded from TimerHandler */
00093 /*    void        sched(double delay); // overloaded from TimerHandler */
00094 /*    void        resched(double delay);  // overloaded from TimerHandler */
00095 /* protected: */
00096 /*    virtual void expire(Event * e); */
00097 /*    VirtualUmtsMac *mac_; */
00098 /*    int         timeoutNumber_; */
00099 /*    int         flowID_; */
00100 /* }; */
00101 
00102 
00103 #endif //ns_umts_timers_h

Generated on Wed Nov 26 15:47:29 2008 for NS-MIRACLE library by  doxygen 1.5.2