Apache Geode Native C++ Reference 1.15.0
Cache.hpp
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
20#ifndef GEODE_CACHE_H_
21#define GEODE_CACHE_H_
22
23#include <string>
24
25#include <geode/util/LogLevel.hpp>
26
27#include "GeodeCache.hpp"
28#include "internal/geode_globals.hpp"
29
30namespace apache {
31namespace geode {
32namespace client {
33
34class AuthenticatedView;
35class AuthInitialize;
36class CacheFactory;
37class CacheImpl;
38class CacheRegionHelper;
39class CacheTransactionManager;
40class DataInput;
41class DataOutput;
42class Pool;
43class PoolFactory;
44class PoolManager;
45class Properties;
46class QueryService;
47class Region;
48class RegionFactory;
49class TypeRegistry;
50enum class RegionShortcut;
51
65class APACHE_GEODE_EXPORT Cache : public GeodeCache {
66 public:
75 virtual RegionFactory createRegionFactory(RegionShortcut regionShortcut);
76
83 void initializeDeclarativeCache(const std::string& cacheXml) override;
84
88 const std::string& getName() const override;
89
98 bool isClosed() const override;
99
105
115 void close() override;
116
127 virtual void close(bool keepalive);
128
139 std::shared_ptr<Region> getRegion(const std::string& path) const override;
140
146 std::vector<std::shared_ptr<Region>> rootRegions() const override;
147
152 std::shared_ptr<QueryService> getQueryService() override;
153
161 virtual std::shared_ptr<QueryService> getQueryService(
162 const std::string& poolName) const;
163
167 virtual void readyForEvents();
168
193 const std::shared_ptr<Properties>& userSecurityProperties,
194 const std::string& poolName);
195
201 virtual std::shared_ptr<CacheTransactionManager> getCacheTransactionManager()
202 const;
203
207 bool getPdxIgnoreUnreadFields() const override;
208
213 bool getPdxReadSerialized() const override;
214
223 const std::string& className) const override;
224
235 const std::string& className, bool expectDomainClass) const override;
236
237 virtual DataInput createDataInput(const uint8_t* m_buffer, size_t len) const;
238
239 virtual DataOutput createDataOutput() const;
240
241 virtual PoolManager& getPoolManager() const;
242
243 SystemProperties& getSystemProperties() const override;
244
248 void setLogLevel(LogLevel newLevel);
249
254 LogLevel getLogLevel();
255
256 Cache() = delete;
257 ~Cache() override;
258
259 Cache(const Cache& other) = delete;
260 Cache& operator=(const Cache& other) = delete;
261 Cache(Cache&& other) noexcept;
262 Cache& operator=(Cache&& other) noexcept;
263
264 private:
265 Cache(const std::shared_ptr<Properties>& dsProp, bool ignorePdxUnreadFields,
266 bool readPdxSerialized,
267 const std::shared_ptr<AuthInitialize>& authInitialize);
268
269 std::unique_ptr<CacheImpl> m_cacheImpl;
270
271 protected:
272 friend class CacheFactory;
273 friend class CacheRegionHelper;
274 friend class FunctionService;
275 friend class CacheXmlCreation;
276 friend class RegionXmlCreation;
277};
278
279} // namespace client
280} // namespace geode
281} // namespace apache
282
283#endif // GEODE_CACHE_H_
Creates an authenticated cache view to allow credential based access to region services.
Definition: AuthenticatedView.hpp:46
Caches are obtained from the create method on the CacheFactory#create class.
Definition: Cache.hpp:65
virtual std::shared_ptr< CacheTransactionManager > getCacheTransactionManager() const
Get the CacheTransactionManager instance for this Cache.
std::vector< std::shared_ptr< Region > > rootRegions() const override
Returns a set of root regions in the cache.
virtual AuthenticatedView createAuthenticatedView(const std::shared_ptr< Properties > &userSecurityProperties, const std::string &poolName)
Creates an authenticated cache using the given user security properties.
std::shared_ptr< QueryService > getQueryService() override
Gets the QueryService from which a new Query can be obtained.
TypeRegistry & getTypeRegistry() const
Returns the type registry that this cache was created with.
void close() override
Terminates this object cache and releases all the local resources.
PdxInstanceFactory createPdxInstanceFactory(const std::string &className, bool expectDomainClass) const override
Returns a factory that can create a PdxInstance.
virtual void close(bool keepalive)
Terminates this object cache and releases all the local resources.
LogLevel getLogLevel()
Returns the current log level.
bool getPdxReadSerialized() const override
Returns whether PdxInstance is preferred for PDX types instead of C++ object.
bool isClosed() const override
Indicates if this cache has been closed.
void setLogLevel(LogLevel newLevel)
Changes the current log level to newLogLevel.
std::shared_ptr< Region > getRegion(const std::string &path) const override
Look up a region with the full path from root.
bool getPdxIgnoreUnreadFields() const override
Returns whether Cache saves unread fields for Pdx types.
virtual void readyForEvents()
Send the "client ready" message to the server from a durable client.
PdxInstanceFactory createPdxInstanceFactory(const std::string &className) const override
Returns a factory that can create a PdxInstance.
virtual RegionFactory createRegionFactory(RegionShortcut regionShortcut)
Returns the RegionFactory to create the region.
const std::string & getName() const override
Returns the name of this cache.
void initializeDeclarativeCache(const std::string &cacheXml) override
Initializes the cache from an xml file.
virtual std::shared_ptr< QueryService > getQueryService(const std::string &poolName) const
Gets the QueryService from which a new Query can be obtained.
Top level class for configuring and using Geode on a client.This should be called once to create Cach...
Definition: CacheFactory.hpp:48
Provide operations for reading primitive data values, byte arrays, strings, Serializable objects from...
Definition: DataInput.hpp:59
Provide operations for writing primitive data values, byte arrays, strings, Serializable objects to a...
Definition: DataOutput.hpp:48
entry point for function execution
Definition: FunctionService.hpp:45
GeodeCache represents the singleton cache that must be created in order to connect to Geode server.
Definition: GeodeCache.hpp:44
PdxInstanceFactory gives you a way to create PdxInstances.
Definition: PdxInstanceFactory.hpp:52
Manages creation and access to connection pools for clients.
Definition: PoolManager.hpp:61
Provides for the configuration and creation of instances of Region.
Definition: RegionFactory.hpp:43
The SystemProperties class.
Definition: SystemProperties.hpp:44
Registry for custom serializable types, both PDXSerializable and DataSerializable.
Definition: TypeRegistry.hpp:39

Apache Geode C++ Cache API Documentation