summaryrefslogtreecommitdiffabout
path: root/share/component.skel
Side-by-side diff
Diffstat (limited to 'share/component.skel') (more/less context) (ignore whitespace changes)
-rw-r--r--share/component.skel53
1 files changed, 53 insertions, 0 deletions
diff --git a/share/component.skel b/share/component.skel
new file mode 100644
index 0000000..f96c5b3
--- a/dev/null
+++ b/share/component.skel
@@ -0,0 +1,53 @@
+%%#.cc
+#include "<%component_basename%>.h"
+#undef __THIS_CLASS
+#define __THIS_CLASS <%class_name%>
+<%impl%>
+
+<%member_functions:impl%>
+
+void *<%class_name%>::__the_most_derived_this() {
+ return this;
+}
+void <%class_name%>::__do_imports() {
+ __base_class::__do_imports();
+ <%ancestors:import%>
+ <%imports:import%>
+}
+
+extern "C" sitecing::acomponent* _egg () {
+ return dynamic_cast<sitecing::acomponent*>(new <%class_name%>());
+}
+%%#.h
+#ifndef __<%class_name%>_H
+#define __<%class_name%>_H
+#include "<%baseclass_header%>"
+<%ancestors:includes%>
+<%imports:includes%>
+#undef __THIS_CLASS
+#define __THIS_CLASS <%class_name%>
+<%decl%>
+
+class <%class_name%> : virtual public <%baseclass_name%><%ancestors:base_clause_part%> {
+ public:
+ typedef <%baseclass_name%> __base_class;
+ typedef <%class_name%> __this_class;
+ <%ancestors:typedefs%>
+ <%member_variables:decl%>
+
+ <%member_functions:decl%>
+
+ virtual void *__the_most_derived_this();
+ virtual void __do_imports();
+};
+
+#undef __THIS_CLASS
+#endif /* __<%class_name%>_H */
+%%.imports
+<%imports:list%>
+%%.classname
+<%class_name%>
+%%.basecomponent
+<%base_component%>
+%%.ancestors
+<%ancestors:component_list%>