3 #ifndef GEODE_REGIONATTRIBUTES_H_
4 #define GEODE_REGIONATTRIBUTES_H_
27 #include "geode_globals.hpp"
30 #include "ExpirationAttributes.hpp"
33 #include "PartitionResolver.hpp"
67 class AttributesFactory;
68 class AttributesMutator;
110 int getRegionTimeToLive();
117 int getRegionIdleTimeout();
124 int getEntryTimeToLive();
131 int getEntryIdleTimeout();
145 int getInitialCapacity()
const;
150 float getLoadFactor()
const;
156 uint8_t getConcurrencyLevel()
const;
162 uint32_t getLruEntriesLimit()
const;
180 const char* getPoolName()
const;
197 virtual int32_t classId()
const;
200 virtual int8_t typeId()
const;
209 const char* getCacheLoaderLibrary();
215 const char* getCacheLoaderFactory();
221 const char* getCacheListenerLibrary();
227 const char* getCacheListenerFactory();
233 const char* getCacheWriterLibrary();
239 const char* getCacheWriterFactory();
245 const char* getPartitionResolverLibrary();
251 const char* getPartitionResolverFactory();
264 void validateSerializableAttributes();
269 const char* getEndpoints();
274 bool getClientNotificationEnabled()
const;
280 const char* getPersistenceLibrary();
286 const char* getPersistenceFactory();
307 bool getCloningEnabled() {
return m_isClonable; }
320 static int32_t compareStringAttribute(
char* attributeA,
char* attributeB);
324 static void copyStringAttribute(
char*& lhs,
const char* rhs);
326 void setCacheListener(
const char* libpath,
const char* factoryFuncName);
327 void setCacheLoader(
const char* libpath,
const char* factoryFuncName);
328 void setCacheWriter(
const char* libpath,
const char* factoryFuncName);
329 void setPartitionResolver(
const char* libpath,
const char* factoryFuncName);
330 void setPersistenceManager(
const char* lib,
const char* func,
332 void setEndpoints(
const char* endpoints);
333 void setPoolName(
const char* poolName);
334 void setCloningEnabled(
bool isClonable);
335 void setCachingEnabled(
bool enable);
336 void setLruEntriesLimit(
int limit);
338 void setConcurrencyChecksEnabled(
bool enable);
339 inline bool getEntryExpiryEnabled()
const {
340 return (m_entryTimeToLive != 0 || m_entryIdleTimeout != 0);
343 inline bool getRegionExpiryEnabled()
const {
344 return (m_regionTimeToLive != 0 || m_regionIdleTimeout != 0);
348 RegionAttributes(
const RegionAttributes& rhs);
356 CacheWriterPtr m_cacheWriter;
357 CacheLoaderPtr m_cacheLoader;
358 CacheListenerPtr m_cacheListener;
359 PartitionResolverPtr m_partitionResolver;
360 uint32_t m_lruEntriesLimit;
362 uint32_t m_maxValueDistLimit;
363 uint32_t m_entryIdleTimeout;
364 uint32_t m_entryTimeToLive;
365 uint32_t m_regionIdleTimeout;
366 uint32_t m_regionTimeToLive;
367 uint32_t m_initialCapacity;
369 uint8_t m_concurrencyLevel;
370 char* m_cacheLoaderLibrary;
371 char* m_cacheWriterLibrary;
372 char* m_cacheListenerLibrary;
373 char* m_partitionResolverLibrary;
374 char* m_cacheLoaderFactory;
375 char* m_cacheWriterFactory;
376 char* m_cacheListenerFactory;
377 char* m_partitionResolverFactory;
380 bool m_clientNotificationEnabled;
381 char* m_persistenceLibrary;
382 char* m_persistenceFactory;
383 PropertiesPtr m_persistenceProperties;
384 PersistenceManagerPtr m_persistenceManager;
387 bool m_isConcurrencyChecksEnabled;
388 friend class AttributesFactory;
389 friend class AttributesMutator;
391 friend class CacheImpl;
393 friend class RegionInternal;
394 friend class RegionXmlCreation;
397 const RegionAttributes& operator=(
const RegionAttributes&);
403 #endif // GEODE_REGIONATTRIBUTES_H_