aboutsummaryrefslogtreecommitdiff
path: root/IPAddress.cpp
diff options
context:
space:
mode:
authorDonald Delmar Davis <don@suspectdevices.com>2013-10-26 15:50:16 -0700
committerDonald Delmar Davis <don@suspectdevices.com>2013-10-26 15:50:16 -0700
commit5bac9dcb4569f107315768677e4c6d580a743171 (patch)
tree2822f877b07b7f6fbfeec54e40448b65ae196c15 /IPAddress.cpp
parent7edfa511b95c70673b87b988a0cd81eb2f8b168b (diff)
Add all the stuff and update the readme.HEADmaster
Diffstat (limited to 'IPAddress.cpp')
-rw-r--r--IPAddress.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/IPAddress.cpp b/IPAddress.cpp
new file mode 100644
index 0000000..fe3deb7
--- /dev/null
+++ b/IPAddress.cpp
@@ -0,0 +1,56 @@
+
+#include <Arduino.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;
+}
+
+size_t IPAddress::printTo(Print& p) const
+{
+ size_t n = 0;
+ for (int i =0; i < 3; i++)
+ {
+ n += p.print(_address[i], DEC);
+ n += p.print('.');
+ }
+ n += p.print(_address[3], DEC);
+ return n;
+}
+