Dependents:   SimpleLCDClock readCard2Twitter_http AnalogClock_StepperMotor_NTP ServoCamV1

Committer:
donatien
Date:
Mon May 24 10:23:42 2010 +0000
Revision:
0:3717b703f76d
Child:
1:e52ec2a24c6a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:3717b703f76d 1 #ifndef IPADDR_H
donatien 0:3717b703f76d 2 #define IPADDR_H
donatien 0:3717b703f76d 3
donatien 0:3717b703f76d 4 #include "mbed.h"
donatien 0:3717b703f76d 5
donatien 0:3717b703f76d 6 #include "netCfg.h"
donatien 0:3717b703f76d 7 #if NET_LWIP_STACK
donatien 0:3717b703f76d 8 #include "lwip/ip_addr.h"
donatien 0:3717b703f76d 9 #endif
donatien 0:3717b703f76d 10 class IpAddr;
donatien 0:3717b703f76d 11
donatien 0:3717b703f76d 12 class IpAddr //Basically a C++ frontend to ip_addr_t
donatien 0:3717b703f76d 13 {
donatien 0:3717b703f76d 14 public:
donatien 0:3717b703f76d 15 #if NET_LWIP_STACK
donatien 0:3717b703f76d 16 IpAddr(ip_addr_t* pIp)
donatien 0:3717b703f76d 17 {
donatien 0:3717b703f76d 18 *((uint32_t*)m_ip) = pIp->addr;
donatien 0:3717b703f76d 19 }
donatien 0:3717b703f76d 20 #endif
donatien 0:3717b703f76d 21
donatien 0:3717b703f76d 22 IpAddr(uint8_t ip0, uint8_t ip1, uint8_t ip2, uint8_t ip3)
donatien 0:3717b703f76d 23 {
donatien 0:3717b703f76d 24 //We are in LE
donatien 0:3717b703f76d 25 m_ip[0] = ip0;
donatien 0:3717b703f76d 26 m_ip[1] = ip1;
donatien 0:3717b703f76d 27 m_ip[2] = ip2;
donatien 0:3717b703f76d 28 m_ip[3] = ip3;
donatien 0:3717b703f76d 29 }
donatien 0:3717b703f76d 30
donatien 0:3717b703f76d 31 IpAddr()
donatien 0:3717b703f76d 32 {
donatien 0:3717b703f76d 33 m_ip[0] = 0;
donatien 0:3717b703f76d 34 m_ip[1] = 0;
donatien 0:3717b703f76d 35 m_ip[2] = 0;
donatien 0:3717b703f76d 36 m_ip[3] = 0;
donatien 0:3717b703f76d 37 }
donatien 0:3717b703f76d 38
donatien 0:3717b703f76d 39 #if NET_LWIP_STACK
donatien 0:3717b703f76d 40 ip_addr_t getStruct() const
donatien 0:3717b703f76d 41 {
donatien 0:3717b703f76d 42 ip_addr_t ip_struct;
donatien 0:3717b703f76d 43 ip_struct.addr = *((uint32_t*)m_ip);
donatien 0:3717b703f76d 44 return ip_struct;
donatien 0:3717b703f76d 45 }
donatien 0:3717b703f76d 46 #endif
donatien 0:3717b703f76d 47
donatien 0:3717b703f76d 48 uint8_t operator[](unsigned int i) const
donatien 0:3717b703f76d 49 {
donatien 0:3717b703f76d 50 uint8_t null = 0;
donatien 0:3717b703f76d 51 if( i > 3 )
donatien 0:3717b703f76d 52 return null;
donatien 0:3717b703f76d 53 return m_ip[i];
donatien 0:3717b703f76d 54 }
donatien 0:3717b703f76d 55
donatien 0:3717b703f76d 56 bool isEq(const IpAddr& b) const
donatien 0:3717b703f76d 57 {
donatien 0:3717b703f76d 58 return (*((uint32_t*)m_ip) == *((uint32_t*)(b.m_ip)));
donatien 0:3717b703f76d 59 }
donatien 0:3717b703f76d 60
donatien 0:3717b703f76d 61 bool operator==(const IpAddr& b) const
donatien 0:3717b703f76d 62 {
donatien 0:3717b703f76d 63 return isEq(b);
donatien 0:3717b703f76d 64 }
donatien 0:3717b703f76d 65
donatien 0:3717b703f76d 66 bool operator!=(const IpAddr& b) const
donatien 0:3717b703f76d 67 {
donatien 0:3717b703f76d 68 return !(operator==(b));
donatien 0:3717b703f76d 69 }
donatien 0:3717b703f76d 70
donatien 0:3717b703f76d 71 bool isNull() const
donatien 0:3717b703f76d 72 {
donatien 0:3717b703f76d 73 return (*((uint32_t*)m_ip) == 0);
donatien 0:3717b703f76d 74 }
donatien 0:3717b703f76d 75
donatien 0:3717b703f76d 76 private:
donatien 0:3717b703f76d 77 uint8_t m_ip[4];
donatien 0:3717b703f76d 78 };
donatien 0:3717b703f76d 79
donatien 0:3717b703f76d 80 #endif