Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
ParN04/AnnotatedFiles/MarshaledG4HCofThisEvent.h
이 파일의 문서화 페이지로 가기
1 //
4 // This file was generated automatically by marshalgen.
5 
6 #ifndef MarshaledG4HCofThisEvent_H
7 #define MarshaledG4HCofThisEvent_H
8 
9 
10 #include <G4HCofThisEvent.hh>
11 //MSH_include_begin
12 #include "G4SDManager.hh"
13 #include "G4THitsCollection.hh"
14 #include "ExN04TrackerHit.hh"
18 //MSH_include_end
19 
20 #include <stdio.h>
21 #include <string.h>
22 #include "MarshaledObj.h"
23 
25 
27  friend class MarshaledG4HCofThisEvent;
28 };
29 
30  class MarshaledG4HCofThisEvent : public MarshaledObj {
31 public:
34 public:
35 
36 
37 // Function implementations
38 
40  msh_isUnmarshalDone = false;
41  this->param = objptr;
43  if (objptr == NULL)
44  return;
45 
46  marshal1();
47 }
48 
51  msh_isUnmarshalDone = false;
52 }
53 
55  //if(msh_isUnmarshalDone && this->param != NULL) {
56  //delete this->param;
57  //}
58 }
59 
61  //We don't want to unmarshal the buffer is empty.
62  if(msh_size <= MSH_HEADER_SIZE) {
63  //This is buggy, we can't always assume that
64  //obj == NULL <==> List is empty.
65  return NULL;
66  } else {
67  {
68  param = new G4HCofThisEvent();
69  }
71  this->msh_isUnmarshalDone = true;
72  unmarshal1();
73  return this->param;
74  }
75 }
76 
78  //We don't want to unmarshal the buffer is empty.
79  if(msh_size <= MSH_HEADER_SIZE) {
80  //This is buggy, we can't always assume that
81  //obj == NULL <==> List is empty.
82  return;
83  } else {
84  this->param = obj;
86  this->msh_isUnmarshalDone = true;
87  unmarshal1();
88  }
89 }
90 
91 void marshal1() {
92  //declare field_size to be the size of this field
93  int msh_currentSize = 0;
94  if (isUnmarshaling())
95  throw "Tried to marshal in obj marked isUnmarshaling == true";
96 
97  //Copy the sizespec into msh_currentSize here:
98  {
99 
100  }
101 
102  //Increase the size of buffer if needed
103  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)
104  //Mark the beginning position for this field, will write the total size of this field here later
106 
107  //Advance cursor of distance = sizeof(int)
108  msh_cursor += sizeof(int);
109 
110  //Now just copy "get" functions here
111  {
112  int copy_off = 0;
113  int elementNum;
114  elementNum = param->GetNumberOfCollections();
115  memcpy( msh_cursor+copy_off, &elementNum,sizeof(int));
116  copy_off += sizeof(int);
117  for(int index=0;index<elementNum;index++){
118  G4VHitsCollection* anElement;
119  anElement = param->GetHC(index);
120  MarshaledG4VHitsCollection marEle(anElement);
121  EXTEND_BUFFER(marEle.getBufferSize());
122  memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize());
123  copy_off += marEle.getBufferSize();
124  }
125  msh_currentSize = copy_off;
126 
127  }
128  //Now advance the cursor
129  msh_cursor += msh_currentSize;
130  //Now set the size of this field
131  int tmp; //use memcpy instead of *(int*)... =... to prevent bus error
132  tmp = (msh_cursor-msh_field_begin) - sizeof(int);
133  memcpy(msh_field_begin, &tmp, sizeof(int));
134 
135  //Now set msh_size
138 }
139 
140 void unmarshal1() {
141  //declare currentSize to be the size of this field
142  int msh_currentSize = 0;
143  //copy the size of the current field into currentSize
144  memcpy(&msh_currentSize, msh_cursor, sizeof(int));
145  msh_cursor += sizeof(int);
146  //Now copy the setspec here
147  {
148  int copy_off = 0;
149  int elementNum;
150  memcpy(&elementNum, msh_cursor+copy_off, sizeof(int));
151  copy_off += sizeof(int);
152  for(int index=0;index<elementNum;index++){
153  MarshaledG4VHitsCollection marEle(msh_cursor+copy_off);
154  G4VHitsCollection* anElement = (G4VHitsCollection*)marEle.unmarshal();
155  copy_off += marEle.getBufferSize();
156  param->AddHitsCollection(index, anElement);
157  }
158 
159  }
160  msh_cursor += msh_currentSize;
161 }
162 
163 };
164 #endif
165 
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
Float_t tmp
#define MSH_SET_TOTALSIZE(X)
#define MSH_SET_TYPECHOICE(X)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
MarshaledG4HCofThisEvent(void *buf, char isUnmarshaling= 'u')
#define MSH_HEADER_SIZE
ShadowedMarshaledG4HCofThisEvent * Shadowed_param
void EXTEND_BUFFER(int size)