MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
notifyRegMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2001 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: notifyRegMsg.h,v $ $Revision: 1.17 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef notifyRegMsg_H_
10 #define notifyRegMsg_H_
11 #ifdef DDM
12 
15 
16 #include "rtiMsg.h"
17 #include "netNotRegMsg.h"
18 
19 class DtConnectionMgr;
20 class DtNotifyRegMsg;
21 class DtRegionExtent;
22 class DtNetExtent;
23 class DtDistributedRegion;
24 
25 typedef void (*DtNotifyRegCb)(const DtNotifyRegMsg& msg, void* usr);
26 
31 class DT_DLL_LRC DtNotifyRegMsg : public DtRtiMsg
32 {
33 public:
34 
36  DtNotifyRegMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
37 
39  DtNotifyRegMsg(const DtDistributedRegion &region,
40  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
41 
43  DtNotifyRegMsg(const DtNetNotifyRegMsg* netRepMsg,
44  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
45 
47  virtual ~DtNotifyRegMsg();
48 
50  virtual DtRtiMsg* clone(bool copy = true) const;
51 
53  virtual void set(const DtDistributedRegion &region);
54 
56  virtual void setRegionHandle(DtRegionHandle handleValue);
57  virtual DtRegionHandle regionHandle() const;
58 
60  virtual void setSpaceHandle(DtSpaceHandle handleValue);
61  virtual DtSpaceHandle spaceHandle() const;
62 
64  virtual void setNumberExtents(unsigned long count);
65  virtual unsigned long numberExtents() const;
66 
68  virtual void setNumberDimensions(unsigned long count);
69  virtual unsigned long numberDimensions() const;
70 
72  virtual void setExtents(const DtRegionExtent* extentList,
73  unsigned long numExtents);
74  virtual const DtRegionExtent* extents() const;
75 
77  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
78 
79 public:
80 
82  static DtRtiMsg* create(const DtNetMsgHeader* initial,
83  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
84 
86  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
87 
89  static void addCallback(DtConnectionMgr *conn,
90  DtNotifyRegCb cb, void *usr);
91  static void removeCallback(DtConnectionMgr *conn,
92  DtNotifyRegCb cb, void *usr);
93 
94 protected:
95 
97  virtual DtNetExtent* netExtents();
98 
100  virtual void fillFromNetRep(
101  DtNetExtent* netRepExtent,
102  DtRegionExtent* extents,
103  unsigned long numExtents) const;
104 
106  virtual void fillNetRep(
107  const DtRegionExtent* extents,
108  DtNetExtent* netRepExtent,
109  unsigned long numExtents);
110 
112  virtual DtNetNotifyRegMsg* netNotifyRegMsg();
113  virtual const DtNetNotifyRegMsg* netNotifyRegMsg() const;
114 
117 
119  virtual int minSize(DtRegionExtent const* extentList=NULL,
120  int numExtents=0) const;
121 
123  virtual DtNotifyRegMsg* self() const;
124 
125 protected:
126 
128  unsigned long myExtentCount;
129 
131  DtRegionExtent* myExtents;
132 
134  unsigned long myExtentSlotCount;
135 
137  bool myDirty;
138 };
139 
140 
141 inline DtNotifyRegMsg* DtNotifyRegMsg::self() const
142 {
143  return const_cast<DtNotifyRegMsg*>( this );
144 }
145 
146 #endif
147 #endif
148 
DtRtiMsgKind
Definition: rtiMsgKind.h:9
Definition: netRtiMsgHdr.h:23
Definition: fedTimeFactory.h:73
virtual void printData(DtLogicalTimeFactory *logicalTimeFactory) const
DtHandle DtRegionHandle
Definition: internalTypes.h:65
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:67
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
Definition: netNotRegMsg.h:31
virtual DtRtiMsg * clone(bool copy=true) const =0
Return a copy/empty object of the same type as this.
virtual DtRtiMsgKind internalDtRtiMsgKind()=0
Definition: netNotRegMsg.h:19
long DtSpaceHandle
Definition: internalTypes.h:42
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)