You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2017/08/11 23:52:42 UTC
[26/52] [partial] geode-native git commit: GEODE-3165: Reogranized
sources relative to the root for better CMake IDE integration.
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/regionquery_diffconfig_SG.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/regionquery_diffconfig_SG.xml b/clicache/integration-test/regionquery_diffconfig_SG.xml
new file mode 100644
index 0000000..0f1595d
--- /dev/null
+++ b/clicache/integration-test/regionquery_diffconfig_SG.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+ version="1.0">
+ <!--cache-server host="cod" port="24680" /-->
+ <cache-server port="HOST_PORT1">
+ <group>ServerGroup1</group>
+ </cache-server>
+
+ <region name="DistRegionAck">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ <!-- making entries -->
+ <entry>
+ <key><string>port1-1</string></key>
+ <value>
+ <declarable>
+ <class-name>javaobject.Portfolio</class-name>
+ <parameter name="ID">
+ <string>1</string>
+ </parameter>
+ <parameter name="pkid">
+ <string>A0</string>
+ </parameter>
+ <parameter name="type">
+ <string>type1</string>
+ </parameter>
+ <parameter name="status">
+ <string>active</string>
+ </parameter>
+ <parameter name="position1">
+ <declarable>
+ <class-name>javaobject.Position</class-name>
+ <parameter name="secId">
+ <string>SUN</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>3400</string>
+ </parameter>
+ <parameter name="secType">
+ <string>r</string>
+ </parameter>
+ <parameter name="pid">
+ <string>345</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ <parameter name="position2">
+ <declarable>
+ <class-name>javaobject.Position</class-name>
+ <parameter name="secId">
+ <string>IBM</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>8765</string>
+ </parameter>
+ <parameter name="secType">
+ <string>p</string>
+ </parameter>
+ <parameter name="pid">
+ <string>123</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ </declarable>
+ </value>
+ </entry>
+ </region>
+ <region name="DistRegionNoAck">
+ <region-attributes scope="distributed-no-ack" data-policy="replicate"/>
+ </region>
+</cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/remotequery.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/remotequery.xml b/clicache/integration-test/remotequery.xml
new file mode 100644
index 0000000..c1bb4ca
--- /dev/null
+++ b/clicache/integration-test/remotequery.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+ version="1.0">
+ <!--cache-server host="cod" port="24680" /-->
+ <cache-server port="HOST_PORT1" />
+
+ <region name="DistRegionAck">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="DistRegionAck1">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ <!-- making entries -->
+ <entry>
+ <key><string>port1-1</string></key>
+ <value>
+ <declarable>
+ <class-name>javaobject.Portfolio</class-name>
+ <parameter name="ID">
+ <string>1</string>
+ </parameter>
+ <parameter name="pkid">
+ <string>A0</string>
+ </parameter>
+ <parameter name="type">
+ <string>type1</string>
+ </parameter>
+ <parameter name="status">
+ <string>active</string>
+ </parameter>
+ <parameter name="position1">
+ <declarable>
+ <class-name>javaobject.Position</class-name>
+ <parameter name="secId">
+ <string>SUN</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>3400</string>
+ </parameter>
+ <parameter name="secType">
+ <string>r</string>
+ </parameter>
+ <parameter name="pid">
+ <string>345</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ <parameter name="position2">
+ <declarable>
+ <class-name>javaobject.Position</class-name>
+ <parameter name="secId">
+ <string>IBM</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>8765</string>
+ </parameter>
+ <parameter name="secType">
+ <string>p</string>
+ </parameter>
+ <parameter name="pid">
+ <string>123</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ </declarable>
+ </value>
+ </entry>
+
+ <!-- making sub-regions -->
+ <region name="Positions">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ </region>
+ </region>
+ <region name="Portfolios2">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios3">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Positions">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="DistRegionNoAck">
+ <region-attributes scope="distributed-no-ack" data-policy="replicate"/>
+ </region>
+</cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/remotequery2.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/remotequery2.xml b/clicache/integration-test/remotequery2.xml
new file mode 100644
index 0000000..cd9090c
--- /dev/null
+++ b/clicache/integration-test/remotequery2.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+ version="1.0">
+ <!--cache-server host="cod" port="24681" /-->
+ <cache-server port="HOST_PORT2" />
+
+ <region name="DistRegionAck">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="DistRegionAck1">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ <!-- making entries -->
+ <entry>
+ <key><string>port1-1</string></key>
+ <value>
+ <declarable>
+ <class-name>javaobject.Portfolio</class-name>
+ <parameter name="ID">
+ <string>1</string>
+ </parameter>
+ <parameter name="pkid">
+ <string>A0</string>
+ </parameter>
+ <parameter name="type">
+ <string>type1</string>
+ </parameter>
+ <parameter name="status">
+ <string>active</string>
+ </parameter>
+ <parameter name="position1">
+ <declarable>
+ <class-name>javaobject.Position</class-name>
+ <parameter name="secId">
+ <string>SUN</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>3400</string>
+ </parameter>
+ <parameter name="secType">
+ <string>r</string>
+ </parameter>
+ <parameter name="pid">
+ <string>345</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ <parameter name="position2">
+ <declarable>
+ <class-name>javaobject.Position</class-name>
+ <parameter name="secId">
+ <string>IBM</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>8765</string>
+ </parameter>
+ <parameter name="secType">
+ <string>p</string>
+ </parameter>
+ <parameter name="pid">
+ <string>123</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ </declarable>
+ </value>
+ </entry>
+
+ <!-- making sub-regions -->
+ <region name="Positions">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ </region>
+ </region>
+ <region name="Portfolios2">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios3">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Positions">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="DistRegionNoAck">
+ <region-attributes scope="distributed-no-ack" data-policy="replicate"/>
+ </region>
+</cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/remotequeryN.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/remotequeryN.xml b/clicache/integration-test/remotequeryN.xml
new file mode 100644
index 0000000..c44bd2c
--- /dev/null
+++ b/clicache/integration-test/remotequeryN.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+ version="1.0">
+ <!--cache-server host="cod" port="24680" /-->
+ <cache-server port="HOST_PORT1" />
+
+ <region name="DistRegionAck">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ <!-- making entries -->
+ <entry>
+ <key><string>port1-1</string></key>
+ <value>
+ <declarable>
+ <class-name>javaobject.newapi.Portfolio</class-name>
+ <parameter name="ID">
+ <string>1</string>
+ </parameter>
+ <parameter name="pkid">
+ <string>A0</string>
+ </parameter>
+ <parameter name="type">
+ <string>type1</string>
+ </parameter>
+ <parameter name="status">
+ <string>active</string>
+ </parameter>
+ <parameter name="position1">
+ <declarable>
+ <class-name>javaobject.newapi.Position</class-name>
+ <parameter name="secId">
+ <string>SUN</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>3400</string>
+ </parameter>
+ <parameter name="secType">
+ <string>r</string>
+ </parameter>
+ <parameter name="pid">
+ <string>345</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ <parameter name="position2">
+ <declarable>
+ <class-name>javaobject.newapi.Position</class-name>
+ <parameter name="secId">
+ <string>IBM</string>
+ </parameter>
+ <parameter name="sharesOutstanding">
+ <string>8765</string>
+ </parameter>
+ <parameter name="secType">
+ <string>p</string>
+ </parameter>
+ <parameter name="pid">
+ <string>123</string>
+ </parameter>
+ </declarable>
+ </parameter>
+ </declarable>
+ </value>
+ </entry>
+
+ <!-- making sub-regions -->
+ <region name="Positions">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+ </region>
+ </region>
+ <region name="Portfolios2">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Portfolios3">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="Positions">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+ <region name="DistRegionNoAck">
+ <region-attributes scope="distributed-no-ack" data-policy="replicate"/>
+ </region>
+</cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/serverDurableClient.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/serverDurableClient.xml b/clicache/integration-test/serverDurableClient.xml
new file mode 100644
index 0000000..709209f
--- /dev/null
+++ b/clicache/integration-test/serverDurableClient.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- serverDurableClient.xml
+ Configures a server to for clients at port 40404.
+-->
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+ version="1.0">
+ <cache-server port="40404"/>
+ <region name="DistRegionAck">
+ <region-attributes scope="distributed-ack" data-policy="replicate"/>
+ </region>
+</cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/system.properties
----------------------------------------------------------------------
diff --git a/clicache/integration-test/system.properties b/clicache/integration-test/system.properties
new file mode 100644
index 0000000..0ffddef
--- /dev/null
+++ b/clicache/integration-test/system.properties
@@ -0,0 +1,33 @@
+# 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.
+# All the configurable parameters.
+statistic-sample-rate=700
+statistic-sampling-enabled=false
+statistic-archive-file=stats.gfs
+log-file=gfcpp.log
+log-level=debug
+name=system
+cache-xml-file=cache.xml
+log-file-size-limit=1024000000
+archive-file-size-limit=1024000000
+ping-interval=123
+connect-timeout=345
+redundancy-monitor-interval=456
+heap-lru-limit=123
+heap-lru-delta=45
+notify-ack-interval=1234
+notify-dupcheck-life=5678
+on-client-disconnect-clear-pdxType-Ids=true
+read-timeout-unit-in-millis=true
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/test.bat.in
----------------------------------------------------------------------
diff --git a/clicache/integration-test/test.bat.in b/clicache/integration-test/test.bat.in
new file mode 100644
index 0000000..e306603
--- /dev/null
+++ b/clicache/integration-test/test.bat.in
@@ -0,0 +1,65 @@
+@echo off
+
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements. See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License. You may obtain a copy of the License at
+rem
+rem http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+setlocal
+
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:Apache.Geode>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:framework>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:testobject>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:SqLiteImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:cryptoImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:DHImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:securityImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:PkcsWrapper>>;%PATH%
+set PATH=$<JOIN:$<SHELL_PATH:${PATH}>,;>;%PATH%
+
+set PATH=c:\Program Files (x86)\Nunit 2.6.4\bin;%PATH%
+
+set TEST_DIR="$<SHELL_PATH:${TEST_DIR}>"
+set GFCPP="%TEST_DIR%"
+
+set TESTSRC=$<SHELL_PATH:${CMAKE_CURRENT_SOURCE_DIR}>
+set GF_JAVA=$<SHELL_PATH:${Java_JAVA_EXECUTABLE}>
+set GFJAVA=$<SHELL_PATH:${Geode_PATH}>
+set GFE_LOGLEVEL=config
+set GFE_SECLOGLEVEL=config
+set GFE_DIR=$<SHELL_PATH:${Geode_PATH}>
+set MCAST_ADDR=224.10.13.63
+set MCAST_PORT=${PORT}
+set TIMEBOMB=3600
+set GF_CLASSPATH=%GF_CLASSPATH%;$<SHELL_PATH:${CMAKE_BINARY_DIR}>\tests\javaobject\javaobject.jar
+set PROFILERCMD=
+set BUG481=
+set TESTNAME=${TEST}
+set LOG=${TEST}.log
+
+rmdir /q /s "%TEST_DIR%" 2>nul
+mkdir "%TEST_DIR%"
+if %errorlevel% neq 0 exit /b %errorlevel%
+pushd "%TEST_DIR%"
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+rem In Windows, pipes to tee return tee's exit code instead of executable's
+rem exit code. As a workaround we write exit codes to files.
+
+(${NUNIT_CONSOLE} /run:${NAMESPACE}.${TESTCLASS} ..\..\$<CONFIG>\UnitTests.dll 2>&1 && echo 0 >${TEST}.errorlevel || echo 1 >${TEST}.errorlevel) | tee %LOG%
+
+set /p errorlevel= <${TEST}.errorlevel
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+popd
+exit /b
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache.xml b/clicache/integration-test/valid_cache.xml
new file mode 100644
index 0000000..7680c10
--- /dev/null
+++ b/clicache/integration-test/valid_cache.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+
+ <root-region name = "Root1" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="local-destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="local-invalidate"/>
+ </entry-time-to-live>
+ </region-attributes>
+
+
+ <region name="SubRegion1">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52">
+ </region-attributes>
+ </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16" >
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </region-idle-time>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-time-to-live>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </entry-idle-time>
+ </region-attributes>
+
+ <region name="SubRegion21">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ </region-attributes>
+ </region>
+
+ <region name="SubRegion22">
+ <region name="SubSubRegion221">
+ </region>
+ </region>
+
+ </root-region>
+
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache_pool.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache_pool.xml b/clicache/integration-test/valid_cache_pool.xml
new file mode 100644
index 0000000..ae84754
--- /dev/null
+++ b/clicache/integration-test/valid_cache_pool.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+ <pdx ignore-unread-fields="true" />
+ <root-region name = "Root1" >
+ <region-attributes caching-enabled="true" pool-name="test_pool_1" />
+
+ <region name="SubRegion1">
+ <region-attributes caching-enabled="false" pool-name="test_pool_2" />
+ </region>
+
+ </root-region>
+
+ <root-region name= "Root2">
+ <region-attributes caching-enabled="false" pool-name="test_pool_2" />
+ </root-region>
+
+ <pool
+ free-connection-timeout = "12345"
+ idle-timeout = "5555"
+ load-conditioning-interval = "23456"
+ max-connections = "7"
+ min-connections = "3"
+ name = "test_pool_1"
+ ping-interval = "12345"
+ update-locator-list-interval="250001"
+ read-timeout = "23456"
+ retry-attempts = "3"
+ server-group = "ServerGroup1"
+ socket-buffer-size = "32768"
+ statistic-interval = "10123"
+ subscription-ack-interval = "567"
+ subscription-enabled = "true"
+ subscription-message-tracking-timeout = "900123"
+ subscription-redundancy = "0"
+ thread-local-connections = "5"
+ pr-single-hop-enabled="true"
+ >
+ <locator host="localhost" port="LOC_PORT1" />
+ <!--locator host="localhost" port="34757" /-->
+ </pool>
+
+ <pool
+ free-connection-timeout = "23456"
+ idle-timeout = "6666"
+ load-conditioning-interval = "34567"
+ max-connections = "8"
+ min-connections = "2"
+ name = "test_pool_2"
+ ping-interval = "23456"
+ read-timeout = "34567"
+ retry-attempts = "5"
+ server-group = "ServerGroup2"
+ socket-buffer-size = "65536"
+ statistic-interval = "20345"
+ subscription-ack-interval = "678"
+ subscription-enabled = "false"
+ subscription-message-tracking-timeout = "800222"
+ subscription-redundancy = "1"
+ thread-local-connections = "3"
+ pr-single-hop-enabled="false"
+ >
+ <server host="localhost" port="HOST_PORT1" />
+ <server host="localhost" port="HOST_PORT2" />
+ </pool>
+
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache_refid.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache_refid.xml b/clicache/integration-test/valid_cache_refid.xml
new file mode 100644
index 0000000..e9bc134
--- /dev/null
+++ b/clicache/integration-test/valid_cache_refid.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+
+ <root-region name = "Root1" >
+ <region-attributes id="root1" scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="local-destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="local-invalidate"/>
+ </entry-time-to-live>
+ </region-attributes>
+
+
+ <region name="SubRegion1">
+ <region-attributes id="sub1" scope="local" caching-enabled="true" initial-capacity="23" load-factor=".89" concurrency-level="52">
+ </region-attributes>
+
+ <region name="SubRegion11">
+ <region-attributes id="sub11" refid="sub1" initial-capacity="10" />
+ </region>
+ </region>
+
+ <region name="SubRegion2">
+ <region-attributes refid="sub11" />
+ </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2">
+ <region-attributes refid="root1" concurrency-level="16" >
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </region-idle-time>
+ </region-attributes>
+
+ <region name="SubRegion21">
+ <region-attributes refid="sub11">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ </region-attributes>
+ </region>
+
+ </root-region>
+
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache_region_refid.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache_region_refid.xml b/clicache/integration-test/valid_cache_region_refid.xml
new file mode 100644
index 0000000..74a0cfe
--- /dev/null
+++ b/clicache/integration-test/valid_cache_region_refid.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+
+ <root-region name = "Root1" >
+ <region-attributes id="root1" scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="local-destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="local-invalidate"/>
+ </entry-time-to-live>
+ </region-attributes>
+
+
+ <region name="SubRegion1">
+ <region-attributes id="sub1" scope="local" caching-enabled="true" initial-capacity="23" load-factor=".89" concurrency-level="52">
+ </region-attributes>
+
+ <region name="SubRegion11" refid="sub1">
+ <region-attributes id="sub11" initial-capacity="10" />
+ </region>
+ </region>
+
+ <region name="SubRegion2" refid="sub11">
+ </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2" refid="root1">
+ <region-attributes concurrency-level="16" >
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </region-idle-time>
+ </region-attributes>
+
+ <region name="SubRegion21" refid="sub1">
+ <region-attributes refid="sub11">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ </region-attributes>
+ </region>
+ </root-region>
+
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_declarative_cache_creation.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_declarative_cache_creation.xml b/clicache/integration-test/valid_declarative_cache_creation.xml
new file mode 100644
index 0000000..0f239f1
--- /dev/null
+++ b/clicache/integration-test/valid_declarative_cache_creation.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+<!-- xml with region-attribute having only child elements no attributes. refer to Ticket #775 -->
+ <root-region name= "Root1">
+ <region-attributes >
+ <cache-loader library-name="unit_test_callbacks" library-function-name="createCacheLoader" />
+ <cache-listener library-name="unit_test_callbacks" library-function-name="createCacheListener" />
+ <cache-writer library-name="unit_test_callbacks" library-function-name="createCacheWriter" />
+ </region-attributes >
+ </root-region>
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_lruExpiration.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_lruExpiration.xml b/clicache/integration-test/valid_lruExpiration.xml
new file mode 100644
index 0000000..dae8aad
--- /dev/null
+++ b/clicache/integration-test/valid_lruExpiration.xml
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+
+<root-region name = "R1" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "0">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="local-destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="local-invalidate"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R2" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="2" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="4" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R20" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "0">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="2" action="local-invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="4" action="local-invalidate"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R21" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R4" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="5" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R40" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="5" action="local-invalidate"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R5" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="5" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R8" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="10" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R12" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="5" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R13" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="5" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R15" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="5" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R16" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="5" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-time-to-live>
+ </region-attributes>
+ </root-region>
+<root-region name = "R18" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "4" disk-policy="overflows">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="4" action="local-invalidate"/>
+ </entry-time-to-live>
+ <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+ <properties>
+ <property name="PersistenceDirectory" value="SqLite"/>
+ <property name="MaxFileSize" value="32500"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+ </root-region>
+<root-region name = "R19" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "4" disk-policy="overflows">
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="4" action="destroy"/>
+ </entry-time-to-live>
+ <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+ <properties>
+ <property name="PersistenceDirectory" value="SqLite"/>
+ <property name="MaxFileSize" value="32500"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+ </root-region>
+
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_overflowAttr.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_overflowAttr.xml b/clicache/integration-test/valid_overflowAttr.xml
new file mode 100644
index 0000000..0f40e2e
--- /dev/null
+++ b/clicache/integration-test/valid_overflowAttr.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+ xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+ http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+ version="9.0">
+
+ <root-region name = "Root1" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35" disk-policy="overflows">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="local-destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="local-invalidate"/>
+ </entry-time-to-live>
+ <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+ <properties>
+ <property name="PersistenceDirectory" value="SqLite"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ <region name="SubRegion11">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+ <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+ <properties>
+ <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ </region>
+
+ <region name="SubRegion12">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+ <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+ <properties>
+ <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16" lru-entries-limit = "35" disk-policy="overflows" >
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </region-time-to-live>
+ <region-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </region-idle-time>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="destroy"/>
+ </entry-time-to-live>
+ <entry-idle-time>
+ <expiration-attributes timeout="0" action="invalidate"/>
+ </entry-idle-time>
+ <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+ <properties>
+ <property name="PersistenceDirectory" value="SqLiteRoot"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ <region name="SubRegion21">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ </region-attributes>
+ </region>
+
+ <region name="SubRegion22">
+ <region-attributes scope="local" caching-enabled="true">
+ </region-attributes>
+ <region name="SubSubRegion221">
+ <region-attributes scope="local" caching-enabled="true">
+ </region-attributes>
+ </region>
+ </region>
+
+ </root-region>
+
+ <root-region name = "Root3" >
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35" disk-policy="overflows">
+ <region-idle-time>
+ <expiration-attributes timeout="20" action="destroy"/>
+ </region-idle-time>
+ <entry-idle-time>
+ <expiration-attributes timeout="10" action="invalidate"/>
+ </entry-idle-time>
+ <region-time-to-live>
+ <expiration-attributes timeout="0" action="local-destroy"/>
+ </region-time-to-live>
+ <entry-time-to-live>
+ <expiration-attributes timeout="0" action="local-invalidate"/>
+ </entry-time-to-live>
+ <persistence-manager library-name="Apache.Geode.Plugins.SqLite" library-function-name="Apache.Geode.Plugins.SqLite.SqLiteImpl<System.Object, System.Object>.Create" >
+
+ <properties>
+ <property name="PersistenceDirectory" value="SqLite"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ <region name="SubRegion31">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+ <persistence-manager library-name="Apache.Geode.Plugins.SqLite" library-function-name="Apache.Geode.Plugins.SqLite.SqLiteImpl<System.Object, System.Object>.Create" >
+ <properties>
+ <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ </region>
+
+ <region name="SubRegion32">
+ <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+ <persistence-manager library-name="Apache.Geode.Plugins.SqLite" library-function-name="Apache.Geode.Plugins.SqLite.SqLiteImpl<System.Object, System.Object>.Create" >
+ <properties>
+ <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+ <property name="MaxPageCount" value="1073741823"/>
+ <property name="PageSize" value="65536"/>
+ </properties>
+ </persistence-manager>
+ </region-attributes>
+
+ </region>
+
+ </root-region>
+</client-cache>
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/src/Apache.Geode.rc
----------------------------------------------------------------------
diff --git a/clicache/src/Apache.Geode.rc b/clicache/src/Apache.Geode.rc
new file mode 100644
index 0000000..a23e7a9
--- /dev/null
+++ b/clicache/src/Apache.Geode.rc
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+#include <verrsrc.h>
+
+#include "config.h"
+#include "version.h"
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION PRODUCT_VERSION_RC
+PRODUCTVERSION PRODUCT_VERSION_RC
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_DLL
+FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", PRODUCT_VENDOR_NAME
+ VALUE "FileDescription", PRODUCT_NAME " .NET Library"
+ VALUE "FileVersion", PRODUCT_VERSION
+ VALUE "InternalName", PRODUCT_DLL_NAME
+ VALUE "LegalCopyright", "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."
+ VALUE "OriginalFilename", PRODUCT_DLL_NAME".dll"
+ VALUE "ProductName", PRODUCT_NAME
+ VALUE "ProductVersion", PRODUCT_VERSION
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/src/AttributesFactory.cpp
----------------------------------------------------------------------
diff --git a/clicache/src/AttributesFactory.cpp b/clicache/src/AttributesFactory.cpp
new file mode 100644
index 0000000..33f84ea
--- /dev/null
+++ b/clicache/src/AttributesFactory.cpp
@@ -0,0 +1,484 @@
+/*
+ * 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.
+ */
+
+#include "AttributesFactory.hpp"
+#include "Region.hpp"
+#include "impl/ManagedCacheLoader.hpp"
+#include "impl/ManagedPersistenceManager.hpp"
+#include "impl/ManagedCacheWriter.hpp"
+#include "impl/ManagedCacheListener.hpp"
+#include "impl/ManagedPartitionResolver.hpp"
+#include "impl/ManagedFixedPartitionResolver.hpp"
+#include "impl/CacheLoader.hpp"
+#include "impl/CacheWriter.hpp"
+#include "impl/CacheListener.hpp"
+#include "impl/PartitionResolver.hpp"
+#include "impl/PersistenceManagerProxy.hpp"
+#include "RegionAttributes.hpp"
+#include "ICacheLoader.hpp"
+#include "IPersistenceManager.hpp"
+#include "ICacheWriter.hpp"
+#include "IPartitionResolver.hpp"
+#include "IFixedPartitionResolver.hpp"
+#include "impl/SafeConvert.hpp"
+#include "ExceptionTypes.hpp"
+
+#include "begin_native.hpp"
+#include <memory>
+#include "end_native.hpp"
+
+namespace Apache
+{
+ namespace Geode
+ {
+ namespace Client
+ {
+ using namespace System;
+ using namespace System::Collections::Generic;
+
+ namespace native = apache::geode::client;
+
+ generic<class TKey, class TValue>
+ AttributesFactory<TKey, TValue>::AttributesFactory( Apache::Geode::Client::RegionAttributes<TKey, TValue>^ regionAttributes )
+ {
+ auto attribptr = regionAttributes->GetNative();
+ m_nativeptr = gcnew native_unique_ptr<native::AttributesFactory>(std::make_unique<native::AttributesFactory>(attribptr));
+ }
+
+ // CALLBACKS
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCacheLoader( ICacheLoader<TKey, TValue>^ cacheLoader )
+ {
+ native::CacheLoaderPtr loaderptr;
+ if ( cacheLoader != nullptr ) {
+ CacheLoaderGeneric<TKey, TValue>^ clg = gcnew CacheLoaderGeneric<TKey, TValue>();
+ clg->SetCacheLoader(cacheLoader);
+ loaderptr = std::shared_ptr<native::ManagedCacheLoaderGeneric>(new native::ManagedCacheLoaderGeneric(cacheLoader));
+ ((native::ManagedCacheLoaderGeneric*)loaderptr.get())->setptr(clg);
+ }
+ try
+ {
+ m_nativeptr->get()->setCacheLoader( loaderptr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCacheWriter( ICacheWriter<TKey, TValue>^ cacheWriter )
+ {
+ native::CacheWriterPtr writerptr;
+ if ( cacheWriter != nullptr ) {
+ CacheWriterGeneric<TKey, TValue>^ cwg = gcnew CacheWriterGeneric<TKey, TValue>();
+ cwg->SetCacheWriter(cacheWriter);
+ writerptr = std::shared_ptr<native::ManagedCacheWriterGeneric>(new native::ManagedCacheWriterGeneric(cacheWriter));
+ ((native::ManagedCacheWriterGeneric*)writerptr.get())->setptr(cwg);
+ }
+ try
+ {
+ m_nativeptr->get()->setCacheWriter( writerptr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCacheListener( ICacheListener<TKey, TValue>^ cacheListener )
+ {
+ native::CacheListenerPtr listenerptr;
+ if ( cacheListener != nullptr ) {
+ CacheListenerGeneric<TKey, TValue>^ clg = gcnew CacheListenerGeneric<TKey, TValue>();
+ clg->SetCacheListener(cacheListener);
+ listenerptr = std::shared_ptr<native::ManagedCacheListenerGeneric>(new native::ManagedCacheListenerGeneric(cacheListener));
+ ((native::ManagedCacheListenerGeneric*)listenerptr.get())->setptr(clg);
+ }
+ try
+ {
+ m_nativeptr->get()->setCacheListener( listenerptr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPartitionResolver( IPartitionResolver<TKey, TValue>^ partitionresolver )
+ {
+ native::PartitionResolverPtr resolverptr;
+ if ( partitionresolver != nullptr ) {
+ Client::IFixedPartitionResolver<TKey, TValue>^ resolver =
+ dynamic_cast<Client::IFixedPartitionResolver<TKey, TValue>^>(partitionresolver);
+ if (resolver != nullptr) {
+ FixedPartitionResolverGeneric<TKey, TValue>^ prg = gcnew FixedPartitionResolverGeneric<TKey, TValue>();
+ prg->SetPartitionResolver(partitionresolver);
+ resolverptr = std::shared_ptr<native::ManagedFixedPartitionResolverGeneric>(new native::ManagedFixedPartitionResolverGeneric(partitionresolver));
+ ((native::ManagedFixedPartitionResolverGeneric*)resolverptr.get())->setptr(prg);
+ }
+ else {
+ PartitionResolverGeneric<TKey, TValue>^ prg = gcnew PartitionResolverGeneric<TKey, TValue>();
+ prg->SetPartitionResolver(partitionresolver);
+ resolverptr = std::shared_ptr<native::ManagedPartitionResolverGeneric>(new native::ManagedPartitionResolverGeneric(partitionresolver));
+ ((native::ManagedPartitionResolverGeneric*)resolverptr.get())->setptr(prg);
+ }
+ }
+ try
+ {
+ m_nativeptr->get()->setPartitionResolver( resolverptr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCacheLoader( String^ libPath, String^ factoryFunctionName )
+ {
+ throw gcnew System::NotSupportedException;
+ ManagedString mg_libpath( libPath );
+ ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+ try
+ {
+ m_nativeptr->get()->setCacheLoader( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCacheWriter( String^ libPath, String^ factoryFunctionName )
+ {
+ throw gcnew System::NotSupportedException;
+ ManagedString mg_libpath( libPath );
+ ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+ try
+ {
+ m_nativeptr->get()->setCacheWriter( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCacheListener( String^ libPath, String^ factoryFunctionName )
+ {
+ throw gcnew System::NotSupportedException;
+ ManagedString mg_libpath( libPath );
+ ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+ try
+ {
+ m_nativeptr->get()->setCacheListener( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPartitionResolver( String^ libPath, String^ factoryFunctionName )
+ {
+ throw gcnew System::NotSupportedException;
+ ManagedString mg_libpath( libPath );
+ ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+ try
+ {
+ m_nativeptr->get()->setPartitionResolver( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ // EXPIRATION ATTRIBUTES
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetEntryIdleTimeout( ExpirationAction action, System::UInt32 idleTimeout )
+ {
+ try
+ {
+ m_nativeptr->get()->setEntryIdleTimeout(static_cast<native::ExpirationAction::Action>( action ), idleTimeout );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetEntryTimeToLive( ExpirationAction action, System::UInt32 timeToLive )
+ {
+ try
+ {
+ m_nativeptr->get()->setEntryTimeToLive( static_cast<native::ExpirationAction::Action>( action ), timeToLive );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetRegionIdleTimeout( ExpirationAction action, System::UInt32 idleTimeout )
+ {
+ try
+ {
+ m_nativeptr->get()->setRegionIdleTimeout( static_cast<native::ExpirationAction::Action>( action ), idleTimeout );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetRegionTimeToLive( ExpirationAction action, System::UInt32 timeToLive )
+ {
+ try
+ {
+ m_nativeptr->get()->setRegionTimeToLive( static_cast<native::ExpirationAction::Action>( action ), timeToLive );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ // PERSISTENCE
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPersistenceManager(IPersistenceManager<TKey, TValue>^ persistenceManager, Properties<String^, String^>^ config )
+ {
+ native::PersistenceManagerPtr persistenceManagerptr;
+ if ( persistenceManager != nullptr ) {
+ PersistenceManagerGeneric<TKey, TValue>^ clg = gcnew PersistenceManagerGeneric<TKey, TValue>();
+ clg->SetPersistenceManager(persistenceManager);
+ persistenceManagerptr = std::shared_ptr<native::ManagedPersistenceManagerGeneric>(new native::ManagedPersistenceManagerGeneric(persistenceManager));
+ ((native::ManagedPersistenceManagerGeneric*)persistenceManagerptr.get())->setptr(clg);
+ }
+ try
+ {
+ m_nativeptr->get()->setPersistenceManager( persistenceManagerptr, config->GetNative() );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPersistenceManager(IPersistenceManager<TKey, TValue>^ persistenceManager )
+ {
+ SetPersistenceManager(persistenceManager, nullptr);
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPersistenceManager( String^ libPath,
+ String^ factoryFunctionName )
+ {
+ SetPersistenceManager( libPath, factoryFunctionName, nullptr );
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPersistenceManager( String^ libPath,
+ String^ factoryFunctionName, Properties<String^, String^>^ config )
+ {
+ ManagedString mg_libpath( libPath );
+ ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+ try
+ {
+ m_nativeptr->get()->setPersistenceManager(mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr, config->GetNative());
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+
+ }
+
+ // STORAGE ATTRIBUTES
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetPoolName( String^ poolName )
+ {
+ ManagedString mg_poolName( poolName );
+
+ try
+ {
+ m_nativeptr->get()->setPoolName( mg_poolName.CharPtr );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ // MAP ATTRIBUTES
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetInitialCapacity( System::Int32 initialCapacity )
+ {
+ _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+ try
+ {
+ m_nativeptr->get()->setInitialCapacity( initialCapacity );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+
+ _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetLoadFactor( Single loadFactor )
+ {
+ _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+ try
+ {
+ m_nativeptr->get()->setLoadFactor( loadFactor );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+
+ _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetConcurrencyLevel( System::Int32 concurrencyLevel )
+ {
+ _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+ try
+ {
+ m_nativeptr->get()->setConcurrencyLevel( concurrencyLevel );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+
+ _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetLruEntriesLimit( System::UInt32 entriesLimit )
+ {
+ try
+ {
+ m_nativeptr->get()->setLruEntriesLimit( entriesLimit );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetDiskPolicy( DiskPolicyType diskPolicy )
+ {
+ try
+ {
+ m_nativeptr->get()->setDiskPolicy(static_cast<native::DiskPolicyType::PolicyType>( diskPolicy ) );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCachingEnabled( bool cachingEnabled )
+ {
+ try
+ {
+ m_nativeptr->get()->setCachingEnabled( cachingEnabled );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetCloningEnabled( bool cloningEnabled )
+ {
+ try
+ {
+ m_nativeptr->get()->setCloningEnabled( cloningEnabled );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+
+ generic<class TKey, class TValue>
+ void AttributesFactory<TKey, TValue>::SetConcurrencyChecksEnabled( bool concurrencyChecksEnabled )
+ {
+ try
+ {
+ m_nativeptr->get()->setConcurrencyChecksEnabled( concurrencyChecksEnabled );
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+ }
+ // FACTORY METHOD
+
+ generic<class TKey, class TValue>
+ Apache::Geode::Client::RegionAttributes<TKey, TValue>^ AttributesFactory<TKey, TValue>::CreateRegionAttributes()
+ {
+ _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+ try
+ {
+ native::RegionAttributesPtr nativeptr = m_nativeptr->get()->createRegionAttributes();
+ return Apache::Geode::Client::RegionAttributes<TKey, TValue>::Create(nativeptr);
+ }
+ finally
+ {
+ GC::KeepAlive(m_nativeptr);
+ }
+
+ _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+ }
+ } // namespace Client
+ } // namespace Geode
+} // namespace Apache
+