Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: P_HTTPServerExample P_USBWeb
Fork of EthernetNetIf by
Diff: LPC2368/api/DNSRequest.h
- Revision:
- 5:bc7df6da7589
- Parent:
- 0:422060928e37
--- a/LPC2368/api/DNSRequest.h Fri Jul 09 14:34:26 2010 +0000
+++ b/LPC2368/api/DNSRequest.h Thu Aug 05 15:09:22 2010 +0000
@@ -21,44 +21,83 @@
THE SOFTWARE.
*/
+/** \file
+DNS Request header file
+*/
+
#ifndef DNSREQUEST_H
#define DNSREQUEST_H
-#include "if/net/net.h"
+#include "core/net.h"
+#include "core/ipaddr.h"
+#include "core/host.h"
//Essentially it is a safe interface to NetDnsRequest
+///DNS Request error codes
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_OK = 0 ///<Success
};
+///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,
};
+class NetDnsRequest;
+enum NetDnsReply;
+
+///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();
+
+ ///Terminates and closes request
~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 +105,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);
+ ///Closes DNS Request before completion
DNSRequestErr close();
protected:
