source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/tools/CreateNewClass.pl @ 117

Last change on this file since 117 was 117, checked in by moretto, 11 years ago

ESAF version compilable on mac OS

File size: 6.8 KB
Line 
1#!/usr/bin/perl
2# $Id: CreateNewClass.pl 1004 2004-09-13 22:07:40Z thea $
3# simple tool to create an empty new class with right headers
4# Author: D. DeMarco, M. Pallavicini, A.Thea
5#
6
7use Getopt::Std;
8getopt('npus');
9
10use POSIX qw(strftime);
11$now_string = strftime "%Y/%m/%d", gmtime;
12
13
14$singleton = $opt_s;
15$classname = $opt_n;
16$parent = $opt_p;
17
18$classname or die "CreateNewClass: no name defined\n\t usage: CreateNewClass.pl -n name [-s ] [-u <username>] [-p <parent>]";
19
20$uid = $<;
21$user = (getpwuid($uid))[6];
22$user=~s/,.*$//;
23
24if ($opt_u) {
25  $user = $opt_u;
26}
27
28$aa = $classname;
29$aa=~y/[a-z]/[A-Z]/;
30
31$ifd = "__".$aa."_HH__";
32$inc = "";
33if ( $parent ) {
34  $inc = "\#include \"$parent.hh\"";
35  $classparent = " : public $parent";
36}
37
38print "creating $classname.hh\n";
39open(HH,">include/$classname.hh");
40if ( !$singleton) {
41print HH <<pippo;
42// \$Id\$
43// Author: $user   $now_string
44
45/*****************************************************************************
46 * ESAF: Euso Simulation and Analysis Framework                              *
47 *                                                                           *
48 *  Id: $classname                                                           *
49 *  Package: <packagename>                                                   *
50 *  Coordinator: <coordinator>                                               *
51 *                                                                           *
52 *****************************************************************************/
53
54\#ifndef $ifd
55\#define $ifd
56
57\#include "euso.hh"
58$inc
59
60////////////////////////////////////////////////////////////////////////////////
61//                                                                            //
62// $classname                                                                 //
63//                                                                            // 
64// <brief class description>                                                  // 
65//                                                                            // 
66////////////////////////////////////////////////////////////////////////////////
67
68class $classname$classparent {
69public:
70    $classname();
71    virtual ~$classname();
72
73private:
74
75    ClassDef($classname,0)
76};
77
78\#endif  /* $ifd */
79
80pippo
81
82}
83
84else 
85
86{
87print HH <<pippo;
88// \$Id\$
89// Author: $user   $now_string
90
91/*****************************************************************************
92 * ESAF: Euso Simulation and Analysis Framework                              *
93 *                                                                           *
94 *  Id: $classname                                                           *
95 *  Package: <packagename>                                                   *
96 *  Coordinator: <coordinator>                                               *
97 *                                                                           *
98 *****************************************************************************/
99
100\#ifndef $ifd
101\#define $ifd
102
103\#include "euso.hh"
104$inc
105
106////////////////////////////////////////////////////////////////////////////////
107//                                                                            //
108// $classname                                                                 //
109//                                                                            // 
110// <brief class description>                                                  // 
111//                                                                            // 
112////////////////////////////////////////////////////////////////////////////////
113
114class $classname$classparent {
115public:
116    virtual ~$classname();
117
118    // instance
119    static $classname *Get();
120 
121private:
122    $classname();
123
124    // unique instance of $classname
125    static $classname *fMe;
126
127    ClassDef($classname,0)
128};
129
130\#endif  /* $ifd */
131
132pippo
133
134}
135close(HH);
136
137print "creating $classname.cc\n";
138open(CC,">src/$classname.cc");
139if ( !$singleton) {
140print CC <<pippo;
141// \$Id\$
142// Author: $user   $now_string
143
144/*****************************************************************************
145 * ESAF: Euso Simulation and Analysis Framework                              *
146 *                                                                           *
147 *  Id: $classname                                                           *
148 *  Package: <packagename>                                                   *
149 *  Coordinator: <coordinator>                                               *
150 *                                                                           *
151 *****************************************************************************/
152
153//_____________________________________________________________________________
154//
155// $classname
156//
157// <extensive class description>
158//
159//   Config file parameters
160//   ======================
161//
162//   <parameter name>: <parameter description>
163//   -Valid options: <available options>
164//
165
166\#include "$classname.hh"
167
168ClassImp($classname)
169
170//_____________________________________________________________________________
171$classname\:\:$classname() {
172    //
173    // Constructor
174    //
175
176}
177
178//_____________________________________________________________________________
179$classname\:\:~$classname() {
180    //
181    // Destructor
182    //
183}
184
185pippo
186
187}
188else {
189print CC <<pippo;
190// \$Id\$
191// Author: $user   $now_string
192
193/*****************************************************************************
194 * ESAF: Euso Simulation and Analysis Framework                              *
195 *                                                                           *
196 *  Id: $classname                                                           *
197 *  Package: <packagename>                                                   *
198 *  Coordinator: <coordinator>                                               *
199 *                                                                           *
200 *****************************************************************************/
201
202//_____________________________________________________________________________
203//
204//   $classname
205//   ==========
206//
207//   <extensive class description>
208//
209//   Config file parameters
210//   ======================
211//
212//   <parameter name>: <parameter description>
213//   -Valid options: <available options>
214//
215
216\#include "$classname.hh"
217
218ClassImp($classname)
219
220$classname *$classname\:\:fMe = 0;
221
222//_____________________________________________________________________________
223$classname\:\:$classname() {
224    //
225    // Constructor
226    //
227}
228
229//_____________________________________________________________________________
230$classname\:\:~$classname() {
231    //
232    // Destructor
233    //
234}
235
236//_____________________________________________________________________________
237$classname* $classname\:\:Get() {
238    // instance
239    if ( fMe == 0 )
240        fMe = new $classname();
241    return fMe;
242}
243
244pippo
245
246}
247
Note: See TracBrowser for help on using the repository browser.