1 /*******************************************************************/
2 /*                               XDMF                              */
3 /*                   eXtensible Data Model and Format              */
4 /*                                                                 */
5 /*  Id : Id  */
6 /*  Date : $Date$ */
7 /*  Version : $Revision$ */
8 /*                                                                 */
9 /*  Author:                                                        */
10 /*     Jerry A. Clarke                                             */
11 /*     clarke@arl.army.mil                                         */
12 /*     US Army Research Laboratory                                 */
13 /*     Aberdeen Proving Ground, MD                                 */
14 /*                                                                 */
15 /*     Copyright @ 2007 US Army Research Laboratory                */
16 /*     All Rights Reserved                                         */
17 /*     See Copyright.txt or http://www.arl.hpc.mil/ice for details */
18 /*                                                                 */
19 /*     This software is distributed WITHOUT ANY WARRANTY; without  */
20 /*     even the implied warranty of MERCHANTABILITY or FITNESS     */
21 /*     FOR A PARTICULAR PURPOSE.  See the above copyright notice   */
22 /*     for more information.                                       */
23 /*                                                                 */
24 /*******************************************************************/
25 #ifndef __XdmfDsmMsg_h
26 #define __XdmfDsmMsg_h
27 
28 #include "XdmfObject.h"
29 
30 namespace xdmf2
31 {
32 
33 //! Base comm message object for Distributed Shared Memory implementation
34 /*!
35 */
36 
37 #define XDMF_DSM_DEFAULT_TAG    0x80
38 #define XDMF_DSM_COMMAND_TAG    0x81
39 #define XDMF_DSM_RESPONSE_TAG   0x82
40 
41 #define XDMF_DSM_ANY_SOURCE     -1
42 
43 class XDMF_EXPORT XdmfDsmMsg : public XdmfObject {
44 
45     public :
46         XdmfDsmMsg();
47         ~XdmfDsmMsg();
48 
49         XdmfSetValueMacro(Source, XdmfInt32);
50         XdmfGetValueMacro(Source, XdmfInt32);
51 
52         XdmfSetValueMacro(Dest, XdmfInt32);
53         XdmfGetValueMacro(Dest, XdmfInt32);
54 
55         XdmfSetValueMacro(Tag, XdmfInt32);
56         XdmfGetValueMacro(Tag, XdmfInt32);
57 
58         XdmfSetValueMacro(Length, XdmfInt64);
59         XdmfGetValueMacro(Length, XdmfInt64);
60 
61         XdmfSetValueMacro(Data, void *);
62         XdmfGetValueMacro(Data, void *);
63 
64     XdmfInt32   Source;
65     XdmfInt32   Dest;
66     XdmfInt32   Tag;
67     XdmfInt64   Length;
68     void        *Data;
69 };
70 
71 }
72 #endif // __XdmfDsmMsg_h
73