diff options
author | amcewen <amcewen@bcs.org.uk> | 2011-03-28 12:08:53 +0100 |
---|---|---|
committer | amcewen <amcewen@bcs.org.uk> | 2011-03-28 12:08:53 +0100 |
commit | e011dab7b413949c942ad31c3d9c6003f76133c0 (patch) | |
tree | 9dfcf1ca2777070dc5bf343128f6045f64a59cff /cores/arduino/IPAddress.cpp | |
parent | 11dd06436d6144420cc6f5b5d9a926e7f34818b1 (diff) |
Pulled out Client API into a base class to allow multiple derived classes to use it, and moved it (plus IPAddress) out of the Ethernet library so that other libraries can find it. First steps in integrating the WiFly code so it's easier to switch between that and Ethernet
Diffstat (limited to 'cores/arduino/IPAddress.cpp')
-rw-r--r-- | cores/arduino/IPAddress.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/cores/arduino/IPAddress.cpp b/cores/arduino/IPAddress.cpp new file mode 100644 index 0000000..408d518 --- /dev/null +++ b/cores/arduino/IPAddress.cpp @@ -0,0 +1,44 @@ + +#include <WProgram.h> +#include <IPAddress.h> + +IPAddress::IPAddress() +{ + memset(_address, 0, sizeof(_address)); +} + +IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) +{ + _address[0] = first_octet; + _address[1] = second_octet; + _address[2] = third_octet; + _address[3] = fourth_octet; +} + +IPAddress::IPAddress(uint32_t address) +{ + memcpy(_address, &address, sizeof(_address)); +} + +IPAddress::IPAddress(const uint8_t *address) +{ + memcpy(_address, address, sizeof(_address)); +} + +IPAddress& IPAddress::operator=(const uint8_t *address) +{ + memcpy(_address, address, sizeof(_address)); + return *this; +} + +IPAddress& IPAddress::operator=(uint32_t address) +{ + memcpy(_address, (const uint8_t *)&address, sizeof(_address)); + return *this; +} + +bool IPAddress::operator==(const uint8_t* addr) +{ + return memcmp(addr, _address, sizeof(_address)) == 0; +} + |