aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino/IPAddress.cpp
diff options
context:
space:
mode:
authoramcewen <amcewen@bcs.org.uk>2011-03-28 12:08:53 +0100
committeramcewen <amcewen@bcs.org.uk>2011-03-28 12:08:53 +0100
commite011dab7b413949c942ad31c3d9c6003f76133c0 (patch)
tree9dfcf1ca2777070dc5bf343128f6045f64a59cff /cores/arduino/IPAddress.cpp
parent11dd06436d6144420cc6f5b5d9a926e7f34818b1 (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.cpp44
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;
+}
+