summaryrefslogtreecommitdiffabout
path: root/share/component.skel
Unidiff
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 @@
1%%#.cc
2#include "<%component_basename%>.h"
3#undef __THIS_CLASS
4#define __THIS_CLASS <%class_name%>
5<%impl%>
6
7<%member_functions:impl%>
8
9void *<%class_name%>::__the_most_derived_this() {
10 return this;
11}
12void <%class_name%>::__do_imports() {
13 __base_class::__do_imports();
14 <%ancestors:import%>
15 <%imports:import%>
16}
17
18extern "C" sitecing::acomponent* _egg () {
19 return dynamic_cast<sitecing::acomponent*>(new <%class_name%>());
20}
21%%#.h
22#ifndef __<%class_name%>_H
23#define __<%class_name%>_H
24#include "<%baseclass_header%>"
25<%ancestors:includes%>
26<%imports:includes%>
27#undef __THIS_CLASS
28#define __THIS_CLASS <%class_name%>
29<%decl%>
30
31class <%class_name%> : virtual public <%baseclass_name%><%ancestors:base_clause_part%> {
32 public:
33 typedef <%baseclass_name%> __base_class;
34 typedef <%class_name%> __this_class;
35 <%ancestors:typedefs%>
36 <%member_variables:decl%>
37
38 <%member_functions:decl%>
39
40 virtual void *__the_most_derived_this();
41 virtual void __do_imports();
42};
43
44#undef __THIS_CLASS
45#endif /* __<%class_name%>_H */
46%%.imports
47<%imports:list%>
48%%.classname
49<%class_name%>
50%%.basecomponent
51<%base_component%>
52%%.ancestors
53<%ancestors:component_list%>