source: trunk/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4THitsCollection.h@ 1342

Last change on this file since 1342 was 807, checked in by garnier, 17 years ago

update

File size: 12.6 KB
Line 
1// This file was generated automatically by marshalgen.
2
3#ifndef MarshaledG4HitsCollection_H
4#define MarshaledG4HitsCollection_H
5
6
7#include <G4THitsCollection.hh>
8//MSH_include_begin
9#include "ExN04CalorimeterHit.hh"
10#include "ExN04MuonHit.hh"
11#include "ExN04TrackerHit.hh"
12#include "MarshaledExN04CalorimeterHit.h"
13#include "MarshaledExN04MuonHit.h"
14#include "MarshaledExN04TrackerHit.h"
15//MSH_include_end
16
17#include <stdio.h>
18#include <string.h>
19#include "MarshaledObj.h"
20
21 class MarshaledG4HitsCollection;
22
23 class ShadowedMarshaledG4HitsCollection : public G4HitsCollection{
24 friend class MarshaledG4HitsCollection;
25};
26
27
28template <class T> class MarshaledG4THitsCollection;
29
30template <class T> class ShadowedMarshaledG4THitsCollection : public G4THitsCollection<T>{
31 friend class MarshaledG4THitsCollection<T>;
32};
33
34 class MarshaledG4HitsCollection : public MarshaledObj {
35public:
36 G4HitsCollection* param;
37 ShadowedMarshaledG4HitsCollection* Shadowed_param;
38public:
39
40
41// Function implementations
42
43MarshaledG4HitsCollection(G4HitsCollection* objptr) : MarshaledObj() {
44 msh_isUnmarshalDone = false;
45 this->param = objptr;
46 this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param;
47 if (objptr == NULL)
48 return;
49
50 marshal1();
51}
52
53MarshaledG4HitsCollection(void *buf, char isUnmarshaling = 'u')
54: MarshaledObj(buf, isUnmarshaling) {
55 msh_isUnmarshalDone = false;
56}
57
58~MarshaledG4HitsCollection() {
59 //if(msh_isUnmarshalDone && this->param != NULL) {
60 //delete this->param;
61 //}
62}
63
64G4HitsCollection* unmarshal() {
65 //We don't want to unmarshal the buffer is empty.
66 if(msh_size <= MSH_HEADER_SIZE) {
67 //This is buggy, we can't always assume that
68 //obj == NULL <==> List is empty.
69 return NULL;
70 } else {
71 {
72 param = new G4HitsCollection();
73 }
74 this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param;
75 this->msh_isUnmarshalDone = true;
76 unmarshal1();
77 return this->param;
78 }
79}
80
81void unmarshalTo(G4HitsCollection* obj) {
82 //We don't want to unmarshal the buffer is empty.
83 if(msh_size <= MSH_HEADER_SIZE) {
84 //This is buggy, we can't always assume that
85 //obj == NULL <==> List is empty.
86 return;
87 } else {
88 this->param = obj;
89 this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param;
90 this->msh_isUnmarshalDone = true;
91 unmarshal1();
92 }
93}
94
95void marshal1() {
96 //declare field_size to be the size of this field
97 int msh_currentSize = 0;
98 if (isUnmarshaling())
99 throw "Tried to marshal in obj marked isUnmarshaling == true";
100
101 //Copy the sizespec into msh_currentSize here:
102 {
103
104 }
105
106 //Increase the size of buffer if needed
107 EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling)
108 //Mark the beginning position for this field, will write the total size of this field here later
109 msh_field_begin = msh_cursor;
110
111 //Advance cursor of distance = sizeof(int)
112 msh_cursor += sizeof(int);
113
114 //Now just copy "get" functions here
115 {
116 int copy_off = 0;
117 int elementNum;
118
119 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
120 elementNum = ((G4THitsCollection<ExN04CalorimeterHit>*)param)->entries();
121 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
122 elementNum = ((G4THitsCollection<ExN04MuonHit>*)param)->entries();
123 else
124 elementNum = ((G4THitsCollection<ExN04TrackerHit>*)param)->entries();
125
126 memcpy( msh_cursor+copy_off, &elementNum,sizeof(int));
127 copy_off += sizeof(int);
128 for(int index=0;index<elementNum;index++){
129 if(0){}
130 else if((dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL) ){
131 void* anElement;
132
133 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
134 anElement = (*((G4THitsCollection<ExN04CalorimeterHit>*)param))[index];
135 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
136 anElement = (*((G4THitsCollection<ExN04MuonHit>*)param))[index];
137 else
138 anElement = (*((G4THitsCollection<ExN04TrackerHit>*)param))[index];
139
140 MarshaledExN04CalorimeterHit marEle((ExN04CalorimeterHit* )anElement);
141 EXTEND_BUFFER(marEle.getBufferSize());
142 memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize());
143 copy_off += marEle.getBufferSize();
144 }
145 else if( (dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL) ){
146 void* anElement;
147
148 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
149 anElement = (*((G4THitsCollection<ExN04CalorimeterHit>*)param))[index];
150 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
151 anElement = (*((G4THitsCollection<ExN04MuonHit>*)param))[index];
152 else
153 anElement = (*((G4THitsCollection<ExN04TrackerHit>*)param))[index];
154
155 MarshaledExN04MuonHit marEle((ExN04MuonHit* )anElement);
156 EXTEND_BUFFER(marEle.getBufferSize());
157 memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize());
158 copy_off += marEle.getBufferSize();
159 }
160 else if( true ){
161 void* anElement;
162
163 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
164 anElement = (*((G4THitsCollection<ExN04CalorimeterHit>*)param))[index];
165 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
166 anElement = (*((G4THitsCollection<ExN04MuonHit>*)param))[index];
167 else
168 anElement = (*((G4THitsCollection<ExN04TrackerHit>*)param))[index];
169
170 MarshaledExN04TrackerHit marEle((ExN04TrackerHit*)anElement);
171 EXTEND_BUFFER(marEle.getBufferSize());
172 memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize());
173 copy_off += marEle.getBufferSize();
174 }
175 }
176 msh_currentSize = copy_off;
177
178 }
179 //Now advance the cursor
180 msh_cursor += msh_currentSize;
181 //Now set the size of this field
182 int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
183 tmp = (msh_cursor-msh_field_begin) - sizeof(int);
184 memcpy(msh_field_begin, &tmp, sizeof(int));
185
186 //Now set msh_size
187 msh_size = msh_cursor - msh_buffer;
188 MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice);
189}
190
191void unmarshal1() {
192 //declare currentSize to be the size of this field
193 int msh_currentSize = 0;
194 //copy the size of the current field into currentSize
195 memcpy(&msh_currentSize, msh_cursor, sizeof(int));
196 msh_cursor += sizeof(int);
197 //Now copy the setspec here
198 {
199 if(0){}
200 else if((dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL) ){
201 int copy_off = 0;
202 int elementNum;
203 memcpy(&elementNum, msh_cursor+copy_off, sizeof(int));
204 copy_off += sizeof(int);
205 for(int index=0;index<elementNum;index++){
206 MarshaledExN04CalorimeterHit marEle(msh_cursor+copy_off);
207 ExN04CalorimeterHit* anElement = (ExN04CalorimeterHit* )marEle.unmarshal();
208 copy_off += marEle.getBufferSize();
209
210 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
211 ((G4THitsCollection<ExN04CalorimeterHit>*)param)->insert((ExN04CalorimeterHit*)anElement);
212 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
213 ((G4THitsCollection<ExN04MuonHit>*)param)->insert((ExN04MuonHit*)anElement);
214 else
215 ((G4THitsCollection<ExN04TrackerHit>*)param)->insert((ExN04TrackerHit*)anElement);
216
217 }
218 }
219 else if( (dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL) ){
220 int copy_off = 0;
221 int elementNum;
222 memcpy(&elementNum, msh_cursor+copy_off, sizeof(int));
223 copy_off += sizeof(int);
224 for(int index=0;index<elementNum;index++){
225 MarshaledExN04MuonHit marEle(msh_cursor+copy_off);
226 ExN04MuonHit* anElement = (ExN04MuonHit* )marEle.unmarshal();
227 copy_off += marEle.getBufferSize();
228
229 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
230 ((G4THitsCollection<ExN04CalorimeterHit>*)param)->insert((ExN04CalorimeterHit*)anElement);
231 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
232 ((G4THitsCollection<ExN04MuonHit>*)param)->insert((ExN04MuonHit*)anElement);
233 else
234 ((G4THitsCollection<ExN04TrackerHit>*)param)->insert((ExN04TrackerHit*)anElement);
235
236 }
237 }
238 else if( true ){
239 int copy_off = 0;
240 int elementNum;
241 memcpy(&elementNum, msh_cursor+copy_off, sizeof(int));
242 copy_off += sizeof(int);
243 for(int index=0;index<elementNum;index++){
244 MarshaledExN04TrackerHit marEle(msh_cursor+copy_off);
245 ExN04TrackerHit* anElement = (ExN04TrackerHit*)marEle.unmarshal();
246 copy_off += marEle.getBufferSize();
247
248 if(dynamic_cast<G4THitsCollection<ExN04CalorimeterHit>*>(param)!=NULL)
249 ((G4THitsCollection<ExN04CalorimeterHit>*)param)->insert((ExN04CalorimeterHit*)anElement);
250 else if(dynamic_cast<G4THitsCollection<ExN04MuonHit>*>(param)!=NULL)
251 ((G4THitsCollection<ExN04MuonHit>*)param)->insert((ExN04MuonHit*)anElement);
252 else
253 ((G4THitsCollection<ExN04TrackerHit>*)param)->insert((ExN04TrackerHit*)anElement);
254
255 }
256 }
257
258 }
259 msh_cursor += msh_currentSize;
260}
261
262};
263template <class T> class MarshaledG4THitsCollection : public MarshaledObj {
264public:
265 G4THitsCollection<T>* param;
266 ShadowedMarshaledG4THitsCollection<T>* Shadowed_param;
267public:
268
269
270// Function implementations
271
272MarshaledG4THitsCollection(G4THitsCollection<T>* objptr) : MarshaledObj() {
273 msh_isUnmarshalDone = false;
274 this->param = objptr;
275 this->Shadowed_param = (ShadowedMarshaledG4THitsCollection<T>*)this->param;
276 if (objptr == NULL)
277 return;
278
279 marshal1();
280}
281
282MarshaledG4THitsCollection(void *buf, char isUnmarshaling = 'u')
283: MarshaledObj(buf, isUnmarshaling) {
284 msh_isUnmarshalDone = false;
285}
286
287~MarshaledG4THitsCollection() {
288 //if(msh_isUnmarshalDone && this->param != NULL) {
289 //delete this->param;
290 //}
291}
292
293G4THitsCollection<T>* unmarshal() {
294 //We don't want to unmarshal the buffer is empty.
295 if(msh_size <= MSH_HEADER_SIZE) {
296 //This is buggy, we can't always assume that
297 //obj == NULL <==> List is empty.
298 return NULL;
299 } else {
300 {
301 param = new G4THitsCollection<T>();
302 }
303 this->Shadowed_param = (ShadowedMarshaledG4THitsCollection<T>*)this->param;
304 this->msh_isUnmarshalDone = true;
305 unmarshal1();
306 return this->param;
307 }
308}
309
310void unmarshalTo(G4THitsCollection<T>* obj) {
311 //We don't want to unmarshal the buffer is empty.
312 if(msh_size <= MSH_HEADER_SIZE) {
313 //This is buggy, we can't always assume that
314 //obj == NULL <==> List is empty.
315 return;
316 } else {
317 this->param = obj;
318 this->Shadowed_param = (ShadowedMarshaledG4THitsCollection<T>*)this->param;
319 this->msh_isUnmarshalDone = true;
320 unmarshal1();
321 }
322}
323
324void marshal1() {
325 //declare field_size to be the size of this field
326 int msh_currentSize = 0;
327 if (isUnmarshaling())
328 throw "Tried to marshal in obj marked isUnmarshaling == true";
329
330 //Copy the sizespec into msh_currentSize here:
331 {
332 //code for size, just dummy code because the size will be set correctly at the end of marshaling code
333
334 }
335
336 //Increase the size of buffer if needed
337 EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling)
338 //Mark the beginning position for this field, will write the total size of this field here later
339 msh_field_begin = msh_cursor;
340
341 //Advance cursor of distance = sizeof(int)
342 msh_cursor += sizeof(int);
343
344 //Now just copy "get" functions here
345 {
346 MarshaledG4HitsCollection marParent(param);
347 EXTEND_BUFFER(marParent.getBufferSize());
348 memcpy(msh_cursor,marParent.getBuffer(), marParent.getBufferSize());
349 msh_currentSize = marParent.getBufferSize();
350
351 }
352 //Now advance the cursor
353 msh_cursor += msh_currentSize;
354 //Now set the size of this field
355 int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
356 tmp = (msh_cursor-msh_field_begin) - sizeof(int);
357 memcpy(msh_field_begin, &tmp, sizeof(int));
358
359 //Now set msh_size
360 msh_size = msh_cursor - msh_buffer;
361 MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice);
362}
363
364void unmarshal1() {
365 //declare currentSize to be the size of this field
366 int msh_currentSize = 0;
367 //copy the size of the current field into currentSize
368 memcpy(&msh_currentSize, msh_cursor, sizeof(int));
369 msh_cursor += sizeof(int);
370 //Now copy the setspec here
371 {
372 MarshaledG4HitsCollection marObj(msh_cursor);
373 marObj.unmarshalTo(param);
374
375 }
376 msh_cursor += msh_currentSize;
377}
378
379};
380#endif
381
Note: See TracBrowser for help on using the repository browser.