1 #ifndef _CENTRALLBMSG_H_
2 #define _CENTRALLBMSG_H_
6 // this actually is not a real Charm++ message and CLBStatsMsg is just
7 // a regular class with pup defined.
8 class CkMarshalledCLBStatsMessage
{
9 CkVec
<CLBStatsMsg
*> msgs
;
10 //Don't use these: only pass by reference
11 void operator=(const CkMarshalledCLBStatsMessage
&);
13 CkMarshalledCLBStatsMessage(void) {}
14 CkMarshalledCLBStatsMessage(CLBStatsMsg
*m
) { add(m
); } //Takes ownership of message
15 CkMarshalledCLBStatsMessage(const CkMarshalledCLBStatsMessage
&);
16 ~CkMarshalledCLBStatsMessage() { free(); }
17 void add(CLBStatsMsg
*m
) { if (m
!=NULL
) msgs
.push_back(m
); }
18 void add(CkMarshalledCLBStatsMessage
&msg
); // add multiple messages
19 CLBStatsMsg
*getMessage(int c
=0) {CLBStatsMsg
*ret
=msgs
[c
]; msgs
[c
]=NULL
; return ret
;}
20 int getCount() { return msgs
.size(); }
24 PUPmarshall(CkMarshalledCLBStatsMessage
)