Apache Geode Native C++ Reference 1.15.0
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
28namespace apache {
29namespace geode {
30namespace client {
31
32class CacheImpl;
33class PdxSerializer;
34
39class 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_
Registry for custom serializable types, both PDXSerializable and DataSerializable.
Definition: TypeRegistry.hpp:39
void registerType(TypeFactoryMethod creationFunction, int32_t id)
register an instance factory method for a given type.
void registerPdxType(TypeFactoryMethodPdx creationFunction)
register an Pdx instance factory method for a given type.
void registerPdxSerializer(std::shared_ptr< PdxSerializer > pdxSerializer)
Register the PDX serializer which can handle serialization for instances of user domain classes.

Apache Geode C++ Cache API Documentation