blob: ad2b13a3a2570f467e10fac5192a37bc6078265e [file] [log] [blame]
/* initialize a memory allocator */
m_act = new NonVolatileMemAllocator(
/*tooltip,a memory service instance*/Utils.getNonVolatileMemoryAllocatorService("pmalloc")/*tooltip*/,
/*tooltip,the capacity*/1024 * 1024 * 1024L/*tooltip*/,
/*tooltip,an uri associated with memory service*/"./pobj_hashmaps.dat"/*tooltip*/,
/*tooltip,open a new memory space*/true/*tooltip*/);
/* prepare generic types in order as an array for durable map
you can specify any durable type here
e.g. durable object, durable buffer/chunk, durable list/map/set */
DurableType gtypes[] = {/*tooltip,map key is string type*/DurableType.STRING/*tooltip*/, /*tooltip, map value is integer type*/DurableType.INTEGER/*tooltip*/};
/* create a new durable map through durable map factory,
the durable map store your objects on external memory-class storage
with no need to do serialization at all */
DurableHashMap<String, Integer> map = DurableHashMapFactory.create(
/*tooltip,a memory allocator*/m_act/*tooltip*/, /*tooltip,an array of generic type factory proxy for user durable generic object*/null/*tooltip*/, /*tooltip,an array of generic types*/gtypes/*tooltip*/, /*tooltip,initial capacity*/mInitialCapacity/*tooltip*/, /*tooltip,autoclaim is disabled*/false/*tooltip*/);
/* fetch the handler of the durable map,
it is just a long type value.
it is used for restore this durable map back later,
you can put this handler anywhere you like
e.g. durable key-value store, durable buffer */
Long handler = map.getHandler();
/* use this durable map as usual */
Integer val = map.put("hello", 1);
AssertJUnit.assertNull(val);
val = map.put("hello", 3);
AssertJUnit.assertEquals(1, val.intValue());
val = map.put("world", 2);
AssertJUnit.assertNull(val);
val = map.remove("world");
AssertJUnit.assertEquals(2, val.intValue());
/* restore the same durable map from the stored handler
with no need to do de-serializatoin */
DurableHashMap<String, Integer> restoredMap = DurableHashMapFactory.restore(
m_act, null, gtypes, /*tooltip,the handler used to restore durable map*/handler/*tooltip*/, false);
val = restoredMap.get("hello");
AssertJUnit.assertEquals(3, val.intValue());
val = restoredMap.get("world");
AssertJUnit.assertNull(val);
val = restoredMap.get("test");
AssertJUnit.assertNull(val);