blob: 5982b5538e607d9cf5779deaf3e60972fece43a5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Collections;
using PdxTests;
using System.Reflection;
namespace Apache.Geode.Client.UnitTests
{
using NUnit.Framework;
using DUnitFramework;
using Client;
using Region = IRegion<object, object>;
[TestFixture]
[Category("group4")]
[Category("unicast_only")]
[Category("generics")]
internal class ThinClientPdxTests1 : ThinClientRegionSteps
{
#region Private members
private UnitProcess m_client1, m_client2;
#endregion
protected override ClientBase[] GetClients()
{
m_client1 = new UnitProcess();
m_client2 = new UnitProcess();
return new ClientBase[] {m_client1, m_client2};
}
[TestFixtureTearDown]
public override void EndTests()
{
CacheHelper.StopJavaServers();
base.EndTests();
}
[TearDown]
public override void EndTest()
{
try
{
m_client1.Call(DestroyRegions);
m_client2.Call(DestroyRegions);
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
finally
{
CacheHelper.StopJavaServers();
CacheHelper.StopJavaLocators();
}
base.EndTest();
}
private void cleanup()
{
{
CacheHelper.SetExtraPropertiesFile(null);
if (m_clients != null)
{
foreach (var client in m_clients)
{
try
{
client.Call(CacheHelper.Close);
}
catch (System.Runtime.Remoting.RemotingException)
{
}
catch (System.Net.Sockets.SocketException)
{
}
}
}
CacheHelper.Close();
}
}
private void PutAndVerifyPdxInGet()
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxType.CreateDeserializable);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
region0[1] = new PdxType();
var pRet = (PdxType) region0[1];
checkPdxInstanceToStringAtServer(region0);
Assert.AreEqual(CacheHelper.DCache.GetPdxReadSerialized(), false,
"Pdx read serialized property should be false.");
}
private void VerifyGetOnly()
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxType.CreateDeserializable);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var pRet = (PdxType) region0[1];
checkPdxInstanceToStringAtServer(region0);
}
private void PutAndVerifyVariousPdxTypes()
{
var typeRegistry = CacheHelper.DCache.TypeRegistry;
typeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes9.CreateDeserializable);
typeRegistry.RegisterPdxType(PortfolioPdx.CreateDeserializable);
typeRegistry.RegisterPdxType(PositionPdx.CreateDeserializable);
typeRegistry.RegisterPdxType(AllPdxTypes.Create);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
{
var p1 = new PdxTypes1();
region0[11] = p1;
var pRet = (PdxTypes1) region0[11];
Assert.AreEqual(p1, pRet);
checkPdxInstanceToStringAtServer(region0);
}
{
var p2 = new PdxTypes2();
region0[12] = p2;
var pRet2 = (PdxTypes2) region0[12];
Assert.AreEqual(p2, pRet2);
checkPdxInstanceToStringAtServer(region0);
}
{
var p3 = new PdxTypes3();
region0[13] = p3;
var pRet3 = (PdxTypes3) region0[13];
Assert.AreEqual(p3, pRet3);
checkPdxInstanceToStringAtServer(region0);
}
{
var p4 = new PdxTypes4();
region0[14] = p4;
var pRet4 = (PdxTypes4) region0[14];
Assert.AreEqual(p4, pRet4);
checkPdxInstanceToStringAtServer(region0);
}
{
var p5 = new PdxTypes5();
region0[15] = p5;
var pRet5 = (PdxTypes5) region0[15];
Assert.AreEqual(p5, pRet5);
checkPdxInstanceToStringAtServer(region0);
}
{
var p6 = new PdxTypes6();
region0[16] = p6;
var pRet6 = (PdxTypes6) region0[16];
Assert.AreEqual(p6, pRet6);
checkPdxInstanceToStringAtServer(region0);
}
{
var p7 = new PdxTypes7();
region0[17] = p7;
var pRet7 = (PdxTypes7) region0[17];
Assert.AreEqual(p7, pRet7);
checkPdxInstanceToStringAtServer(region0);
}
{
var p8 = new PdxTypes8();
region0[18] = p8;
var pRet8 = (PdxTypes8) region0[18];
Assert.AreEqual(p8, pRet8);
checkPdxInstanceToStringAtServer(region0);
}
{
var p9 = new PdxTypes9();
region0[19] = p9;
var pRet9 = (PdxTypes9) region0[19];
Assert.AreEqual(p9, pRet9);
checkPdxInstanceToStringAtServer(region0);
}
{
var pf = new PortfolioPdx(1001, 10);
region0[20] = pf;
var retpf = (PortfolioPdx) region0[20];
checkPdxInstanceToStringAtServer(region0);
//Assert.AreEqual(p9, pRet9);
}
{
var pf = new PortfolioPdx(1001, 10, new string[] {"one", "two", "three"});
region0[21] = pf;
var retpf = (PortfolioPdx) region0[21];
checkPdxInstanceToStringAtServer(region0);
//Assert.AreEqual(p9, pRet9);
}
{
var p10 = new PdxTypes10();
region0[22] = p10;
var pRet10 = (PdxTypes10) region0[22];
Assert.AreEqual(p10, pRet10);
checkPdxInstanceToStringAtServer(region0);
}
{
var apt = new AllPdxTypes(true);
region0[23] = apt;
var aptRet = (AllPdxTypes) region0[23];
Assert.AreEqual(apt, aptRet);
checkPdxInstanceToStringAtServer(region0);
}
}
private void VerifyVariousPdxGets()
{
var typeRegistry = CacheHelper.DCache.TypeRegistry;
typeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
typeRegistry.RegisterPdxType(PdxTypes9.CreateDeserializable);
typeRegistry.RegisterPdxType(PortfolioPdx.CreateDeserializable);
typeRegistry.RegisterPdxType(PositionPdx.CreateDeserializable);
typeRegistry.RegisterPdxType(AllPdxTypes.Create);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
{
var p1 = new PdxTypes1();
var pRet = (PdxTypes1) region0[11];
Assert.AreEqual(p1, pRet);
checkPdxInstanceToStringAtServer(region0);
}
{
var p2 = new PdxTypes2();
var pRet2 = (PdxTypes2) region0[12];
Assert.AreEqual(p2, pRet2);
checkPdxInstanceToStringAtServer(region0);
}
{
var p3 = new PdxTypes3();
var pRet3 = (PdxTypes3) region0[13];
Assert.AreEqual(p3, pRet3);
checkPdxInstanceToStringAtServer(region0);
}
{
var p4 = new PdxTypes4();
var pRet4 = (PdxTypes4) region0[14];
Assert.AreEqual(p4, pRet4);
checkPdxInstanceToStringAtServer(region0);
}
{
var p5 = new PdxTypes5();
var pRet5 = (PdxTypes5) region0[15];
Assert.AreEqual(p5, pRet5);
checkPdxInstanceToStringAtServer(region0);
}
{
var p6 = new PdxTypes6();
var pRet6 = (PdxTypes6) region0[16];
Assert.AreEqual(p6, pRet6);
checkPdxInstanceToStringAtServer(region0);
}
{
var p7 = new PdxTypes7();
var pRet7 = (PdxTypes7) region0[17];
Assert.AreEqual(p7, pRet7);
checkPdxInstanceToStringAtServer(region0);
}
{
var p8 = new PdxTypes8();
var pRet8 = (PdxTypes8) region0[18];
Assert.AreEqual(p8, pRet8);
checkPdxInstanceToStringAtServer(region0);
}
{
var p9 = new PdxTypes9();
var pRet9 = (PdxTypes9) region0[19];
Assert.AreEqual(p9, pRet9);
checkPdxInstanceToStringAtServer(region0);
}
{
var retpf = (PortfolioPdx) region0[20];
checkPdxInstanceToStringAtServer(region0);
}
{
var retpf = (PortfolioPdx) region0[21];
checkPdxInstanceToStringAtServer(region0);
}
{
var p10 = new PdxTypes10();
var pRet10 = (PdxTypes10) region0[22];
Assert.AreEqual(p10, pRet10);
checkPdxInstanceToStringAtServer(region0);
}
{
var apt = new AllPdxTypes(true);
var aptRet = (AllPdxTypes) region0[23];
Assert.AreEqual(apt, aptRet);
checkPdxInstanceToStringAtServer(region0);
}
}
private void checkPdxInstanceToStringAtServer(Region region)
{
var retVal = (bool) region["success"];
Assert.IsTrue(retVal);
}
private void runPdxDistOps()
{
CacheHelper.SetupJavaServers(true, "cacheserverPdx.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepOne (pool locators) complete.");
m_client2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepTwo (pool locators) complete.");
m_client1.Call(PutAndVerifyPdxInGet);
Util.Log("StepThree complete.");
m_client2.Call(VerifyGetOnly);
Util.Log("StepFour complete.");
m_client1.Call(PutAndVerifyVariousPdxTypes);
Util.Log("StepFive complete.");
m_client2.Call(VerifyVariousPdxGets);
Util.Log("StepSeven complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
m_client2.Call(Close);
//Util.Log("Client 2 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
private void VerifyDataOutputAdvance()
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(MyClass.Create);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(MyClasses.Create);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var mcs = new MyClasses("1", 1000);
region0[1] = mcs;
var ret = region0[1];
Assert.AreEqual(mcs, ret);
}
private void runPdxDistOps2()
{
CacheHelper.SetupJavaServers(true, "cacheserverPdxSerializer.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepOne (pool locators) complete.");
m_client2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepTwo (pool locators) complete.");
m_client1.Call(VerifyDataOutputAdvance);
Util.Log("StepThree complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
m_client2.Call(Close);
//Util.Log("Client 2 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
private void PutAndVerifyNestedPdxInGet()
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(NestedPdx.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var np = new NestedPdx();
region0[1] = np;
var pRet = (NestedPdx) region0[1];
Assert.AreEqual(np, pRet);
}
private void VerifyNestedGetOnly()
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(NestedPdx.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var orig = new NestedPdx();
var pRet = (NestedPdx) region0[1];
Assert.AreEqual(orig, pRet);
}
private void runNestedPdxOps()
{
CacheHelper.SetupJavaServers(true, "cacheserver.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepOne (pool locators) complete.");
m_client2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepTwo (pool locators) complete.");
m_client1.Call(PutAndVerifyNestedPdxInGet);
Util.Log("StepThree complete.");
m_client2.Call(VerifyNestedGetOnly);
Util.Log("StepFour complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
m_client2.Call(Close);
//Util.Log("Client 2 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
private void PutAndVerifyPdxInIGFSInGet()
{
try
{
CacheHelper.DCache.TypeRegistry.RegisterType(PdxInsideIGeodeSerializable.CreateDeserializable, 5005);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(NestedPdx.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
}
catch (Exception)
{
}
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var np = new PdxInsideIGeodeSerializable();
region0[1] = np;
var pRet = (PdxInsideIGeodeSerializable) region0[1];
Assert.AreEqual(np, pRet);
}
private void VerifyPdxInIGFSGetOnly()
{
try
{
CacheHelper.DCache.TypeRegistry.RegisterType(PdxInsideIGeodeSerializable.CreateDeserializable, 5005);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(NestedPdx.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
}
catch (Exception)
{
}
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var orig = new PdxInsideIGeodeSerializable();
var pRet = (PdxInsideIGeodeSerializable) region0[1];
Assert.AreEqual(orig, pRet);
}
private void runPdxInIGFSOps()
{
CacheHelper.SetupJavaServers(true, "cacheserver.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepOne (pool locators) complete.");
m_client2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepTwo (pool locators) complete.");
m_client1.Call(PutAndVerifyPdxInIGFSInGet);
Util.Log("StepThree complete.");
m_client2.Call(VerifyPdxInIGFSGetOnly);
Util.Log("StepFour complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
m_client2.Call(Close);
//Util.Log("Client 2 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
private void JavaPutGet_LinedListType()
{
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
//Do some put to invike attached listener,
region0[1] = 123;
//Get
var value = (int) region0[1];
//Util.Log("JavaPutGet_LinedListType value received = " + value);
//verify that listener methods have been called.
Assert.IsTrue((bool) region0["success"]);
//LinkedList validation
var myList1 = new LinkedList<object>();
myList1.AddFirst("Manan");
myList1.AddLast("Nishka");
//get the JSON document (as PdxInstance) that has been put from java in attached cacheListener code.
var ret = (IPdxInstance) region0["jsondoc1"];
var linkedList = (LinkedList<object>) ret.GetField("kids");
//verify sizes
Assert.AreEqual((linkedList.Count == myList1.Count), true, " LinkedList size should be equal.");
var e1 = linkedList.GetEnumerator();
var e2 = myList1.GetEnumerator();
//verify content of LinkedList
while (e1.MoveNext() && e2.MoveNext())
{
//Util.Log("JavaPutGet_LinedListType Kids = " + e1.Current);
PdxType.GenericValCompare(e1.Current, e2.Current);
}
Util.Log("successfully completed JavaPutGet_LinedListType");
}
private void JavaPutGet()
{
try
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxType.CreateDeserializable);
}
catch (Exception)
{
}
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var np = new PdxType();
region0[1] = np;
var pRet = (PdxType) region0[1];
//Assert.AreEqual(np, pRet);
Assert.IsTrue((bool) region0["success"]);
}
private void JavaGet()
{
try
{
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxType.CreateDeserializable);
}
catch (Exception)
{
}
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
var np = new PdxType();
var pRet = (PdxType) region0[1];
var putFromjava = (PdxType) region0["putFromjava"];
}
private void runJavaInterOpsWithLinkedListType()
{
CacheHelper.SetupJavaServers(true, "cacheserverForPdx.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool_PDXWithLL, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("Clinet-1 CreateTCRegions_Pool_PDXWithLL (pool with locator) completed.");
m_client1.Call(JavaPutGet_LinedListType);
Util.Log("JavaPutGet_LinedListType complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
private void runJavaInteroperableOps()
{
CacheHelper.SetupJavaServers(true, "cacheserverForPdx.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepOne (pool locators) complete.");
m_client2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepTwo (pool locators) complete.");
m_client1.Call(JavaPutGet);
Util.Log("StepThree complete.");
m_client2.Call(JavaGet);
Util.Log("StepFour complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
m_client2.Call(Close);
//Util.Log("Client 2 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
private void putallAndGetallPdx()
{
try
{
CacheHelper.DCache.TypeRegistry.RegisterType(PdxInsideIGeodeSerializable.CreateDeserializable, 5005);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(NestedPdx.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes1.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes2.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes3.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes4.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes5.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes6.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes7.CreateDeserializable);
CacheHelper.DCache.TypeRegistry.RegisterPdxType(PdxTypes8.CreateDeserializable);
}
catch (Exception)
{
}
var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
IDictionary<object, object> all = new Dictionary<object, object>();
var p1 = new PdxTypes1();
var p2 = new PdxTypes2();
var p3 = new PdxTypes3();
var p4 = new PdxTypes4();
var p5 = new PdxTypes5();
var p6 = new PdxTypes6();
var p7 = new PdxTypes7();
var p8 = new PdxTypes8();
all.Add(21, p1);
all.Add(22, p2);
all.Add(23, p3);
all.Add(24, p4);
all.Add(25, p5);
all.Add(26, p6);
all.Add(27, p7);
all.Add(28, p8);
region0.PutAll(all);
ICollection<object> keys = new List<object>();
IDictionary<object, object> getall = new Dictionary<object, object>();
keys.Add(21);
keys.Add(22);
keys.Add(23);
keys.Add(24);
keys.Add(25);
keys.Add(26);
keys.Add(27);
keys.Add(28);
//keys.Add(p1);
//keys.Add(p2);
region0.GetAll(keys, getall, null);
foreach (var kv in all)
{
var key = kv.Key;
Util.Log("putall keys " + key.GetType() + " : " + key);
}
//IEnumerator<KeyValuePair<object, object>> ie = getall.GetEnumerator();
foreach (var kv in getall)
{
var key = kv.Key;
if (key != null)
Util.Log("got key " + key.GetType() + " : " + key);
else
Util.Log("got NULL key ");
var origVal = all[key];
Assert.AreEqual(kv.Value, origVal);
}
}
private void runPutAllGetAllOps()
{
CacheHelper.SetupJavaServers(true, "cacheserver.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
m_client1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepOne (pool locators) complete.");
m_client2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false, false, false /*local caching false*/);
Util.Log("StepTwo (pool locators) complete.");
m_client1.Call(putallAndGetallPdx);
Util.Log("StepThree complete.");
m_client2.Call(putallAndGetallPdx);
Util.Log("StepFour complete.");
m_client1.Call(Close);
Util.Log("Client 1 closed");
m_client2.Call(Close);
//Util.Log("Client 2 closed");
CacheHelper.StopJavaServer(1);
Util.Log("Cacheserver 1 stopped.");
CacheHelper.StopJavaLocator(1);
Util.Log("Locator 1 stopped.");
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
#region Tests
[Test]
public void DistOps()
{
runPdxDistOps();
}
[Test]
public void DistOps2()
{
runPdxDistOps2();
}
[Test]
public void NestedPdxOps()
{
runNestedPdxOps();
}
[Test]
public void PdxInIGFSOps()
{
runPdxInIGFSOps();
}
[Test]
public void JavaInteroperableOps()
{
runJavaInteroperableOps();
}
[Test]
public void JavaInterOpsWithLinkedListType()
{
runJavaInterOpsWithLinkedListType();
}
[Test]
public void PutAllGetAllOps()
{
runPutAllGetAllOps();
}
#endregion
}
#region IpDxSerializer stuff
public class SerializePdx : IPdxSerializable
{
[PdxIdentityField] public int i1;
public int i2;
public string s1;
public string s2;
/*public static SerializePdx1 CreateDeserializable()
{
return new SerializePdx1(false);
}*/
//public SerializePdx()
//{
//}
public static SerializePdx Create()
{
return new SerializePdx(false);
}
public SerializePdx(bool init)
{
if (init)
{
i1 = 1;
i2 = 2;
s1 = "s1";
s2 = "s2";
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj == this)
return true;
var other = obj as SerializePdx;
if (obj == null)
return false;
if (i1 == other.i1
&& i2 == other.i2
&& s1 == other.s1
&& s2 == other.s2)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
i1 = reader.ReadInt("i1");
i2 = reader.ReadInt("i2");
s1 = reader.ReadString("s1");
s2 = reader.ReadString("s2");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("i1", i1);
writer.MarkIdentityField("i1");
writer.WriteInt("i2", i2);
writer.WriteString("s1", s1);
writer.MarkIdentityField("s1");
writer.WriteString("s2", s2);
}
#endregion
}
public class SerializePdx1
{
[PdxIdentityField] public int i1;
public int i2;
public string s1;
public string s2;
/*public static SerializePdx1 CreateDeserializable()
{
return new SerializePdx1(false);
}*/
public SerializePdx1()
{
}
public SerializePdx1(bool init)
{
if (init)
{
i1 = 1;
i2 = 2;
s1 = "s1";
s2 = "s2";
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj == this)
return true;
var other = obj as SerializePdx1;
if (other == null)
return false;
if (i1 == other.i1
&& i2 == other.i2
&& s1 == other.s1
&& s2 == other.s2)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class SerializePdx2
{
public string s0;
[PdxIdentityField] public int i1;
public int i2;
public string s1;
public string s2;
public SerializePdx2()
{
}
public override string ToString()
{
return i1 + i2 + s1 + s2;
}
public SerializePdx2(bool init)
{
if (init)
{
s0 = "s9999999999999999999999999999999999";
i1 = 1;
i2 = 2;
s1 = "s1";
s2 = "s2";
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj == this)
return true;
var other = obj as SerializePdx2;
if (other == null)
return false;
if (s0 == other.s0
&& i1 == other.i1
&& i2 == other.i2
&& s1 == other.s1
&& s2 == other.s2)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class BaseClass
{
//private readonly int _b1 = 1000;
[NonSerialized]
//private int _nonserialized = 1001;
//private static int _static = 1002;
private const int _const = 1003;
private int _baseclassmember;
public BaseClass()
{
}
public BaseClass(bool init)
{
if (init)
{
_baseclassmember = 101;
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var bc = obj as BaseClass;
if (bc == null)
return false;
if (bc == this)
return true;
if (bc._baseclassmember == _baseclassmember)
{
return true;
}
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public void ToData(IPdxWriter w)
{
w.WriteInt("_baseclassmember", _baseclassmember);
}
public void FromData(IPdxReader r)
{
_baseclassmember = r.ReadInt("_baseclassmember");
}
}
public class Address
{
private static Guid oddGuid = new Guid("924243B5-9C2A-41d7-86B1-E0B905C7EED3");
private static Guid evenGuid = new Guid("47AA8F17-FF6B-4a7d-B398-D83790977574");
private string _street;
private string _aptName;
private int _flatNumber;
private Guid _guid;
public Address()
{
}
public Address(int id)
{
_flatNumber = id;
_aptName = id.ToString();
_street = id.ToString() + "_street";
if (id % 2 == 0)
_guid = evenGuid;
else
_guid = oddGuid;
}
public override string ToString()
{
return _flatNumber + " " + _aptName + " " + _street + " " + _guid.ToString();
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var other = obj as Address;
if (other == null)
return false;
if (_street == other._street &&
_aptName == other._aptName &&
_flatNumber == other._flatNumber &&
_guid.Equals(other._guid))
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public void ToData(IPdxWriter w)
{
w.WriteString("_street", _street);
w.WriteString("_aptName", _aptName);
w.WriteInt("_flatNumber", _flatNumber);
w.WriteString("_guid", _guid.ToString());
}
public void FromData(IPdxReader r)
{
_street = r.ReadString("_street");
_aptName = r.ReadString("_aptName");
_flatNumber = r.ReadInt("_flatNumber");
var s = r.ReadString("_guid");
_guid = new Guid(s);
}
}
public class SerializePdx3 : BaseClass
{
private string s0;
[PdxIdentityField] private int i1;
public int i2;
public string s1;
public string s2;
private SerializePdx2 nestedObject;
private ArrayList _addressList;
private Address _address;
private Hashtable _hashTable;
//private int arrayCountS3= 10;
private List<object> _addressListObj;
//private Address[] _arrayOfAddress;
public SerializePdx3()
: base()
{
}
public SerializePdx3(bool init, int nAddress)
: base(init)
{
if (init)
{
s0 = "s9999999999999999999999999999999999";
i1 = 1;
i2 = 2;
s1 = "s1";
s2 = "s2";
nestedObject = new SerializePdx2(true);
_addressList = new ArrayList();
_hashTable = new Hashtable();
_addressListObj = new List<object>();
for (var i = 0; i < 10; i++)
{
_addressList.Add(new Address(i));
_hashTable.Add(i, new SerializePdx2(true));
_addressListObj.Add(new Address(i));
}
_address = new Address(nAddress);
//_arrayOfAddress = new Address[3];
//for (int i = 0; i < 3; i++)
//{
// _arrayOfAddress[i] = new Address(i);
//}
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj == this)
return true;
var other = obj as SerializePdx3;
if (other == null)
return false;
if (s0 == other.s0
&& i1 == other.i1
&& i2 == other.i2
&& s1 == other.s1
&& s2 == other.s2)
{
var ret = nestedObject.Equals(other.nestedObject);
if (ret)
{
if (_addressList.Count == 10 &&
_addressList.Count == other._addressList.Count //&&
//_arrayOfAddress.Length == other._arrayOfAddress.Length &&
//_arrayOfAddress[0].Equals(other._arrayOfAddress[0])
)
{
for (var i = 0; i < _addressList.Count; i++)
{
ret = _addressList[i].Equals(other._addressList[i]);
if (!ret)
return false;
}
if (_hashTable.Count != other._hashTable.Count)
return false;
foreach (DictionaryEntry de in _hashTable)
{
var otherHe = other._hashTable[de.Key];
ret = de.Value.Equals(otherHe);
if (!ret)
return false;
}
if (!_address.Equals(other._address))
return false;
return base.Equals(other);
}
}
}
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public new void ToData(IPdxWriter w)
{
base.ToData(w);
w.WriteString("s0", s0);
w.WriteInt("i1", i1);
w.WriteInt("i2", i2);
w.WriteString("s1", s1);
w.WriteString("s2", s2);
w.WriteObject("nestedObject", nestedObject);
w.WriteObject("_addressList", _addressList);
w.WriteObject("_address", _address);
w.WriteObject("_hashTable", _hashTable);
}
public new void FromData(IPdxReader r)
{
base.FromData(r);
s0 = r.ReadString("s0");
i1 = r.ReadInt("i1");
i2 = r.ReadInt("i2");
s1 = r.ReadString("s1");
s2 = r.ReadString("s2");
nestedObject = (SerializePdx2) r.ReadObject("nestedObject");
_addressList = (ArrayList) r.ReadObject("_addressList");
_address = (Address) r.ReadObject("_address");
_hashTable = (Hashtable) r.ReadObject("_hashTable");
}
}
public class SerializePdx4 : BaseClass
{
private string s0;
[PdxIdentityField] private int i1;
public int i2;
public string s1;
public string s2;
private SerializePdx2 nestedObject;
private ArrayList _addressList;
private Address[] _addressArray;
//private int arrayCount = 10;
public SerializePdx4()
: base()
{
}
public override string ToString()
{
return i1 + ":" + i2 + ":" + s1 + ":" + s2 + nestedObject.ToString() + " add: " + _addressList[0].ToString();
}
public SerializePdx4(bool init)
: base(init)
{
if (init)
{
s0 = "s9999999999999999999999999999999999";
i1 = 1;
i2 = 2;
s1 = "s1";
s2 = "s2";
nestedObject = new SerializePdx2(true);
_addressList = new ArrayList();
_addressArray = new Address[10];
for (var i = 0; i < 10; i++)
{
_addressList.Add(new Address(i));
_addressArray[i] = new Address(i);
}
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj == this)
return true;
var other = obj as SerializePdx4;
if (other == null)
return false;
if (s0 == other.s0
&& i1 == other.i1
&& i2 == other.i2
&& s1 == other.s1
&& s2 == other.s2)
{
var ret = nestedObject.Equals(other.nestedObject);
if (ret)
{
if (_addressList.Count == other._addressList.Count &&
_addressList[0].Equals(other._addressList[0]))
{
for (var i = 0; i < _addressList.Count; i++)
{
ret = _addressList[i].Equals(other._addressList[i]);
if (!ret)
return false;
}
for (var i = 0; i < _addressArray.Length; i++)
{
ret = _addressArray[i].Equals(other._addressArray[i]);
if (!ret)
return false;
}
return base.Equals(other);
}
}
}
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class PdxFieldTest
{
private string _notInclude = "default_value";
private int _nameChange;
private int _identityField;
public PdxFieldTest()
{
}
public string NotInclude
{
set { _notInclude = "default_value"; }
}
public PdxFieldTest(bool init)
{
if (init)
{
_notInclude = "valuechange";
_nameChange = 11213;
_identityField = 1038193;
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var other = obj as PdxFieldTest;
if (other == null)
return false;
if (_notInclude == other._notInclude
&& _nameChange == other._nameChange
&& _identityField == other._identityField)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class PdxSerializer : IPdxSerializer
{
#region IPdxSerializer Members
public object FromData(string className, IPdxReader reader)
{
var o = Activator.CreateInstance(Type.GetType(className));
var obj = o as SerializePdx1;
if (obj != null)
{
obj.i1 = reader.ReadInt("i1");
obj.i2 = reader.ReadInt("i2");
obj.s1 = reader.ReadString("s1");
obj.s2 = reader.ReadString("s2");
return o;
}
else
{
var obj2 = o as SerializePdx2;
if (obj2 != null)
{
obj2.s0 = reader.ReadString("s0");
obj2.i1 = reader.ReadInt("i1");
obj2.i2 = reader.ReadInt("i2");
obj2.s1 = reader.ReadString("s1");
obj2.s2 = reader.ReadString("s2");
return o;
}
else
{
var sp3 = o as SerializePdx3;
if (sp3 != null)
{
sp3.FromData(reader);
return o;
}
else
{
var ad = o as Address;
if (ad != null)
{
ad.FromData(reader);
return o;
}
}
return null;
}
}
}
public bool ToData(object o, IPdxWriter writer)
{
var obj = o as SerializePdx1;
if (obj != null)
{
writer.WriteInt("i1", obj.i1);
writer.WriteInt("i2", obj.i2);
writer.WriteString("s1", obj.s1);
writer.WriteString("s2", obj.s2);
return true;
}
else
{
var obj2 = o as SerializePdx2;
if (obj2 != null)
{
writer.WriteString("s0", obj2.s0);
writer.WriteInt("i1", obj2.i1);
writer.WriteInt("i2", obj2.i2);
writer.WriteString("s1", obj2.s1);
writer.WriteString("s2", obj2.s2);
return true;
}
else
{
var sp3 = o as SerializePdx3;
if (sp3 != null)
{
sp3.ToData(writer);
return true;
}
else
{
var ad = o as Address;
if (ad != null)
{
ad.ToData(writer);
return true;
}
}
}
return false;
}
}
#endregion
}
public class SerializePdxNoRegister : IPdxSerializable
{
public int i1;
public int i2;
public string s1;
public string s2;
/*public static SerializePdx1 CreateDeserializable()
{
return new SerializePdx1(false);
}*/
public SerializePdxNoRegister()
{
}
public SerializePdxNoRegister(bool init)
{
if (init)
{
i1 = 1;
i2 = 2;
s1 = "s1";
s2 = "s2";
}
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj == this)
return true;
var other = obj as SerializePdxNoRegister;
if (other == null)
return false;
if (i1 == other.i1
&& i2 == other.i2
&& s1 == other.s1
&& s2 == other.s2)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
i1 = reader.ReadInt("i1");
i2 = reader.ReadInt("i2");
s1 = reader.ReadString("s1");
s2 = reader.ReadString("s2");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("i1", i1);
writer.WriteInt("i2", i2);
writer.WriteString("s1", s1);
writer.WriteString("s2", s2);
}
#endregion
}
#endregion
#region Extension of ReflectionBasedAutoSerializer
public class AutoSerializerEx : ReflectionBasedAutoSerializer
{
public override bool IsIdentityField(FieldInfo fi, Type type)
{
if (fi.Name == "_identityField")
return true;
return base.IsIdentityField(fi, type);
}
public override string GetFieldName(FieldInfo fi, Type type)
{
if (fi.Name == "_nameChange")
return fi.Name + "NewName";
return fi.Name;
}
public override bool IsFieldIncluded(FieldInfo fi, Type type)
{
if (fi.Name == "_notInclude")
return false;
return base.IsFieldIncluded(fi, type);
}
public override FieldType GetFieldType(FieldInfo fi, Type type)
{
if (fi.FieldType.Equals(Type.GetType("System.Guid")))
return FieldType.STRING;
return base.GetFieldType(fi, type);
}
public override object WriteTransform(FieldInfo fi, Type type, object originalValue)
{
if (fi.FieldType.Equals(Type.GetType("System.Guid")))
{
//writer.WriteField(fi.Name, fi.GetValue(o).ToString(), Type.GetType("System.String"));
return originalValue.ToString();
}
else
return base.WriteTransform(fi, type, originalValue);
}
public override object ReadTransform(FieldInfo fi, Type type, object serializeValue)
{
if (fi.FieldType.Equals(Type.GetType("System.Guid")))
{
var g = new Guid((string) serializeValue);
//fi.SetValue(o, g);
return g;
}
else
return base.ReadTransform(fi, type, serializeValue);
}
/*public override void SerializeField(object o, FieldInfo fi, IPdxWriter writer)
{
if (fi.FieldType.Equals(Type.GetType("System.Guid")))
{
writer.WriteField(fi.Name, fi.GetValue(o).ToString(), Type.GetType("System.String"));
}
else
base.SerializeField(o, fi, writer);
}*/
/* public override object DeserializeField(object o, FieldInfo fi, IPdxReader reader)
{
if (fi.FieldType.Equals(Type.GetType("System.Guid")))
{
string gStr = (string)reader.ReadField(fi.Name, Type.GetType("System.String"));
Guid g = new Guid(gStr);
//fi.SetValue(o, g);
return g;
}
else
return base.DeserializeField(o, fi, reader);
}*/
}
#endregion
#region Classes for per test and Dataoutput.Advance method
internal class MyClasses : IPdxSerializable
{
[PdxIdentityField] public string Key;
public List<object> Children;
public MyClasses()
{
}
public MyClasses(string key, int nClasses)
{
Key = key;
Children = new List<object>(nClasses);
for (var i = 0; i < nClasses; i++)
{
var my = new MyClass(i);
Children.Add(my);
}
}
public static IPdxSerializable Create()
{
return new MyClasses();
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var other = obj as MyClasses;
if (other == null)
return false;
if (Children.Count == other.Children.Count)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
Key = reader.ReadString("Key");
Children = (List<object>) (reader.ReadObject("Children"));
}
public void ToData(IPdxWriter writer)
{
writer.WriteString("Key", Key);
writer.WriteObject("Children", Children);
}
#endregion
}
internal class MyClass : IPdxSerializable
{
[PdxIdentityField] public string Key;
public int SecKey;
public double ShareQuantity;
public double Cost;
public double Price;
public int SettleSecKey;
public double SettleFxRate;
public double ValueBasis;
public double OpenDate;
public double Strategy;
public MyClass()
{
}
public MyClass(int key)
{
Key = key.ToString();
SecKey = key;
ShareQuantity = key * 9278;
Cost = ShareQuantity * 100;
Price = Cost * 10;
SettleSecKey = SecKey + 100000;
SettleFxRate = Price * 1.5;
ValueBasis = 1.5;
OpenDate = 100000;
Strategy = 3.6;
}
public static IPdxSerializable Create()
{
return new MyClass();
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
Key = reader.ReadString("Key");
SecKey = reader.ReadInt("SecKey");
ShareQuantity = reader.ReadDouble("ShareQuantity");
Cost = reader.ReadDouble("Cost");
Price = reader.ReadDouble("Price");
SettleSecKey = reader.ReadInt("SettleSecKey");
SettleFxRate = reader.ReadDouble("SettleFxRate");
ValueBasis = reader.ReadDouble("ValueBasis");
OpenDate = reader.ReadDouble("OpenDate");
Strategy = reader.ReadDouble("Strategy");
}
public void ToData(IPdxWriter writer)
{
writer.WriteString("Key", Key);
writer.WriteInt("SecKey", SecKey);
writer.WriteDouble("ShareQuantity", ShareQuantity);
writer.WriteDouble("Cost", Cost);
writer.WriteDouble("Price", Price);
writer.WriteInt("SettleSecKey", SettleSecKey);
writer.WriteDouble("SettleFxRate", SettleFxRate);
writer.WriteDouble("ValueBasis", ValueBasis);
writer.WriteDouble("OpenDate", OpenDate);
writer.WriteDouble("Strategy", Strategy);
}
#endregion
}
#endregion
#region PdxTypeMapper
public class PdxTypeMapper : IPdxTypeMapper
{
public string ToPdxTypeName(string localTypeName)
{
return "my" + localTypeName;
}
public string FromPdxTypeName(string pdxTypeName)
{
return pdxTypeName.Substring(2); //need to extract "my"
}
}
#endregion
#region Pdx nested class
public enum Gender
{
male,
female,
other
};
public class ChildPdx : IPdxSerializable
{
public int _childId;
public Gender _gender;
public string _childName;
public ChildPdx()
{
}
public ChildPdx(int id)
{
_childId = id;
_childName = "name" + id.ToString();
if (id % 2 == 0)
_gender = Gender.female;
else
_gender = Gender.male;
}
public override string ToString()
{
return _childId + ":" + _childName + ":" + _gender;
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var other = obj as ChildPdx;
if (other == null)
return false;
if (_childName == other._childName
&& _gender == other._gender
&& _childId == other._childId)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
_childId = reader.ReadInt("_childId");
_gender = (Gender) reader.ReadObject("_gender");
_childName = reader.ReadString("_childName");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("_childId", _childId);
writer.MarkIdentityField("_childId");
writer.WriteObject("_gender", _gender);
writer.WriteString("_childName", _childName);
}
#endregion
}
public class ParentPdx : IPdxSerializable
{
public int _parentId;
public Gender _gender;
public string _parentName;
public ChildPdx _childPdx;
public ParentPdx()
{
}
public ParentPdx(int id)
{
_parentId = id;
_parentName = "name" + id.ToString();
if (id % 2 == 0)
_gender = Gender.female;
else
_gender = Gender.male;
_childPdx = new ChildPdx(id * 1393);
}
public override string ToString()
{
return _parentId + ":" + _gender + ":" + _parentName + ":" + _childPdx;
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var other = obj as ParentPdx;
if (other == null)
return false;
if (_parentId == other._parentId
&& _gender == other._gender
&& _parentName == other._parentName
&& _childPdx.Equals(other._childPdx))
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
_parentId = reader.ReadInt("_parentId");
_gender = (Gender) reader.ReadObject("_gender");
_parentName = reader.ReadString("_parentName");
_childPdx = (ChildPdx) reader.ReadObject("_childPdx");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("_parentId", _parentId);
writer.MarkIdentityField("_parentId");
writer.WriteObject("_gender", _gender);
writer.WriteString("_parentName", _parentName);
writer.WriteObject("_childPdx", _childPdx);
writer.MarkIdentityField("_childPdx");
}
#endregion
}
public class ChildPdxAS
{
[PdxIdentityField] private int _childId;
private Gender _gender;
private string _childName;
public ChildPdxAS()
{
}
public ChildPdxAS(int id)
{
_childId = id;
_childName = "name" + id.ToString();
if (id % 2 == 0)
_gender = Gender.female;
else
_gender = Gender.male;
}
public override string ToString()
{
return _childId + ":" + _childName + ":" + _gender;
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
var other = obj as ChildPdxAS;
if (other == null)
return false;
if (_childName == other._childName
&& _gender == other._gender
&& _childId == other._childId)
return true;
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class Heaptest : IPdxSerializable
{
private int _id;
private byte[] _data;
public Heaptest()
{
}
public Heaptest(int id)
{
_id = id;
_data = new byte[id];
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
_id = reader.ReadInt("_id");
_data = reader.ReadByteArray("_data");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("_id", _id);
writer.WriteByteArray("_data", _data);
}
#endregion
}
public enum enumQuerytest
{
id1,
id2,
id3
};
public class PdxEnumTestClass : IPdxSerializable
{
private int _id;
private enumQuerytest _enumid;
public int ID
{
get { return _id; }
}
public PdxEnumTestClass(int id)
{
_id = id;
switch (id)
{
case 0:
_enumid = enumQuerytest.id1;
break;
case 1:
_enumid = enumQuerytest.id2;
break;
case 2:
_enumid = enumQuerytest.id3;
break;
default:
_enumid = enumQuerytest.id1;
break;
}
}
public PdxEnumTestClass()
{
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
_id = reader.ReadInt("_id");
_enumid = (enumQuerytest) reader.ReadObject("_enumid");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("_id", _id);
writer.WriteObject("_enumid", _enumid);
}
#endregion
}
#endregion
}
namespace javaobject
{
using Apache.Geode.Client;
#region Pdx Delta class
public class PdxDelta : IPdxSerializable, IDelta, ICloneable
{
public static int GotDelta = 0;
private int _delta = 0;
private int _id;
public PdxDelta()
{
}
public PdxDelta(int id)
{
_id = id;
}
#region IPdxSerializable Members
public void FromData(IPdxReader reader)
{
_id = reader.ReadInt("_id");
_delta = reader.ReadInt("_delta");
}
public void ToData(IPdxWriter writer)
{
writer.WriteInt("_id", _id);
writer.WriteInt("_delta", _delta);
}
#endregion
public int Delta
{
get { return _delta; }
}
#region IDelta Members
public void FromDelta(DataInput input)
{
Console.WriteLine(" in fromdelta " + GotDelta);
_delta = input.ReadInt32();
GotDelta++;
}
public bool HasDelta()
{
Console.WriteLine(" in hasdelta " + _delta);
if (_delta > 0)
{
_delta++;
return true;
}
else
{
_delta++;
return false;
}
}
public void ToDelta(DataOutput output)
{
Console.WriteLine(" in todelta " + GotDelta);
output.WriteInt32(_delta);
GotDelta++;
}
#endregion
#region ICloneable Members
public object Clone()
{
var pd = new PdxDelta();
pd._id = _id;
pd._delta = _delta;
return pd;
}
#endregion
}
#endregion
}