EthernetNetIf Compatibility.
Dependents: XBeeWiFi_SPI_example
Fork of NetServicesSource by
Diff: api/DNSRequest.h
- Revision:
- 5:dd63a1e02b1b
- Parent:
- 0:632c9925f013
- Child:
- 6:b7dd7cde8ad2
--- a/api/DNSRequest.h Fri Jul 09 14:46:47 2010 +0000 +++ b/api/DNSRequest.h Tue Jul 27 15:59:42 2010 +0000 @@ -27,38 +27,66 @@ #include "if/net/net.h" //Essentially it is a safe interface to NetDnsRequest +///DNS Request Errors enum DNSRequestErr { __DNS_MIN = -0xFFFF, - DNS_SETUP, //NetDnsRequest not properly configured - DNS_IF, //If has problems, does not exist or is not initialized - DNS_MEM, //Not enough mem - DNS_INUSE, //If/Port is in use - DNS_PROCESSING, //Req has not completed + DNS_SETUP, ///DNSRequest not properly configured + DNS_IF, ///Interface has problems, does not exist or is not initialized + DNS_MEM, ///Not enough mem + DNS_INUSE, ///Interface / Port is in use + DNS_PROCESSING, ///Request has not completed //... DNS_OK = 0 }; +///DNS Request Result Events enum DNSReply { DNS_PRTCL, - DNS_NOTFOUND, //Hostname is unknown - DNS_ERROR, //Problem with DNS Service + DNS_NOTFOUND, ///Hostname is unknown + DNS_ERROR, ///Problem with DNS Service //... DNS_FOUND, }; +///This is a simple DNS Request class +/** + This class exposes an API to deal with DNS Requests +*/ class DNSRequest { public: + ///Creates a new request DNSRequest(); ~DNSRequest(); + ///Resolves an hostname + /* + @param hostname : hostname to resolve + */ DNSRequestErr resolve(const char* hostname); + + ///Resolves an hostname + /* + @param host : hostname to resolve, the result will be stored in the IpAddr field of this object + */ DNSRequestErr resolve(Host* pHost); + ///Setups callback + /** + The callback function will be called on result. + @param pMethod : callback function + */ + void setOnReply( void (*pMethod)(DNSReply) ); + class CDummy; - void setOnReply( void (*pMethod)(DNSReply) ); + ///Setups callback + /** + The callback function will be called on result. + @param pItem : instance of class on which to execute the callback method + @param pMethod : callback method + */ template<class T> void setOnReply( T* pItem, void (T::*pMethod)(DNSReply) ) { @@ -66,8 +94,13 @@ m_pCbMeth = (void (CDummy::*)(DNSReply)) pMethod; } + ///Gets IP address once it has been resolved + /* + @param pIp : pointer to an IpAddr instance in which to store the resolved IP address + */ DNSRequestErr getResult(IpAddr* pIp); + ///Close DNS Request before completion DNSRequestErr close(); protected: