initial code repo
[stor4nfv.git] / src / ceph / src / json_spirit / json_spirit_error_position.h
diff --git a/src/ceph/src/json_spirit/json_spirit_error_position.h b/src/ceph/src/json_spirit/json_spirit_error_position.h
new file mode 100644 (file)
index 0000000..e6f63bb
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef JSON_SPIRIT_ERROR_POSITION\r
+#define JSON_SPIRIT_ERROR_POSITION\r
+\r
+//          Copyright John W. Wilkinson 2007 - 2011\r
+// Distributed under the MIT License, see accompanying file LICENSE.txt\r
+\r
+// json spirit version 4.05\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+#include <string>\r
+\r
+namespace json_spirit\r
+{\r
+    // An Error_position exception is thrown by the "read_or_throw" functions below on finding an error.\r
+    // Note the "read_or_throw" functions are around 3 times slower than the standard functions "read" \r
+    // functions that return a bool.\r
+    //\r
+    struct Error_position\r
+    {\r
+        Error_position();\r
+        Error_position( unsigned int line, unsigned int column, const std::string& reason );\r
+        bool operator==( const Error_position& lhs ) const;\r
+        unsigned int line_;\r
+        unsigned int column_;\r
+        std::string reason_;\r
+    };\r
+\r
+    inline Error_position::Error_position()\r
+    :   line_( 0 )\r
+    ,   column_( 0 )\r
+    {\r
+    }\r
+\r
+    inline Error_position::Error_position( unsigned int line, unsigned int column, const std::string& reason )\r
+    :   line_( line )\r
+    ,   column_( column )\r
+    ,   reason_( reason )\r
+    {\r
+    }\r
+\r
+    inline bool Error_position::operator==( const Error_position& lhs ) const\r
+    {\r
+        if( this == &lhs ) return true;\r
+\r
+        return ( reason_ == lhs.reason_ ) &&\r
+               ( line_   == lhs.line_ ) &&\r
+               ( column_ == lhs.column_ ); \r
+    }\r
+}\r
+\r
+#endif\r