[coco] Add 'Module' class template (#721)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Thu, 19 Jul 2018 10:11:25 +0000 (19:11 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 19 Jul 2018 10:11:25 +0000 (19:11 +0900)
This commit adds 'Module' class which serves as an entry point for coco
IR.

Note that this commit justs adds a template (or placeholder) for
'Module' implementation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/coco/core/include/coco/IR/Module.h [new file with mode: 0644]
contrib/coco/core/src/IR/Module.cpp [new file with mode: 0644]
contrib/coco/core/src/IR/Module.test.cpp [new file with mode: 0644]

diff --git a/contrib/coco/core/include/coco/IR/Module.h b/contrib/coco/core/include/coco/IR/Module.h
new file mode 100644 (file)
index 0000000..3a511ab
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef __COCO_IR_MODULE_H__
+#define __COCO_IR_MODULE_H__
+
+namespace coco
+{
+
+/**
+ * @breif Top-level element of coco IR which represents a neural network
+ */
+class Module final
+{
+public:
+  Module() = default;
+
+public:
+  Module(const Module &) = delete;
+  Module(Module &&) = delete;
+};
+
+} // namespace coco
+
+#endif // __COCO_IR_MODULE_H__
diff --git a/contrib/coco/core/src/IR/Module.cpp b/contrib/coco/core/src/IR/Module.cpp
new file mode 100644 (file)
index 0000000..fc32d05
--- /dev/null
@@ -0,0 +1,3 @@
+#include "coco/IR/Module.h"
+
+// NOTE Do NOT delete this file; this file checks the completeness of 'Module.h'
diff --git a/contrib/coco/core/src/IR/Module.test.cpp b/contrib/coco/core/src/IR/Module.test.cpp
new file mode 100644 (file)
index 0000000..e4aa140
--- /dev/null
@@ -0,0 +1,13 @@
+#include "coco/IR/Module.h"
+
+#include <gtest/gtest.h>
+
+TEST(IR_MODULE, default_constructable)
+{
+  // coco::Module should be default constructable.
+  auto m = new coco::Module{};
+
+  ASSERT_NE(m, nullptr);
+
+  delete m;
+}