ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MarshaledExN04MuonHit.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MarshaledExN04MuonHit.h
1 // This file was generated automatically by marshalgen.
2 
3 #ifndef MarshaledExN04MuonHit_H
4 #define MarshaledExN04MuonHit_H
5 
6 
7 #include <ExN04MuonHit.hh>
8 //MSH_include_begin
9 #include "MarshaledG4String.h"
10 //MSH_include_end
11 
12 #include <stdio.h>
13 #include <string.h>
14 #include "MarshaledObj.h"
15 
17 
19  friend class MarshaledExN04MuonHit;
20 };
21 
23 public:
26 public:
27 
28 
29 // Function implementations
30 
32  msh_isUnmarshalDone = false;
33  this->param = objptr;
35  if (objptr == NULL)
36  return;
37 
38  marshal1();
39  marshal2();
40 }
41 
42 MarshaledExN04MuonHit(void *buf, char chIsUnmarshaling = 'u')
43 : MarshaledObj(buf, chIsUnmarshaling) {
44  msh_isUnmarshalDone = false;
45 }
46 
48  //if(msh_isUnmarshalDone && this->param != NULL) {
49  //delete this->param;
50  //}
51 }
52 
54  //We don't want to unmarshal the buffer is empty.
55  if(msh_size <= MSH_HEADER_SIZE) {
56  //This is buggy, we can't always assume that
57  //obj == NULL <==> List is empty.
58  return NULL;
59  } else {
60  {
61  param = new ExN04MuonHit();
62  }
64  this->msh_isUnmarshalDone = true;
65  unmarshal1();
66  unmarshal2();
67  return this->param;
68  }
69 }
70 
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;
80  this->msh_isUnmarshalDone = true;
81  unmarshal1();
82  unmarshal2();
83  }
84 }
85 
86 void marshal1() {
87  //declare field_size to be the size of this field
88  int msh_currentSize = 0;
89  if (isUnmarshaling())
90  throw "Tried to marshal in obj marked isUnmarshaling == true";
91 
92  //Copy the sizespec into msh_currentSize here:
93  {
94  msh_currentSize = sizeof(G4double);
95 
96  }
97 
98  //Increase the size of buffer if needed
99  EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int));
100  // 4 bytes for the total size of field, 4 bytes for the number of
101  // elements in the array (in the case of array marshaling)
102  //Mark the beginning position for this field, will write the total size
103  //of this field here later
105 
106  //Advance cursor of distance = sizeof(int)
107  msh_cursor += sizeof(int);
108 
109  //Now just copy "get" functions here
110  {
111  G4double anElement;
112  anElement = param->GetEdep();
113  memcpy(msh_cursor, &anElement, sizeof(G4double));
114  }
115  //Now advance the cursor
116  msh_cursor += msh_currentSize;
117  //Now set the size of this field
118  int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
119  tmp = (msh_cursor-msh_field_begin) - sizeof(int);
120  memcpy(msh_field_begin, &tmp, sizeof(int));
121 
122  //Now set msh_size
125 }
126 
127 void unmarshal1() {
128  //declare currentSize to be the size of this field
129  int msh_currentSize = 0;
130  //copy the size of the current field into currentSize
131  memcpy(&msh_currentSize, msh_cursor, sizeof(int));
132  msh_cursor += sizeof(int);
133  //Now copy the setspec here
134  {
135  G4double anElement;
136  memcpy(&anElement, msh_cursor, sizeof(G4double));
137  param->SetEdep(anElement);
138 
139  }
140  msh_cursor += msh_currentSize;
141 }
142 
143 void marshal2() {
144  //declare field_size to be the size of this field
145  int msh_currentSize = 0;
146  if (isUnmarshaling())
147  throw "Tried to marshal in obj marked isUnmarshaling == true";
148 
149  //Copy the sizespec into msh_currentSize here:
150  {
151  msh_currentSize = sizeof(G4ThreeVector);
152 
153  }
154 
155  //Increase the size of buffer if needed
156  EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int));
157  // 4 bytes for the total size of field, 4 bytes for the number of
158  // elements in the array (in the case of array marshaling)
159  //Mark the beginning position for this field, will write the total size
160  //of this field here later
162 
163  //Advance cursor of distance = sizeof(int)
164  msh_cursor += sizeof(int);
165 
166  //Now just copy "get" functions here
167  {
168  G4ThreeVector anElement;
169  anElement = param->GetPos();
170  memcpy(msh_cursor, &anElement, sizeof(G4ThreeVector));
171  }
172  //Now advance the cursor
173  msh_cursor += msh_currentSize;
174  //Now set the size of this field
175  int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
176  tmp = (msh_cursor-msh_field_begin) - sizeof(int);
177  memcpy(msh_field_begin, &tmp, sizeof(int));
178 
179  //Now set msh_size
182 }
183 
184 void unmarshal2() {
185  //declare currentSize to be the size of this field
186  int msh_currentSize = 0;
187  //copy the size of the current field into currentSize
188  memcpy(&msh_currentSize, msh_cursor, sizeof(int));
189  msh_cursor += sizeof(int);
190  //Now copy the setspec here
191  {
192  G4ThreeVector anElement;
193  memcpy(&anElement, msh_cursor, sizeof(G4ThreeVector));
194  param->SetPos(anElement);
195 
196  }
197  msh_cursor += msh_currentSize;
198 }
199 
200 };
201 #endif
202