lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5255] Add a general numeric input-sequence type


From: Greg Chicares
Subject: [lmi-commits] [5255] Add a general numeric input-sequence type
Date: Wed, 17 Aug 2011 14:57:26 +0000

Revision: 5255
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5255
Author:   chicares
Date:     2011-08-17 14:57:25 +0000 (Wed, 17 Aug 2011)
Log Message:
-----------
Add a general numeric input-sequence type

Modified Paths:
--------------
    lmi/trunk/datum_sequence.cpp
    lmi/trunk/datum_sequence.hpp

Modified: lmi/trunk/datum_sequence.cpp
===================================================================
--- lmi/trunk/datum_sequence.cpp        2011-08-15 01:50:32 UTC (rev 5254)
+++ lmi/trunk/datum_sequence.cpp        2011-08-17 14:57:25 UTC (rev 5255)
@@ -169,8 +169,26 @@
     return lhs.equals(rhs);
 }
 
-// Payments.
+// Numeric MVC input sequence.
 
+numeric_sequence& numeric_sequence::operator=(std::string const& s)
+{
+    datum_sequence::operator=(s);
+    return *this;
+}
+
+std::map<std::string,std::string> const numeric_sequence::allowed_keywords() 
const
+{
+    return datum_sequence::allowed_keywords();
+}
+
+bool operator==(numeric_sequence const& lhs, numeric_sequence const& rhs)
+{
+    return lhs.equals(rhs);
+}
+
+// MVC input sequence for payments.
+
 payment_sequence& payment_sequence::operator=(std::string const& s)
 {
     datum_sequence::operator=(s);
@@ -205,7 +223,7 @@
     return lhs.equals(rhs);
 }
 
-// Payment modes.
+// MVC input sequence for payment mode.
 
 mode_sequence& mode_sequence::operator=(std::string const& s)
 {

Modified: lmi/trunk/datum_sequence.hpp
===================================================================
--- lmi/trunk/datum_sequence.hpp        2011-08-15 01:50:32 UTC (rev 5254)
+++ lmi/trunk/datum_sequence.hpp        2011-08-17 14:57:25 UTC (rev 5255)
@@ -108,6 +108,39 @@
     return from.value();
 }
 
+/// Numeric MVC input sequence.
+
+class numeric_sequence
+    :public datum_sequence
+    ,private boost::equality_comparable<numeric_sequence,numeric_sequence>
+{
+  public:
+    numeric_sequence() {}
+    explicit numeric_sequence(std::string const& s) : datum_sequence(s) {}
+
+    numeric_sequence& operator=(std::string const&);
+
+    virtual bool numeric_values_are_allowable() const {return true;}
+    virtual bool keyword_values_are_allowable() const {return false;}
+    virtual std::map<std::string,std::string> const allowed_keywords() const;
+};
+
+bool operator==(numeric_sequence const&, numeric_sequence const&);
+
+template<> inline numeric_sequence value_cast<numeric_sequence,std::string>
+    (std::string const& from)
+{
+    return numeric_sequence(from);
+}
+
+template<> inline std::string value_cast<std::string,numeric_sequence>
+    (numeric_sequence const& from)
+{
+    return from.value();
+}
+
+/// MVC input sequence for payments.
+
 class payment_sequence
     :public datum_sequence
     ,private boost::equality_comparable<payment_sequence,payment_sequence>
@@ -137,6 +170,8 @@
     return from.value();
 }
 
+/// MVC input sequence for payment mode.
+
 class mode_sequence
     :public datum_sequence
     ,private boost::equality_comparable<mode_sequence,mode_sequence>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]