This source file includes following definitions.
- newData
- getValue
- getIndex
- putValue
- putIndex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package mpi;
22
23
24
25
26 public final class ShortInt extends Struct
27 {
28 private final int sSize, iOff, iSize;
29
30
31
32
33
34
35
36
37 protected ShortInt(int shortSize, int intOff, int intSize)
38 {
39 sSize = shortSize;
40 iSize = intSize;
41 int sOff;
42
43 switch(sSize)
44 {
45 case 2: sOff = addShort(); break;
46 case 4: sOff = addInt(); break;
47 case 8: sOff = addLong(); break;
48 default: throw new AssertionError("Unsupported short size: "+ sSize);
49 }
50
51 assert sOff == 0;
52 setOffset(intOff);
53
54 switch(iSize)
55 {
56 case 4: iOff = addInt(); break;
57 case 8: iOff = addLong(); break;
58 default: throw new AssertionError("Unsupported int size: "+ iSize);
59 }
60
61 assert(intOff == iOff);
62 }
63
64
65
66
67
68 @Override protected Data newData()
69 {
70 return new Data();
71 }
72
73
74
75
76 public final class Data extends Struct.Data
77 {
78
79
80
81
82 public short getValue()
83 {
84 switch(sSize)
85 {
86 case 2: return getShort(0);
87 case 4: return (short)getInt(0);
88 case 8: return (short)getLong(0);
89 default: throw new AssertionError();
90 }
91 }
92
93
94
95
96
97 public int getIndex()
98 {
99 switch(iSize)
100 {
101 case 4: return getInt(iOff);
102 case 8: return (int)getLong(iOff);
103 default: throw new AssertionError();
104 }
105 }
106
107
108
109
110
111 public void putValue(short v)
112 {
113 switch(sSize)
114 {
115 case 2: putShort(0, v); break;
116 case 4: putInt(0, v); break;
117 case 8: putLong(0, v); break;
118 default: throw new AssertionError();
119 }
120 }
121
122
123
124
125
126 public void putIndex(int v)
127 {
128 switch(iSize)
129 {
130 case 4: putInt(iOff, v); break;
131 case 8: putLong(iOff, v); break;
132 default: throw new AssertionError();
133 }
134 }
135 }
136
137 }