2
void AODV::rt_resolve(Packet *p) {
struct hdr_cmn *ch = HDR_CMN(p);
struct hdr_ip *ih = HDR_IP(p);
aodv_rt_entry *rt;
ch->xmit_failure_ = aodv_rt_failed_callback;
ch->xmit_failure_data_ = (void*) this;
rt = rtable.rt_lookup(ih->daddr());
if(rt == 0) {
rt = rtable.rt_add(ih->daddr());
}
if(rt->rt_flags == RTF_UP) {
assert(rt->rt_hops != INFINITY2);
#ifdef PREDICTION
double breakTime = 2000.0;
if (ch->num_forwards() != 0 && ch->next_hop_ == index){
Node *currentNode = Node::get_node_by_address(index);
breakTime = currentNode->getTime(ch->prev_hop_);
if (breakTime < 2000.0 && breakTime > CURRENT_TIME
&& (breakTime - CURRENT_TIME < PREDICTION_TIME_FOR_UNICAST)
&& (rt->rt_prevnode_warning == 0)){
//printf("\nPREDICTION:: at %.9f on node %d prev node %d , dst %d, will break at %.9f\n", CURRENT_TIME, index, ch->prev_hop_, ih->daddr(), breakTime);
sendLPW(ch->prev_hop_, breakTime);
rt->rt_prevnode_warning ++;
}
}
#endif
forward(rt, p, NO_DELAY);
}
난 다음 무엇입니까 오류MAODV은 : 디렉토리에라는 이름의 멤버 MAODV의 위의 코드에서
In member function ‘void AODV::rt_resolve(Packet*)’:
aodv/aodv.cc:569:34: error: ‘class Node’ has no member named ‘getTime’
클래스'Node'에는 'getTime' 멤버가 없습니다. 'Node'의 정의를 보여주십시오. –
이것은 MAODV 코드의 일부이며 aodv.cc의 일부이며 getTime은이 특정 코드 블록에서 사용됩니다. 다른 헤더 파일에는 포함되어 있지 않습니다. – user2214138
빌드 환경이 건강하지 않은 것 같습니다. [이 헤더] (http://read.pudn.com/downloads182/sourcecode/comm/849441/maodv-code/node.h__.htm)에서 클래스'Node'는 올바른 기능을 가지고 있습니다. –