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: DHCPClient.h,v 1.4 2005/02/01 00:57:36 thomson Exp $ 00010 * 00011 * $Log: DHCPClient.h,v $ 00012 * Revision 1.4 2005/02/01 00:57:36 thomson 00013 * no message 00014 * 00015 * Revision 1.3 2004/12/07 00:45:41 thomson 00016 * Clnt managers creation unified and cleaned up. 00017 * 00018 * Revision 1.2 2004/06/20 19:29:23 thomson 00019 * New address assignment finally works. 00020 * 00021 * 00022 */ 00023 00024 #ifndef DHCPCLIENT_H 00025 #define DHCPCLIENT_H 00026 00027 #include <iostream> 00028 #include <string> 00029 #include "SmartPtr.h" 00030 using namespace std; 00031 00032 class TClntIfaceMgr; 00033 class TClntAddrMgr; 00034 class TClntCfgMgr; 00035 class TClntTransMgr; 00036 00037 class TDHCPClient 00038 { 00039 public: 00040 TDHCPClient(string config); 00041 void run(); 00042 void stop(); 00043 bool isDone(); 00044 bool checkPrivileges(); 00045 void setWorkdir(std::string workdir); 00046 00047 ~TDHCPClient(); 00048 00049 private: 00050 SmartPtr<TClntIfaceMgr> IfaceMgr; 00051 SmartPtr<TClntAddrMgr> AddrMgr; 00052 SmartPtr<TClntCfgMgr> CfgMgr; 00053 SmartPtr<TClntTransMgr> TransMgr; 00054 bool IsDone; 00055 00056 }; 00057 00058 00059 00060 #endif 00061 00062