Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 types_h = """\
00021 // -*- C++ -*-
00022 /*!
00023 * @file [types_h]
00024 * @brief C++ interface definition for doil
00025 * @date $Date$
00026 * @author This file was automatically generated by omniidl/doil backend
00027 * This file was generated from [idl_fname].
00028 *
00029 * $Id$
00030 */
00031
00032 #ifndef [types_include_guard]
00033 #define [types_include_guard]
00034
00035 #include <vector>
00036 #include <string>
00037
00038 [for inc in include_h]
00039 #include <[inc]>
00040 [endfor]
00041
00042 [for iinc in idl_includes]
00043 #include <[iinc.types_h_path]>
00044 [endfor]
00045
00046 [for decl in declarations]
00047 [decl]
00048 [endfor]
00049 #endif // [types_include_guard]
00050
00051 """
00052
00053 ns_decl = """
00054 [for-inv ens in end_ns]
00055 }; // namespace [ens]
00056 [endfor]
00057 [for bns in begin_ns]
00058 namespace [bns]
00059 {
00060 [endfor]
00061
00062 """
00063
00064 ifacefwd_decl = """\
00065 // forward declaration of interface
00066 class [local.iface_name];
00067
00068 """
00069
00070 struct_decl = """\
00071 // struct
00072 struct [local.name]
00073 {
00074 [for mem in members]
00075 [mem.local.member_type] [mem.local.member_name];
00076 [endfor]
00077 };
00078
00079 """
00080
00081 structfwd_decl = """\
00082 // struct
00083 struct [local.name];
00084
00085 """
00086
00087 union_decl = """\
00088 // union
00089 class [local.name]
00090 {
00091 public:
00092 [local.name](){}
00093 virtual ~[local.name](){}
00094
00095 [for cas in cases]
00096 [local.name]([cas.local.case_type] var)
00097 : m_type([cas.local.discriminator]),
00098 m_[cas.local.case_member](var){}
00099
00100 [cas.local.case_type] get_[cas.local.case_member]() const
00101 {
00102 return m_[cas.local.case_member];
00103 }
00104 void set_[cas.local.case_member]([cas.local.case_type] var)
00105 {
00106 m_type = [cas.local.discriminator];
00107 m_[cas.local.case_member] = var;
00108 }
00109 [endfor]
00110
00111 [local.switch_fq_type] get_type() const
00112 {
00113 return m_type;
00114 }
00115 private:
00116 [local.switch_fq_type] m_type;
00117 [for cas in cases]
00118 [cas.local.case_type] m_[cas.local.case_member];
00119 [endfor]
00120
00121 };
00122
00123 """
00124
00125 unionfwd_decl = """\
00126 class [local.name];
00127
00128 """
00129
00130 enum_decl = """\
00131 // enum
00132 enum [local.name]
00133 {
00134 [for mem in local.members]
00135 [if-index mem is last]
00136 [mem]
00137 [else]
00138 [mem],
00139 [endif]
00140 [endfor]
00141
00142 };
00143
00144 """
00145
00146 exception_decl = """\
00147 // struct
00148 struct [local.name]
00149 {
00150 [for mem in members]
00151 [mem.local.member_type] [mem.local.member_name];
00152 [endfor]
00153 };
00154
00155 """
00156
00157 typedef_decl = """\
00158 // typedef
00159 typedef [local.base_type] [local.derived_type];
00160
00161 """
00162
00163
00164
00165 interface_h = """\
00166 // -*- C++ -*-
00167 /*!
00168 * @file [local.iface_h]
00169 * @brief [local.iface_name] C++ interface definition for doil
00170 * @date $Date$
00171 * @author This file was automatically generated by omniidl/doil backend
00172 *
00173 * $Id$
00174 */
00175
00176 #ifndef [local.iface_include_guard]
00177 #define [local.iface_include_guard]
00178
00179 #include <doil/ImplBase.h>
00180 [for inc in local.include_h]
00181 #include <[inc]>
00182 [endfor]
00183
00184 [for iinc in idl_includes]
00185 #include <[iinc.types_h_path]>
00186 [endfor]
00187 #include <[types_h_path]>
00188
00189 [for ih in inherits]
00190 #include <[ih.local.iface_h_path]>
00191 [endfor]
00192
00193 [for ns in local.iface_ns]
00194 namespace [ns]
00195 {
00196 [endfor]
00197 /*!
00198 * @if jp
00199 * @class [local.iface_name]
00200 * @brief [local.iface_name] インターフェースクラス
00201 * @else
00202 * @class [local.iface_name]
00203 * @brief [local.iface_name] interface class
00204 * @endif
00205 */
00206 class [local.iface_name]
00207 : public virtual doil::LocalBase
00208 [for ih in inherits]
00209 [if-index ih is last],
00210 public virtual [ih.local.iface_name_fq]
00211 [else],
00212 public virtual [ih.local.iface_name_fq]
00213 [endif]
00214 [endfor]
00215
00216 {
00217 public:
00218 virtual ~[local.iface_name](){};
00219
00220 [for op in operations]
00221 virtual [op.return.local.retn_type] [op.name]([for a in op.args]
00222 [if-index a is last][a.local.arg_type] [a.local.arg_name]
00223 [else][a.local.arg_type][a.local.arg_name], [endif]
00224 [endfor])
00225 throw ([for raise in op.raises]
00226 [if-index raise is first]
00227 [raise.local.name_fq]
00228 [else]
00229 ,
00230 [raise.local.name_fq]
00231 [endif]
00232 [endfor]
00233 ) = 0;
00234
00235 [endfor]
00236 };
00237 [for-inv ns in local.iface_ns]
00238 }; // namespace [ns]
00239 [endfor]
00240
00241 #endif // [local.iface_include_guard]
00242
00243 """
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270 a = """
00271 [for td in typedefs]
00272 [if td.corba.tk is "tk_sequence"][if td.corba.sq_tk is "tk_struct"]
00273 [if td.local.deref_sq_type is st.local.base_type]
00274 typedef [td.local.deref_fq_type] [td.local.derived_type];
00275 [endif][endif][endif]
00276 [endfor]
00277
00278 //------------------------------------------------------------
00279 // rest of typedef
00280 //------------------------------------------------------------
00281 [for td in typedefs]
00282 [if td.corba.tk is "tk_sequence"]
00283 [if td.corba.sq_tk is "tk_struct"]
00284 [elif td.corba.sq_tk is "tk_objref"]
00285 [else]
00286 typedef [td.local.deref_fq_type] [td.local.derived_type];
00287 [endif]
00288 [else]
00289 typedef [td.local.deref_fq_type] [td.local.derived_type];
00290 [endif]
00291 [endfor]
00292
00293
00294 [for ns in iface_ns]
00295 }; // namespace [ns]
00296 [endfor]
00297
00298 #endif // [types_include_guard]
00299 """