Hi,
Please consider the following AODV code (from aodv_rtable.h)

class AODV_Neighbor {
        friend class AODV;
        friend class aodv_rt_entry;
 public:
        AODV_Neighbor(u_int32_t a) { nb_addr =
a; }
 protected:
        LIST_ENTRY(AODV_Neighbor) nb_link;
        nsaddr_t        nb_addr;
        double          nb_expire;      // ALLOWED_HELLO_LOSS * HELLO_INTERVAL
};
LIST_HEAD(aodv_ncache,
AODV_Neighbor);
/*   AODV Precursor list data structure            */
class AODV_Precursor {
        friend class AODV;
        friend class aodv_rt_entry;
 public:
        AODV_Precursor(u_int32_t a) { pc_addr =
a; }
 protected:
        LIST_ENTRY(AODV_Precursor) pc_link;
        nsaddr_t        pc_addr;                // precursor address
};LIST_HEAD(aodv_precursors,
AODV_Precursor);

I don't understand:
1. LIST_ENTRY(AODV_Neighbor) nb_link;
2. LIST_ENTRY(AODV_Precursor) pc_link;
3. LIST_HEAD(aodv_ncache, AODV_Neighbor);
4. LIST_HEAD(aodv_precursors, AODV_Precursor);

Also, LIST_HEAD(aodv_ncache, AODV_Neighbor); and LIST_HEAD(aodv_precursors, 
AODV_Precursor); occur after the class declaration, I don't understand.
Please help me here. Thanks in advance


      

Reply via email to