[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