source: trunk/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h @ 1346

Last change on this file since 1346 was 807, checked in by garnier, 16 years ago

update

File size: 8.0 KB
Line 
1// This file was generated automatically by marshalgen.
2
3#ifndef MarshaledG4VHitsCollection_H
4#define MarshaledG4VHitsCollection_H
5
6
7#include <G4VHitsCollection.hh>
8
9
10#include <stdio.h>
11#include <string.h>
12#include "MarshaledObj.h"
13
14  class MarshaledG4VHitsCollection;
15
16  class ShadowedMarshaledG4VHitsCollection : public G4VHitsCollection{
17    friend class MarshaledG4VHitsCollection;
18};
19
20  class MarshaledG4VHitsCollection : public MarshaledObj {
21public:
22    G4VHitsCollection* param;
23    ShadowedMarshaledG4VHitsCollection* Shadowed_param;
24public:
25
26
27// Function implementations
28
29MarshaledG4VHitsCollection(G4VHitsCollection* objptr) : MarshaledObj() {
30    msh_isUnmarshalDone = false;
31    this->param = objptr;
32    this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param;
33    if (objptr == NULL)
34        return;
35
36    marshal1();
37    marshal2();
38    marshal3();
39}
40
41MarshaledG4VHitsCollection(void *buf, char isUnmarshaling = 'u')
42: MarshaledObj(buf, isUnmarshaling) {
43    msh_isUnmarshalDone = false;
44}
45
46~MarshaledG4VHitsCollection() {
47    //if(msh_isUnmarshalDone && this->param != NULL) {
48        //delete this->param;
49    //}
50}
51
52G4VHitsCollection* unmarshal() {
53    //We don't want to unmarshal the buffer is empty.
54    if(msh_size <= MSH_HEADER_SIZE) {
55        //This is buggy, we can't always assume that
56        //obj == NULL <==> List is empty.
57        return NULL;
58    } else {
59        {
60        param = new G4THitsCollection<ExN02TrackerHit>("","");
61        }
62        this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param;
63        this->msh_isUnmarshalDone = true;
64        unmarshal1();
65        unmarshal2();
66        unmarshal3();
67        return this->param;
68    }
69}
70
71void unmarshalTo(G4VHitsCollection* obj) {
72    //We don't want to unmarshal the buffer is empty.
73    if(msh_size <= MSH_HEADER_SIZE) {
74        //This is buggy, we can't always assume that
75        //obj == NULL <==> List is empty.
76        return;
77    } else {
78        this->param = obj;
79        this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param;
80        this->msh_isUnmarshalDone = true;
81        unmarshal1();
82        unmarshal2();
83        unmarshal3();
84    }
85}
86
87void marshal1() {
88    //declare field_size to be the size of this field
89    int msh_currentSize = 0;
90    if (isUnmarshaling())
91        throw "Tried to marshal in obj marked isUnmarshaling == true";
92
93    //Copy the sizespec into msh_currentSize here:
94    {
95        // no need to declare size since msh_currentSize is already assigned in the MARSHAL field
96
97    }
98
99    //Increase the size of buffer if needed
100    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)
101    //Mark the beginning position for this field, will write the total size of this field here later
102    msh_field_begin = msh_cursor;
103
104    //Advance cursor of distance = sizeof(int)
105    msh_cursor += sizeof(int);
106
107    //Now just copy "get" functions here
108    {
109        G4String anElement;
110         anElement = param->GetName(); 
111        MarshaledG4String var(&anElement);
112        EXTEND_BUFFER(var.getBufferSize());
113        msh_currentSize = var.getBufferSize();
114        memcpy(msh_cursor, var.getBuffer(), var.getBufferSize());
115    }
116    //Now advance the cursor
117    msh_cursor += msh_currentSize;
118    //Now set the size of this field
119    int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
120    tmp = (msh_cursor-msh_field_begin) - sizeof(int);
121    memcpy(msh_field_begin, &tmp, sizeof(int));
122
123    //Now set msh_size
124    msh_size = msh_cursor - msh_buffer;
125    MSH_SET_TOTALSIZE(msh_size);    MSH_SET_TYPECHOICE(msh_typechoice);
126}
127
128void unmarshal1() {
129    //declare currentSize to be the size of this field
130    int msh_currentSize = 0;
131    //copy the size of the current field into currentSize
132    memcpy(&msh_currentSize, msh_cursor, sizeof(int));
133    msh_cursor += sizeof(int);
134    //Now copy the setspec here
135    {
136        MarshaledG4String var(msh_cursor, 'u');
137        G4String anElement;
138        var.unmarshalTo(&anElement);
139         Shadowed_param->collectionName=anElement; 
140
141    }
142    msh_cursor += msh_currentSize;
143}
144
145void marshal2() {
146    //declare field_size to be the size of this field
147    int msh_currentSize = 0;
148    if (isUnmarshaling())
149        throw "Tried to marshal in obj marked isUnmarshaling == true";
150
151    //Copy the sizespec into msh_currentSize here:
152    {
153        // no need to declare size since msh_currentSize is already assigned in the MARSHAL field
154
155    }
156
157    //Increase the size of buffer if needed
158    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)
159    //Mark the beginning position for this field, will write the total size of this field here later
160    msh_field_begin = msh_cursor;
161
162    //Advance cursor of distance = sizeof(int)
163    msh_cursor += sizeof(int);
164
165    //Now just copy "get" functions here
166    {
167        G4String anElement;
168         anElement = param->GetSDname(); 
169        MarshaledG4String var(&anElement);
170        EXTEND_BUFFER(var.getBufferSize());
171        msh_currentSize = var.getBufferSize();
172        memcpy(msh_cursor, var.getBuffer(), var.getBufferSize());
173    }
174    //Now advance the cursor
175    msh_cursor += msh_currentSize;
176    //Now set the size of this field
177    int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
178    tmp = (msh_cursor-msh_field_begin) - sizeof(int);
179    memcpy(msh_field_begin, &tmp, sizeof(int));
180
181    //Now set msh_size
182    msh_size = msh_cursor - msh_buffer;
183    MSH_SET_TOTALSIZE(msh_size);    MSH_SET_TYPECHOICE(msh_typechoice);
184}
185
186void unmarshal2() {
187    //declare currentSize to be the size of this field
188    int msh_currentSize = 0;
189    //copy the size of the current field into currentSize
190    memcpy(&msh_currentSize, msh_cursor, sizeof(int));
191    msh_cursor += sizeof(int);
192    //Now copy the setspec here
193    {
194        MarshaledG4String var(msh_cursor, 'u');
195        G4String anElement;
196        var.unmarshalTo(&anElement);
197         Shadowed_param->SDname=anElement; 
198
199    }
200    msh_cursor += msh_currentSize;
201}
202
203void marshal3() {
204    //declare field_size to be the size of this field
205    int msh_currentSize = 0;
206    if (isUnmarshaling())
207        throw "Tried to marshal in obj marked isUnmarshaling == true";
208
209    //Copy the sizespec into msh_currentSize here:
210    {
211                //code for size, just dummy code because the size will be set correctly at the end of marshaling code
212
213    }
214
215    //Increase the size of buffer if needed
216    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)
217    //Mark the beginning position for this field, will write the total size of this field here later
218    msh_field_begin = msh_cursor;
219
220    //Advance cursor of distance = sizeof(int)
221    msh_cursor += sizeof(int);
222
223    //Now just copy "get" functions here
224    {
225                G4THitsCollection<ExN02TrackerHit> *aObj630 = (G4THitsCollection<ExN02TrackerHit>*)param;
226                MarshaledG4THitsCollection<ExN02TrackerHit> marChild(aObj630);
227                EXTEND_BUFFER(marChild.getBufferSize());
228                memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize());
229                msh_currentSize = marChild.getBufferSize();
230                msh_typechoice = 0;
231
232    }
233    //Now advance the cursor
234    msh_cursor += msh_currentSize;
235    //Now set the size of this field
236    int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
237    tmp = (msh_cursor-msh_field_begin) - sizeof(int);
238    memcpy(msh_field_begin, &tmp, sizeof(int));
239
240    //Now set msh_size
241    msh_size = msh_cursor - msh_buffer;
242    MSH_SET_TOTALSIZE(msh_size);    MSH_SET_TYPECHOICE(msh_typechoice);
243}
244
245void unmarshal3() {
246    //declare currentSize to be the size of this field
247    int msh_currentSize = 0;
248    //copy the size of the current field into currentSize
249    memcpy(&msh_currentSize, msh_cursor, sizeof(int));
250    msh_cursor += sizeof(int);
251    //Now copy the setspec here
252    {
253                MarshaledG4THitsCollection<ExN02TrackerHit> marObj(msh_cursor);
254                marObj.unmarshalTo((G4THitsCollection<ExN02TrackerHit>*)param);
255
256    }
257    msh_cursor += msh_currentSize;
258}
259
260};
261#endif
262
Note: See TracBrowser for help on using the repository browser.