Example Data and Class Definitions
This extended example is used throughout the section to show C++ and corresponding Java class definitions and sample data for the example portfolios
region. The region’s keys are the portfolio ID.
User-defined data types must implement the Serializable
interface on the client side, while corresponding Java classes must implement the DataSerializable
interface. The C++ objects for the client must correspond to the Java objects for the GemFire cache server. This means that an object on one side should deserialize correctly at the other side.
Sample C++ class definition
class Portfolio : public Serializable {
int ID;
char * type;
char * status;
Map<Position> positions;
}
class Position : public Serializable {
char * secId;
double mktValue;
double qty;
}
Corresponding Java class definition
class Portfolio implements DataSerializable {
int ID;
String type;
String status;
Map positions;
}
class Position implements DataSerializable {
String secId;
double mktValue;
double qty;
}
The following table lists the sample data in the portfolios region.
id | type | Statusted | Position: secID | Position: mktValue | Position: qty |
111 | xyz | active | xxx | 27.34 | 1000.00 |
xxy | 26.31 | 1200.00 | |||
xxz | 24.30 | 1500.00 | |||
222 | xyz | active | yyy | 18.29 | 5000.00 |
333 | abc | active | aaa | 24.30 | 10.00 |
333 | abc | active | aab | 23.10 | 15.00 |
444 | abc | inactive | bbb | 50.41 | 100.00 |
444 | abc | inactive | bbc | 55.00 | 90.00 |
Because the client cache waits during transaction execution, and client regions are not distributed, the only activities that interact with a client transaction are those that occur on the server.