summaryrefslogtreecommitdiff
path: root/modules/CIAO/CIDLC/ServantHeaderGenerator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/CIDLC/ServantHeaderGenerator.hpp')
-rw-r--r--modules/CIAO/CIDLC/ServantHeaderGenerator.hpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/CIAO/CIDLC/ServantHeaderGenerator.hpp b/modules/CIAO/CIDLC/ServantHeaderGenerator.hpp
new file mode 100644
index 00000000000..91e881e1411
--- /dev/null
+++ b/modules/CIAO/CIDLC/ServantHeaderGenerator.hpp
@@ -0,0 +1,54 @@
+// file : CIDLC/ServantHeaderGenerator.hpp
+// author : Jeff Parsons <j.parsons@vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef SERVANT_HEADER_GENERATOR_HPP
+#define SERVANT_HEADER_GENERATOR_HPP
+
+#include <string>
+#include <iosfwd>
+
+#include "EmitterContext.hpp"
+
+#include "CCF/CodeGenerationKit/CommandLine.hpp"
+
+#include "CCF/CIDL/SemanticGraph.hpp"
+#include "CCF/CIDL/Traversal.hpp"
+
+class ServantHeaderEmitter
+{
+public:
+ ServantHeaderEmitter (std::ostream& os_,
+ CommandLine const& cl,
+ std::string export_macro,
+ fs::path const& file);
+
+ virtual ~ServantHeaderEmitter () {}
+
+ /// Called by the backend driver.
+ virtual void
+ generate (CCF::CIDL::SemanticGraph::TranslationUnit& u);
+
+private:
+ /// Called from generate().
+
+ virtual void
+ pre (CCF::CIDL::SemanticGraph::TranslationUnit& u);
+
+ virtual void
+ generate_facets (CCF::CIDL::SemanticGraph::TranslationUnit& u,
+ Context& c);
+
+ virtual void
+ post (CCF::CIDL::SemanticGraph::TranslationUnit& u);
+
+private:
+ std::ostream& os;
+ CommandLine const& cl_;
+ std::string export_macro_;
+ fs::path file_;
+};
+
+
+#endif // SERVANT_HEADER_GENERATOR_HPP
+