--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/relpipe/common/RelpipeException.h Fri Nov 22 15:27:30 2019 +0100
@@ -0,0 +1,52 @@
+/**
+ * Relational pipes (library)
+ * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the:
+ * - GNU Lesser General Public License as published by the Free Software Foundation;
+ * version 3 of the License or (at your option)
+ * - GNU General Public License as published by the Free Software Foundation;
+ * version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include <string.h>
+#include <iconv.h>
+#include <string>
+#include <array>
+#include <assert.h>
+#include <ostream>
+#include <sstream>
+
+namespace relpipe {
+namespace common {
+
+/**
+ * RelpipeException class is a simple wrapper for iconv() functions.
+ * It converts text from one encoding to another.
+ *
+ * List of all encodings: iconv --list
+ *
+ * n.b. if the default (platform) encoding "" is used, it is required to initialize locales: setlocale(LC_ALL, "");
+ */
+class RelpipeException {
+private:
+ class RelpipeExceptionInternal;
+ RelpipeExceptionInternal* internal;
+public:
+ RelpipeException(std::string message);
+ virtual ~RelpipeException();
+ virtual std::string getMessge();
+};
+
+}
+}
--- a/nbproject/configurations.xml Wed Nov 20 14:56:41 2019 +0100
+++ b/nbproject/configurations.xml Fri Nov 22 15:27:30 2019 +0100
@@ -52,6 +52,7 @@
</df>
<df name="src">
<in>Iconv.cpp</in>
+ <in>RelpipeException.cpp</in>
<in>TextCodec.cpp</in>
<in>relpipe-lib-common.cpp</in>
</df>
@@ -107,6 +108,10 @@
<ccTool flags="0">
</ccTool>
</item>
+ <item path="src/RelpipeException.cpp" ex="false" tool="1" flavor2="11">
+ <ccTool flags="0">
+ </ccTool>
+ </item>
<item path="src/TextCodec.cpp" ex="false" tool="1" flavor2="0">
<ccTool flags="0">
</ccTool>
@@ -155,6 +160,8 @@
</item>
<item path="src/Iconv.cpp" ex="false" tool="1" flavor2="0">
</item>
+ <item path="src/RelpipeException.cpp" ex="false" tool="1" flavor2="0">
+ </item>
<item path="src/TextCodec.cpp" ex="false" tool="1" flavor2="0">
</item>
</conf>
--- a/src/CMakeLists.txt Wed Nov 20 14:56:41 2019 +0100
+++ b/src/CMakeLists.txt Fri Nov 22 15:27:30 2019 +0100
@@ -25,6 +25,7 @@
${LIBRARY_FILE} SHARED
Iconv.cpp
TextCodec.cpp
+ RelpipeException.cpp
${PROJECT_CODE}.cpp
)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/RelpipeException.cpp Fri Nov 22 15:27:30 2019 +0100
@@ -0,0 +1,49 @@
+/**
+ * Relational pipes (library)
+ * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the:
+ * - GNU Lesser General Public License as published by the Free Software Foundation;
+ * version 3 of the License or (at your option)
+ * - GNU General Public License as published by the Free Software Foundation;
+ * version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "../include/relpipe/common/RelpipeException.h"
+
+namespace relpipe {
+namespace common {
+
+class RelpipeException::RelpipeExceptionInternal {
+public:
+ std::string message;
+
+ virtual ~RelpipeExceptionInternal() {
+ }
+
+};
+
+RelpipeException::RelpipeException(std::string message) {
+ internal = new RelpipeExceptionInternal();
+ internal->message = message;
+}
+
+RelpipeException::~RelpipeException() {
+ delete internal;
+}
+
+std::string RelpipeException::getMessge() {
+ return internal->message;
+}
+
+}
+}