| /*========================================================================= |
| * Copyright (c) 2004-2014 Pivotal Software, Inc. All Rights Reserved. |
| * This product is protected by U.S. and international copyright |
| * and intellectual property laws. Pivotal products are covered by |
| * more patents listed at http://www.pivotal.io/patents. |
| *========================================================================= |
| */ |
| |
| #include "../Cache.hpp" |
| #include "CacheXmlCreation.hpp" |
| #include "CacheImpl.hpp" |
| #include "PoolAttributes.hpp" |
| |
| using namespace gemfire; |
| |
| void CacheXmlCreation::addRootRegion(RegionXmlCreation* root) |
| { |
| rootRegions.push_back(root); |
| } |
| |
| void CacheXmlCreation::addPool(PoolXmlCreation* pool) |
| { |
| pools.push_back(pool); |
| } |
| |
| void CacheXmlCreation::create(Cache* cache) |
| { |
| m_cache = cache; |
| m_cache->m_cacheImpl->setPdxIgnoreUnreadFields(m_pdxIgnoreUnreadFields); |
| m_cache->m_cacheImpl->setPdxReadSerialized(m_readPdxSerialized); |
| // Create any pools before creating any regions. |
| |
| std::vector<PoolXmlCreation*>::iterator pool = pools.begin(); |
| while (pool != pools.end()) { |
| (*pool)->create(); |
| ++pool; |
| } |
| |
| std::vector<RegionXmlCreation*>::iterator start = rootRegions.begin(); |
| while (start != rootRegions.end()) { |
| (*start)->createRoot(cache); |
| ++start; |
| } |
| } |
| |
| void CacheXmlCreation::setPdxIgnoreUnreadField(bool ignore) |
| { |
| //m_cache->m_cacheImpl->setPdxIgnoreUnreadFields(ignore); |
| m_pdxIgnoreUnreadFields = ignore; |
| } |
| |
| void CacheXmlCreation::setPdxReadSerialized(bool val) |
| { |
| //m_cache->m_cacheImpl->setPdxIgnoreUnreadFields(ignore); |
| m_readPdxSerialized = val; |
| } |
| |
| CacheXmlCreation::CacheXmlCreation() |
| /* adongre |
| * CID 28926: Uninitialized pointer field (UNINIT_CTOR) |
| */ |
| : m_cache((Cache*)0) |
| { |
| m_pdxIgnoreUnreadFields = false; |
| m_readPdxSerialized = false; |
| } |
| |
| CacheXmlCreation::~CacheXmlCreation() |
| { |
| std::vector<RegionXmlCreation*>::iterator start = rootRegions.begin(); |
| while (start != rootRegions.end()) { |
| delete *start; |
| *start = NULL; |
| ++start; |
| } |
| std::vector<PoolXmlCreation*>::iterator pool = pools.begin(); |
| while (pool != pools.end()) { |
| delete *pool; |
| *pool = NULL; |
| ++pool; |
| } |
| } |