RelpipeException v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Fri, 22 Nov 2019 15:27:30 +0100
branchv_0
changeset 19 2999fca726f3
parent 18 9d566568d37c
child 20 a8ccd2b19faa
RelpipeException
include/relpipe/common/RelpipeException.h
nbproject/configurations.xml
src/CMakeLists.txt
src/RelpipeException.cpp
--- /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;
+}
+
+}
+}