| /* |
| * 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 |
| } |