You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/03/29 12:58:43 UTC

ignite git commit: IGNITE-2902: CPP: IgniteError is now extends std::exception. This closes #582.

Repository: ignite
Updated Branches:
  refs/heads/master 732abda9e -> 7f9ee2d59


IGNITE-2902: CPP: IgniteError is now extends std::exception. This closes #582.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7f9ee2d5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7f9ee2d5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7f9ee2d5

Branch: refs/heads/master
Commit: 7f9ee2d599b8a531f6b7046a418fd7f947abf8d0
Parents: 732abda
Author: isapego <is...@gridgain.com>
Authored: Tue Mar 29 13:58:36 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Mar 29 13:58:36 2016 +0300

----------------------------------------------------------------------
 modules/platforms/cpp/core-test/Makefile.am     |  1 +
 .../cpp/core-test/project/vs/core-test.vcxproj  |  1 +
 .../project/vs/core-test.vcxproj.filters        |  3 ++
 .../cpp/core-test/src/ignite_error_test.cpp     | 45 ++++++++++++++++++++
 .../cpp/core/include/ignite/ignite_error.h      | 15 +++++--
 modules/platforms/cpp/core/src/ignite_error.cpp |  7 ++-
 6 files changed, 68 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7f9ee2d5/modules/platforms/cpp/core-test/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/Makefile.am b/modules/platforms/cpp/core-test/Makefile.am
index 531fee0..55b3b98 100644
--- a/modules/platforms/cpp/core-test/Makefile.am
+++ b/modules/platforms/cpp/core-test/Makefile.am
@@ -31,6 +31,7 @@ ignite_tests_SOURCES = src/cache_test.cpp \
                          src/ignition_test.cpp \
                          src/interop_memory_test.cpp \
                          src/handle_registry_test.cpp \
+                         src/ignite_error_test.cpp \
                          src/binary_test_defs.cpp \
                          src/binary_reader_writer_raw_test.cpp \
                          src/binary_reader_writer_test.cpp \

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f9ee2d5/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj b/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj
index d98d202..9e3d816 100644
--- a/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj
+++ b/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj
@@ -33,6 +33,7 @@
   <ItemGroup>
     <ClCompile Include="..\..\src\cache_test.cpp" />
     <ClCompile Include="..\..\src\concurrent_test.cpp" />
+    <ClCompile Include="..\..\src\ignite_error_test.cpp" />
     <ClCompile Include="..\..\src\ignition_test.cpp" />
     <ClCompile Include="..\..\src\handle_registry_test.cpp" />
     <ClCompile Include="..\..\src\binary_reader_writer_raw_test.cpp" />

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f9ee2d5/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj.filters
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj.filters b/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj.filters
index 15b9c40..ec7bab5 100644
--- a/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj.filters
+++ b/modules/platforms/cpp/core-test/project/vs/core-test.vcxproj.filters
@@ -37,6 +37,9 @@
     <ClCompile Include="..\..\src\interop_memory_test.cpp">
       <Filter>Code</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\ignite_error_test.cpp">
+      <Filter>Code</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\include\teamcity_messages.h">

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f9ee2d5/modules/platforms/cpp/core-test/src/ignite_error_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/src/ignite_error_test.cpp b/modules/platforms/cpp/core-test/src/ignite_error_test.cpp
new file mode 100644
index 0000000..c9e3043
--- /dev/null
+++ b/modules/platforms/cpp/core-test/src/ignite_error_test.cpp
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _MSC_VER
+    #define BOOST_TEST_DYN_LINK
+#endif
+
+#include <boost/test/unit_test.hpp>
+
+#include "ignite/ignite_error.h"
+
+using namespace ignite;
+using namespace boost::unit_test;
+
+BOOST_AUTO_TEST_SUITE(IgniteErrorTestSuite)
+
+BOOST_AUTO_TEST_CASE(TestIgniteErrorDerivesStdException)
+{
+    const std::string testMsg = "Lorem ipsum dolor sit amet";
+
+    try
+    {
+        throw IgniteError(IgniteError::IGNITE_ERR_GENERIC, testMsg.c_str());
+    }
+    catch (std::exception& e)
+    {
+        BOOST_REQUIRE_EQUAL(testMsg, std::string(e.what()));
+    }
+}
+
+BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f9ee2d5/modules/platforms/cpp/core/include/ignite/ignite_error.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/ignite_error.h b/modules/platforms/cpp/core/include/ignite/ignite_error.h
index 3b192b1..4097a62 100644
--- a/modules/platforms/cpp/core/include/ignite/ignite_error.h
+++ b/modules/platforms/cpp/core/include/ignite/ignite_error.h
@@ -23,9 +23,11 @@
 #ifndef _IGNITE_ERROR
 #define _IGNITE_ERROR
 
-#include <sstream>
 #include <stdint.h>
 
+#include <exception>
+#include <sstream>
+
 #include <ignite/common/common.h>
 
 #define IGNITE_ERROR_1(code, part1) { \
@@ -75,7 +77,7 @@ namespace ignite
     /**
      * Ignite error information.
      */
-    class IGNITE_IMPORT_EXPORT IgniteError
+    class IGNITE_IMPORT_EXPORT IgniteError : public std::exception
     {
     public:
         /** Success. */
@@ -243,7 +245,14 @@ namespace ignite
          * @return Error message.
          */
         const char* GetText() const;
-        
+
+        /**
+         * Get error message. Synonim for GetText().
+         *
+         * @return Error message.
+         */
+        virtual const char* what() const;
+
         /**
          * Set error.
          *

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f9ee2d5/modules/platforms/cpp/core/src/ignite_error.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/ignite_error.cpp b/modules/platforms/cpp/core/src/ignite_error.cpp
index 1545631..ad30e46 100644
--- a/modules/platforms/cpp/core/src/ignite_error.cpp
+++ b/modules/platforms/cpp/core/src/ignite_error.cpp
@@ -90,7 +90,12 @@ namespace ignite
         else
             return  "No additional information available.";
     }
-    
+
+    const char* IgniteError::what() const
+    {
+        return GetText();
+    }
+
     void IgniteError::SetError(const int jniCode, const char* jniCls, const char* jniMsg, IgniteError* err)
     {
         if (jniCode == IGNITE_JNI_ERR_SUCCESS)