[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ns] sorry- ping extension again
hi all,
i'm trying to extend the ping example on marc
greg's tutorial and create a ping agent that
continuously sends ping messages, but i have few
errors,
the change i made to ping.h and ping .cc are attached
i get the foll errors
ping.h:79: cannot declare field `PingAgent::ptimer_'
to be of type `PingTimer'
ping.h:79: since the following virtual functions are
abstract:
timer-handler.h:70: void
TimerHandler::expire(Event *)
ping.cc:57: no `void PingTimer::expire(Event *)'
member function declared in class `PingTimer'
ping.cc: In method `void PingTimer::expire(Event *)':
ping.cc:58: `pagen_' undeclared (first use this
function)
ping.cc:58: (Each undeclared identifier is reported
only once
ping.cc:58: for each function it appears in.)
ping.cc: In method `PingAgent::PingAgent()':
ping.cc:62: no matching function for call to
`PingTimer::PingTimer (PingAgent *)'
ping.h:64: candidates are: PingTimer::PingTimer(const
PingTimer &)
ping.h:64: PingTimer::PingTimer()
make: *** [ping.o] Error 1
can someone help ne.
thanks
badri
=====
__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/
// Copyright (c) 2000 by the University of Southern California
// All rights reserved.
//
// Permission to use, copy, modify, and distribute this software and its
// documentation in source and binary forms for non-commercial purposes
// and without fee is hereby granted, provided that the above copyright
// notice appear in all copies and that both the copyright notice and
// this permission notice appear in supporting documentation. and that
// any documentation, advertising materials, and other materials related
// to such distribution and use acknowledge that the software was
// developed by the University of Southern California, Information
// Sciences Institute. The name of the University may not be used to
// endorse or promote products derived from this software without
// specific prior written permission.
//
// THE UNIVERSITY OF SOUTHERN CALIFORNIA makes no representations about
// the suitability of this software for any purpose. THIS SOFTWARE IS
// PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// Other copyrights might apply to parts of this software and are so
// noted when applicable.
//
// $Header: /nfs/jade/vint/CVSROOT/ns-2/ping.h,v 1.3 2000/09/01 03:04:06 haoboy Exp $
/*
* File: Header File for a new 'Ping' Agent Class for the ns
* network simulator
* Author: Marc Greis ([email protected]), May 1998
*
* IMPORTANT: Incase of any changes made to this file ,
* tutorial/examples/ping.h (used in Greis' tutorial) should
* be updated as well.
*/
#ifndef ns_ping_h
#define ns_ping_h
#include "agent.h"
#include "tclcl.h"
#include "packet.h"
#include "address.h"
#include "timer-handler.h"
#include "ip.h"
struct hdr_ping {
char ret;
double send_time;
// Header access methods
static int offset_; // required by PacketHeaderManager
inline static int& offset() { return offset_; }
inline static hdr_ping* access(const Packet* p) {
return (hdr_ping*) p->access(offset_);
}
};
// adding the timer here
class pingTimer : public TimerHandler {
public:
pingTimer(PingAgent* pa) : pagen_(pa){}
protected:
void expire(Event*);
PingAgent* pagen_;
};
class PingAgent : public Agent {
public:
PingAgent();
virtual int command(int argc, const char*const* argv);
virtual void recv(Packet*, Handler*);
void sendone();
protected:
pingTimer ptimer_; // to refer to timer
};
#endif // ns_ping_h
ping.cc