TPIE

v1.1rc1-6-g0c97303
factory_helpers.h
1 // This file was generated by factory_helpers.gen.py, DO NOT EDIT
2 #ifndef TPIE_PIPELINING_FACTORY_HELPERS_H
3 #define TPIE_PIPELINING_FACTORY_HELPERS_H
4 
5 #include <tpie/pipelining/factory_base.h>
6 
7 namespace tpie {
8 namespace pipelining {
9 
14 template <template <typename dest_t> class R>
15 class factory_0 : public factory_base {
16 public:
17  template<typename dest_t>
18  struct constructed {
19  typedef R<dest_t> type;
20  };
21 
22  template <typename dest_t>
23  inline R<dest_t> construct(const dest_t & dest) const {
24  R<dest_t> r(dest);
25  this->init_node(r);
26  return r;
27  }
28 };
29 
34 template <typename Holder>
35 class tempfactory_0 : public factory_base {
36 public:
37  template<typename dest_t>
38  struct constructed {
39  typedef typename Holder::template type<dest_t> type;
40  };
41 
42  template <typename dest_t>
43  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
44  typename Holder::template type<dest_t> r(dest);
45  this->init_node(r);
46  return r;
47  }
48 };
49 
54 template <template <typename dest_t> class R, typename T1>
55 class factory_1 : public factory_base {
56 public:
57  template<typename dest_t>
58  struct constructed {
59  typedef R<dest_t> type;
60  };
61 
62  inline factory_1(T1 t1) : t1(t1) {}
63 
64  template <typename dest_t>
65  inline R<dest_t> construct(const dest_t & dest) const {
66  R<dest_t> r(dest, t1);
67  this->init_node(r);
68  return r;
69  }
70 private:
71  T1 t1;
72 };
73 
78 template <typename Holder, typename T1>
79 class tempfactory_1 : public factory_base {
80 public:
81  template<typename dest_t>
82  struct constructed {
83  typedef typename Holder::template type<dest_t> type;
84  };
85 
86  inline tempfactory_1(T1 t1) : t1(t1) {}
87 
88  template <typename dest_t>
89  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
90  typename Holder::template type<dest_t> r(dest, t1);
91  this->init_node(r);
92  return r;
93  }
94 private:
95  T1 t1;
96 };
97 
102 template <template <typename dest_t> class R, typename T1, typename T2>
103 class factory_2 : public factory_base {
104 public:
105  template<typename dest_t>
106  struct constructed {
107  typedef R<dest_t> type;
108  };
109 
110  inline factory_2(T1 t1, T2 t2) : t1(t1), t2(t2) {}
111 
112  template <typename dest_t>
113  inline R<dest_t> construct(const dest_t & dest) const {
114  R<dest_t> r(dest, t1, t2);
115  this->init_node(r);
116  return r;
117  }
118 private:
119  T1 t1;
120  T2 t2;
121 };
122 
127 template <typename Holder, typename T1, typename T2>
128 class tempfactory_2 : public factory_base {
129 public:
130  template<typename dest_t>
131  struct constructed {
132  typedef typename Holder::template type<dest_t> type;
133  };
134 
135  inline tempfactory_2(T1 t1, T2 t2) : t1(t1), t2(t2) {}
136 
137  template <typename dest_t>
138  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
139  typename Holder::template type<dest_t> r(dest, t1, t2);
140  this->init_node(r);
141  return r;
142  }
143 private:
144  T1 t1;
145  T2 t2;
146 };
147 
152 template <template <typename dest_t> class R, typename T1, typename T2, typename T3>
153 class factory_3 : public factory_base {
154 public:
155  template<typename dest_t>
156  struct constructed {
157  typedef R<dest_t> type;
158  };
159 
160  inline factory_3(T1 t1, T2 t2, T3 t3) : t1(t1), t2(t2), t3(t3) {}
161 
162  template <typename dest_t>
163  inline R<dest_t> construct(const dest_t & dest) const {
164  R<dest_t> r(dest, t1, t2, t3);
165  this->init_node(r);
166  return r;
167  }
168 private:
169  T1 t1;
170  T2 t2;
171  T3 t3;
172 };
173 
178 template <typename Holder, typename T1, typename T2, typename T3>
179 class tempfactory_3 : public factory_base {
180 public:
181  template<typename dest_t>
182  struct constructed {
183  typedef typename Holder::template type<dest_t> type;
184  };
185 
186  inline tempfactory_3(T1 t1, T2 t2, T3 t3) : t1(t1), t2(t2), t3(t3) {}
187 
188  template <typename dest_t>
189  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
190  typename Holder::template type<dest_t> r(dest, t1, t2, t3);
191  this->init_node(r);
192  return r;
193  }
194 private:
195  T1 t1;
196  T2 t2;
197  T3 t3;
198 };
199 
204 template <template <typename dest_t> class R, typename T1, typename T2, typename T3, typename T4>
205 class factory_4 : public factory_base {
206 public:
207  template<typename dest_t>
208  struct constructed {
209  typedef R<dest_t> type;
210  };
211 
212  inline factory_4(T1 t1, T2 t2, T3 t3, T4 t4) : t1(t1), t2(t2), t3(t3), t4(t4) {}
213 
214  template <typename dest_t>
215  inline R<dest_t> construct(const dest_t & dest) const {
216  R<dest_t> r(dest, t1, t2, t3, t4);
217  this->init_node(r);
218  return r;
219  }
220 private:
221  T1 t1;
222  T2 t2;
223  T3 t3;
224  T4 t4;
225 };
226 
231 template <typename Holder, typename T1, typename T2, typename T3, typename T4>
232 class tempfactory_4 : public factory_base {
233 public:
234  template<typename dest_t>
235  struct constructed {
236  typedef typename Holder::template type<dest_t> type;
237  };
238 
239  inline tempfactory_4(T1 t1, T2 t2, T3 t3, T4 t4) : t1(t1), t2(t2), t3(t3), t4(t4) {}
240 
241  template <typename dest_t>
242  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
243  typename Holder::template type<dest_t> r(dest, t1, t2, t3, t4);
244  this->init_node(r);
245  return r;
246  }
247 private:
248  T1 t1;
249  T2 t2;
250  T3 t3;
251  T4 t4;
252 };
253 
258 template <template <typename dest_t> class R, typename T1, typename T2, typename T3, typename T4, typename T5>
259 class factory_5 : public factory_base {
260 public:
261  template<typename dest_t>
262  struct constructed {
263  typedef R<dest_t> type;
264  };
265 
266  inline factory_5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5) {}
267 
268  template <typename dest_t>
269  inline R<dest_t> construct(const dest_t & dest) const {
270  R<dest_t> r(dest, t1, t2, t3, t4, t5);
271  this->init_node(r);
272  return r;
273  }
274 private:
275  T1 t1;
276  T2 t2;
277  T3 t3;
278  T4 t4;
279  T5 t5;
280 };
281 
286 template <typename Holder, typename T1, typename T2, typename T3, typename T4, typename T5>
287 class tempfactory_5 : public factory_base {
288 public:
289  template<typename dest_t>
290  struct constructed {
291  typedef typename Holder::template type<dest_t> type;
292  };
293 
294  inline tempfactory_5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5) {}
295 
296  template <typename dest_t>
297  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
298  typename Holder::template type<dest_t> r(dest, t1, t2, t3, t4, t5);
299  this->init_node(r);
300  return r;
301  }
302 private:
303  T1 t1;
304  T2 t2;
305  T3 t3;
306  T4 t4;
307  T5 t5;
308 };
309 
314 template <template <typename dest_t> class R, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
315 class factory_6 : public factory_base {
316 public:
317  template<typename dest_t>
318  struct constructed {
319  typedef R<dest_t> type;
320  };
321 
322  inline factory_6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5), t6(t6) {}
323 
324  template <typename dest_t>
325  inline R<dest_t> construct(const dest_t & dest) const {
326  R<dest_t> r(dest, t1, t2, t3, t4, t5, t6);
327  this->init_node(r);
328  return r;
329  }
330 private:
331  T1 t1;
332  T2 t2;
333  T3 t3;
334  T4 t4;
335  T5 t5;
336  T6 t6;
337 };
338 
343 template <typename Holder, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
344 class tempfactory_6 : public factory_base {
345 public:
346  template<typename dest_t>
347  struct constructed {
348  typedef typename Holder::template type<dest_t> type;
349  };
350 
351  inline tempfactory_6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5), t6(t6) {}
352 
353  template <typename dest_t>
354  inline typename Holder::template type<dest_t> construct(const dest_t & dest) const {
355  typename Holder::template type<dest_t> r(dest, t1, t2, t3, t4, t5, t6);
356  this->init_node(r);
357  return r;
358  }
359 private:
360  T1 t1;
361  T2 t2;
362  T3 t3;
363  T4 t4;
364  T5 t5;
365  T6 t6;
366 };
367 
372 template <typename R>
373 class termfactory_0 : public factory_base {
374 public:
375  typedef R constructed_type;
376 
377  inline R construct() const {
378  R r;
379  this->init_node(r);
380  return r;
381  }
382 };
383 
388 template <typename R, typename T1>
389 class termfactory_1 : public factory_base {
390 public:
391  typedef R constructed_type;
392 
393  inline termfactory_1(T1 t1) : t1(t1) {}
394 
395  inline R construct() const {
396  R r(t1);
397  this->init_node(r);
398  return r;
399  }
400 private:
401  T1 t1;
402 };
403 
408 template <typename R, typename T1, typename T2>
409 class termfactory_2 : public factory_base {
410 public:
411  typedef R constructed_type;
412 
413  inline termfactory_2(T1 t1, T2 t2) : t1(t1), t2(t2) {}
414 
415  inline R construct() const {
416  R r(t1, t2);
417  this->init_node(r);
418  return r;
419  }
420 private:
421  T1 t1;
422  T2 t2;
423 };
424 
429 template <typename R, typename T1, typename T2, typename T3>
430 class termfactory_3 : public factory_base {
431 public:
432  typedef R constructed_type;
433 
434  inline termfactory_3(T1 t1, T2 t2, T3 t3) : t1(t1), t2(t2), t3(t3) {}
435 
436  inline R construct() const {
437  R r(t1, t2, t3);
438  this->init_node(r);
439  return r;
440  }
441 private:
442  T1 t1;
443  T2 t2;
444  T3 t3;
445 };
446 
451 template <typename R, typename T1, typename T2, typename T3, typename T4>
452 class termfactory_4 : public factory_base {
453 public:
454  typedef R constructed_type;
455 
456  inline termfactory_4(T1 t1, T2 t2, T3 t3, T4 t4) : t1(t1), t2(t2), t3(t3), t4(t4) {}
457 
458  inline R construct() const {
459  R r(t1, t2, t3, t4);
460  this->init_node(r);
461  return r;
462  }
463 private:
464  T1 t1;
465  T2 t2;
466  T3 t3;
467  T4 t4;
468 };
469 
474 template <typename R, typename T1, typename T2, typename T3, typename T4, typename T5>
475 class termfactory_5 : public factory_base {
476 public:
477  typedef R constructed_type;
478 
479  inline termfactory_5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5) {}
480 
481  inline R construct() const {
482  R r(t1, t2, t3, t4, t5);
483  this->init_node(r);
484  return r;
485  }
486 private:
487  T1 t1;
488  T2 t2;
489  T3 t3;
490  T4 t4;
491  T5 t5;
492 };
493 
498 template <typename R, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
499 class termfactory_6 : public factory_base {
500 public:
501  typedef R constructed_type;
502 
503  inline termfactory_6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : t1(t1), t2(t2), t3(t3), t4(t4), t5(t5), t6(t6) {}
504 
505  inline R construct() const {
506  R r(t1, t2, t3, t4, t5, t6);
507  this->init_node(r);
508  return r;
509  }
510 private:
511  T1 t1;
512  T2 t2;
513  T3 t3;
514  T4 t4;
515  T5 t5;
516  T6 t6;
517 };
518 
519 } // namespace pipelining
520 } // namespace tpie
521 
522 #endif // TPIE_PIPELINING_FACTORY_HELPERS_H
Node factory for 4-argument templated generator.
Node factory for 0-argument terminator.
Node factory for 6-argument terminator.
Node factory for 1-argument templated generator.
Node factory for 4-argument generator.
Node factory for 5-argument templated generator.
Node factory for 1-argument terminator.
Node factory for 2-argument templated generator.
Node factory for 3-argument generator.
Node factory for 3-argument terminator.
Node factory for 2-argument generator.
Node factory for 6-argument templated generator.
Node factory for 2-argument terminator.
Node factory for 6-argument generator.
Node factory for 4-argument terminator.
Node factory for 1-argument generator.
Node factory for 5-argument generator.
Node factory for 3-argument templated generator.
Node factory for 5-argument terminator.
Node factory for 0-argument templated generator.
Node factory for 0-argument generator.