00001 // 00002 // (C) 2005 Vojtech Janota 00003 // (C) 2003 Xuan Thang Nguyen 00004 // 00005 // This library is free software, you can redistribute it 00006 // and/or modify 00007 // it under the terms of the GNU Lesser General Public License 00008 // as published by the Free Software Foundation; 00009 // either version 2 of the License, or any later version. 00010 // The library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00013 // See the GNU Lesser General Public License for more details. 00014 // 00015 00016 #ifndef __INET_RSVPHELLOMSG_H 00017 #define __INET_RSVPHELLOMSG_H 00018 00019 #include "RSVPHello_m.h" 00020 00021 00029 // XXX FIXME all RSVP message have kind=RSVP_TRAFFIC 00030 // to distinguish them: 00031 // if they are RSVPPacket: use packet->getRsvpKind() 00032 // if they are RSVPHelloMsg: only one type exists 00033 // 00034 // thus, we need dynamic_cast to find out what it is 00035 // that's not good. we don't use kind, because kind 00036 // is used by IP QoS mechanism (use DS field for IP QoS instead???) 00037 00038 class RSVPHelloMsg : public RSVPHelloMsg_Base 00039 { 00040 public: 00041 RSVPHelloMsg(const char *name=NULL, int kind=RSVP_TRAFFIC) : RSVPHelloMsg_Base(name,kind) {} 00042 RSVPHelloMsg(const RSVPHelloMsg& other) : RSVPHelloMsg_Base(other.getName()) {operator=(other);} 00043 RSVPHelloMsg& operator=(const RSVPHelloMsg& other) {RSVPHelloMsg_Base::operator=(other); return *this;} 00044 virtual RSVPHelloMsg *dup() const {return new RSVPHelloMsg(*this);} 00045 }; 00046 00047 #endif 00048 00049 00050