VMware Tanzu GemFire Native C++ Reference  10.1.5
TypeRegistry.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_TYPEREGISTRY_H_
21 #define GEODE_TYPEREGISTRY_H_
22 
23 #include <memory>
24 
25 #include "Serializable.hpp"
26 #include "internal/geode_globals.hpp"
27 
28 namespace apache {
29 namespace geode {
30 namespace client {
31 
32 class CacheImpl;
33 class PdxSerializer;
34 
39 class APACHE_GEODE_EXPORT TypeRegistry {
40  public:
41  explicit TypeRegistry(CacheImpl* cache);
42 
51  void registerType(TypeFactoryMethod creationFunction, int32_t id);
52 
59  void registerPdxType(TypeFactoryMethodPdx creationFunction);
60 
66  void registerPdxSerializer(std::shared_ptr<PdxSerializer> pdxSerializer);
67 
68  TypeFactoryMethod getCreationFunction(int32_t);
69 
70  std::shared_ptr<PdxSerializer> getPdxSerializer();
71 
72  private:
73  CacheImpl* m_cache;
74 };
75 
76 } // namespace client
77 } // namespace geode
78 } // namespace apache
79 
80 #endif // GEODE_TYPEREGISTRY_H_
apache::geode::client::TypeRegistry
Registry for custom serializable types, both PDXSerializable and DataSerializable.
Definition: TypeRegistry.hpp:39
apache::geode::client::TypeRegistry::registerPdxType
void registerPdxType(TypeFactoryMethodPdx creationFunction)
register an Pdx instance factory method for a given type.
apache::geode::client::TypeRegistry::registerPdxSerializer
void registerPdxSerializer(std::shared_ptr< PdxSerializer > pdxSerializer)
Register the PDX serializer which can handle serialization for instances of user domain classes.
apache::geode::client::TypeRegistry::registerType
void registerType(TypeFactoryMethod creationFunction, int32_t id)
register an instance factory method for a given type.

Apache Geode C++ Cache API Documentation