[nemiver] Add a bunch of operators to Address



commit c94f28763c5409a033f9e414ef0258bb2592fde3
Author: Dodji Seketeli <dodji redhat com>
Date:   Mon Sep 6 11:34:29 2010 +0200

    Add a bunch of operators to Address
    
    	* src/common/nmv-address.[cc|h] (operator<, operator>, operator<=)
    	(operator>=, operator==(const Address&)): New operators.
    	(operator==(size_t), operator== (const std::string)): Turn these
    	operators into member operators, instead of friend.

 src/common/nmv-address.cc |   40 ++++++++++++++++++++++++++++++++++------
 src/common/nmv-address.h  |    9 +++++++--
 2 files changed, 41 insertions(+), 8 deletions(-)
---
diff --git a/src/common/nmv-address.cc b/src/common/nmv-address.cc
index 68c2bbd..3e5d6fe 100644
--- a/src/common/nmv-address.cc
+++ b/src/common/nmv-address.cc
@@ -102,6 +102,36 @@ Address::operator= (const std::string &a_addr)
     return *this;
 }
 
+bool
+Address::operator< (const Address &a_addr) const
+{
+  return ((size_t) *this < (size_t) a_addr);
+}
+
+bool
+Address::operator> (const Address &a_addr) const
+{
+  return ((size_t) *this > (size_t) a_addr);
+}
+
+bool
+Address::operator>= (const Address &a_addr) const
+{
+  return ((size_t) *this >= (size_t) a_addr);
+}
+
+bool
+Address::operator<= (const Address &a_addr) const
+{
+  return ((size_t) *this <= (size_t) a_addr);
+}
+
+bool
+Address::operator== (const Address &a_addr) const
+{
+  return ((size_t) *this == (size_t)a_addr);
+}
+
 const char&
 Address::operator[] (size_t a_index) const
 {
@@ -115,17 +145,15 @@ Address::clear ()
 }
 
 bool
-operator== (const Address &a_address,
-            const std::string &a_addr)
+Address::operator== (const std::string &a_addr) const
 {
-    return a_address.m_addr == a_addr;
+    return m_addr == a_addr;
 }
 
 bool
-operator== (const Address &a_address,
-            size_t a_addr)
+Address::operator== (size_t a_addr) const
 {
-    return (size_t) a_address == a_addr;
+    return (size_t) *this == a_addr;
 }
 
 NEMIVER_END_NAMESPACE (common)
diff --git a/src/common/nmv-address.h b/src/common/nmv-address.h
index 94562aa..f4fa61a 100644
--- a/src/common/nmv-address.h
+++ b/src/common/nmv-address.h
@@ -44,9 +44,14 @@ public:
     operator size_t () const;
     size_t size () const;
     size_t string_size () const;
+    bool operator<  (const Address&) const;
+    bool operator<= (const Address&) const;
+    bool operator>  (const Address&) const;
+    bool operator>= (const Address&) const;
+    bool operator== (const Address&) const;
+    bool operator== (const std::string &) const;
+    bool operator== (size_t) const;
     Address& operator= (const std::string &);
-    friend bool operator== (const Address&, const std::string &);
-    friend bool operator== (const Address&, size_t);
     const char& operator[] (size_t) const;
     void clear ();
 };// end class Address



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]