00001 /* 00002 * Dibbler - a portable DHCPv6 00003 * 00004 * authors: Tomasz Mrugalski <thomson@klub.com.pl> 00005 * Marek Senderski <msend@o2.pl> 00006 * 00007 * released under GNU GPL v2 or later licence 00008 * 00009 * $Id: ClntMsgSolicit.h,v 1.3 2004/09/07 22:02:33 thomson Exp $ 00010 * 00011 * $Log: ClntMsgSolicit.h,v $ 00012 * Revision 1.3 2004/09/07 22:02:33 thomson 00013 * pref/valid/IAID is not unsigned, RAPID-COMMIT now works ok. 00014 * 00015 * Revision 1.2 2004/06/20 17:51:48 thomson 00016 * getName() method implemented, comment cleanup 00017 * 00018 * 00019 */ 00020 00021 class TClntIfaceMgr; 00022 00023 #ifndef CLNTMSGSOLICIT_H 00024 #define CLNTMSGSOLICIT_H 00025 #include "ClntMsg.h" 00026 #include "ClntCfgMgr.h" 00027 #include "ClntCfgIA.h" 00028 00029 class TClntMsgSolicit : public TClntMsg 00030 { 00031 public: 00032 TClntMsgSolicit(SmartPtr<TClntIfaceMgr> IfaceMgr, 00033 SmartPtr<TClntTransMgr> TransMgr, 00034 SmartPtr<TClntCfgMgr> CfgMgr, 00035 SmartPtr<TClntAddrMgr> AddrMgr, 00036 int iface, 00037 SmartPtr<TIPv6Addr> addr, 00038 TContainer< SmartPtr<TClntCfgIA> > IAs, bool rapid=false); 00039 00040 void answer(SmartPtr<TMsg> msg); 00041 void replyReceived(SmartPtr<TMsg> msg); 00042 00043 void doDuties(); 00044 bool shallRejectAnswer(SmartPtr<TMsg> msg); 00045 void sortAnswers(); 00046 string getName(); 00047 bool check(); 00048 ~TClntMsgSolicit(); 00049 00050 private: 00051 TContainer< SmartPtr<TMsg> > AnswersLst; 00052 00053 // method returns max. preference value of received ADVERTISE messages 00054 int getMaxPreference(); 00055 }; 00056 #endif 00057