20#ifndef GEODE_CACHEABLEBUILTINS_H_
21#define GEODE_CACHEABLEBUILTINS_H_
31#include "CacheableString.hpp"
32#include "Serializable.hpp"
33#include "Serializer.hpp"
34#include "internal/CacheableBuiltinTemplates.hpp"
35#include "internal/CacheableKeys.hpp"
46 internal::CacheableKeyPrimitive<bool, internal::DSCode::CacheableBoolean>;
47extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
48 internal::CacheableKeyPrimitive<bool, internal::DSCode::CacheableBoolean>;
51 return CacheableBoolean::create(value);
55 return CacheableBoolean::create(value);
60 return static_cast<std::shared_ptr<Cacheable>
>(
nullptr);
68 internal::CacheableKeyPrimitive<int8_t, internal::DSCode::CacheableByte>;
69extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
70 internal::CacheableKeyPrimitive<int8_t, internal::DSCode::CacheableByte>;
73 return CacheableByte::create(value);
77 return CacheableByte::create(value);
85 internal::CacheableKeyPrimitive<double, internal::DSCode::CacheableDouble>;
86extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
87 internal::CacheableKeyPrimitive<double, internal::DSCode::CacheableDouble>;
90 return CacheableDouble::create(value);
94 return CacheableDouble::create(value);
103 internal::CacheableKeyPrimitive<float, internal::DSCode::CacheableFloat>;
104extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
105 internal::CacheableKeyPrimitive<float, internal::DSCode::CacheableFloat>;
108 return CacheableFloat::create(value);
112 return CacheableFloat::create(value);
120 internal::CacheableKeyPrimitive<int16_t, internal::DSCode::CacheableInt16>;
121extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
122 internal::CacheableKeyPrimitive<int16_t, internal::DSCode::CacheableInt16>;
125 return CacheableInt16::create(value);
129 return CacheableInt16::create(value);
137 internal::CacheableKeyPrimitive<int32_t, internal::DSCode::CacheableInt32>;
138extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
139 internal::CacheableKeyPrimitive<int32_t, internal::DSCode::CacheableInt32>;
142 return CacheableInt32::create(value);
146 return CacheableInt32::create(value);
154 internal::CacheableKeyPrimitive<int64_t, internal::DSCode::CacheableInt64>;
155extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
156 internal::CacheableKeyPrimitive<int64_t, internal::DSCode::CacheableInt64>;
159 return CacheableInt64::create(value);
163 return CacheableInt64::create(value);
171 internal::CacheableKeyPrimitive<char16_t,
172 internal::DSCode::CacheableCharacter>;
173extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
174 internal::CacheableKeyPrimitive<char16_t,
175 internal::DSCode::CacheableCharacter>;
178 return CacheableCharacter::create(value);
182 return CacheableCharacter::create(value);
190 internal::CacheableArrayPrimitive<int8_t, internal::DSCode::CacheableBytes>;
191extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
192 internal::CacheableArrayPrimitive<int8_t, internal::DSCode::CacheableBytes>;
199 internal::CacheableArrayPrimitive<bool, internal::DSCode::BooleanArray>;
200extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
201 internal::CacheableArrayPrimitive<bool, internal::DSCode::BooleanArray>;
208 internal::CacheableArrayPrimitive<char16_t, internal::DSCode::CharArray>;
209extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
210 internal::CacheableArrayPrimitive<char16_t, internal::DSCode::CharArray>;
217 internal::CacheableArrayPrimitive<double,
218 internal::DSCode::CacheableDoubleArray>;
219extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
220 internal::CacheableArrayPrimitive<double,
221 internal::DSCode::CacheableDoubleArray>;
228 internal::CacheableArrayPrimitive<float,
229 internal::DSCode::CacheableFloatArray>;
230extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
231 internal::CacheableArrayPrimitive<float,
232 internal::DSCode::CacheableFloatArray>;
239 internal::CacheableArrayPrimitive<int16_t,
240 internal::DSCode::CacheableInt16Array>;
241extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
242 internal::CacheableArrayPrimitive<int16_t,
243 internal::DSCode::CacheableInt16Array>;
250 internal::CacheableArrayPrimitive<int32_t,
251 internal::DSCode::CacheableInt32Array>;
252extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
253 internal::CacheableArrayPrimitive<int32_t,
254 internal::DSCode::CacheableInt32Array>;
261 internal::CacheableArrayPrimitive<int64_t,
262 internal::DSCode::CacheableInt64Array>;
263extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
264 internal::CacheableArrayPrimitive<int64_t,
265 internal::DSCode::CacheableInt64Array>;
272 internal::CacheableArrayPrimitive<std::shared_ptr<CacheableString>,
273 internal::DSCode::CacheableStringArray>;
274extern template class APACHE_GEODE_EXTERN_TEMPLATE_EXPORT
275 internal::CacheableArrayPrimitive<std::shared_ptr<CacheableString>,
276 internal::DSCode::CacheableStringArray>;
286 :
public internal::CacheableContainerPrimitive<
287 std::vector<std::shared_ptr<Cacheable>>,
288 internal::DSCode::CacheableVector, CacheableVector> {
290 using CacheableContainerPrimitive::CacheableContainerPrimitive;
293template class internal::CacheableContainerPrimitive<
294 std::vector<std::shared_ptr<Cacheable>>, internal::DSCode::CacheableVector,
302 :
public internal::CacheableContainerPrimitive<
303 HashMapOfCacheable, internal::DSCode::CacheableHashMap,
306 using CacheableContainerPrimitive::CacheableContainerPrimitive;
309template class internal::CacheableContainerPrimitive<
317 :
public internal::CacheableContainerPrimitive<
318 HashSetOfCacheableKey, internal::DSCode::CacheableHashSet,
321 using CacheableContainerPrimitive::CacheableContainerPrimitive;
324template class internal::CacheableContainerPrimitive<
325 HashSetOfCacheableKey, internal::DSCode::CacheableHashSet,
333 :
public internal::CacheableContainerPrimitive<
334 std::vector<std::shared_ptr<Cacheable>>,
335 internal::DSCode::CacheableArrayList, CacheableArrayList> {
337 using CacheableContainerPrimitive::CacheableContainerPrimitive;
340template class internal::CacheableContainerPrimitive<
341 std::vector<std::shared_ptr<Cacheable>>,
349 :
public internal::CacheableContainerPrimitive<
350 std::vector<std::shared_ptr<Cacheable>>,
351 internal::DSCode::CacheableLinkedList, CacheableLinkedList> {
353 using CacheableContainerPrimitive::CacheableContainerPrimitive;
356template class internal::CacheableContainerPrimitive<
357 std::vector<std::shared_ptr<Cacheable>>,
365 :
public internal::CacheableContainerPrimitive<
366 std::vector<std::shared_ptr<Cacheable>>,
367 internal::DSCode::CacheableStack, CacheableStack> {
369 using CacheableContainerPrimitive::CacheableContainerPrimitive;
372template class internal::CacheableContainerPrimitive<
373 HashMapOfCacheable, internal::DSCode::CacheableStack,
CacheableStack>;
380 :
public internal::CacheableContainerPrimitive<
381 HashMapOfCacheable, internal::DSCode::CacheableHashTable,
382 CacheableHashTable> {
384 using CacheableContainerPrimitive::CacheableContainerPrimitive;
387template class internal::CacheableContainerPrimitive<
388 HashMapOfCacheable, internal::DSCode::CacheableHashTable,
399 :
public internal::CacheableContainerPrimitive<
400 HashMapOfCacheable, internal::DSCode::CacheableIdentityHashMap,
401 CacheableIdentityHashMap> {
403 using CacheableContainerPrimitive::CacheableContainerPrimitive;
406template class internal::CacheableContainerPrimitive<
407 HashMapOfCacheable, internal::DSCode::CacheableIdentityHashMap,
418 :
public internal::CacheableContainerPrimitive<
419 HashSetOfCacheableKey, internal::DSCode::CacheableLinkedHashSet,
420 CacheableLinkedHashSet> {
422 using CacheableContainerPrimitive::CacheableContainerPrimitive;
425template class internal::CacheableContainerPrimitive<
426 HashSetOfCacheableKey, internal::DSCode::CacheableLinkedHashSet,
internal::CacheableArrayPrimitive< int32_t, internal::DSCode::CacheableInt32Array > CacheableInt32Array
An immutable wrapper for array of 32-bit integers that can serve as a distributable object for cachin...
internal::CacheableArrayPrimitive< int16_t, internal::DSCode::CacheableInt16Array > CacheableInt16Array
An immutable wrapper for array of 16-bit integers that can serve as a distributable object for cachin...
internal::CacheableArrayPrimitive< int8_t, internal::DSCode::CacheableBytes > CacheableBytes
An immutable wrapper for byte arrays that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:190
internal::CacheableKeyPrimitive< int8_t, internal::DSCode::CacheableByte > CacheableByte
An immutable wrapper for byte that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:68
internal::CacheableArrayPrimitive< float, internal::DSCode::CacheableFloatArray > CacheableFloatArray
An immutable wrapper for array of floats that can serve as a distributable object for caching.
internal::CacheableKeyPrimitive< int16_t, internal::DSCode::CacheableInt16 > CacheableInt16
An immutable wrapper for 16-bit integers that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:120
internal::CacheableKeyPrimitive< int64_t, internal::DSCode::CacheableInt64 > CacheableInt64
An immutable wrapper for 64-bit integers that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:154
internal::CacheableKeyPrimitive< int32_t, internal::DSCode::CacheableInt32 > CacheableInt32
An immutable wrapper for 32-bit integers that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:137
internal::CacheableArrayPrimitive< int64_t, internal::DSCode::CacheableInt64Array > CacheableInt64Array
An immutable wrapper for array of 64-bit integers that can serve as a distributable object for cachin...
internal::CacheableKeyPrimitive< char16_t, internal::DSCode::CacheableCharacter > CacheableCharacter
An immutable wrapper for 16-bit characters that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:172
internal::CacheableArrayPrimitive< double, internal::DSCode::CacheableDoubleArray > CacheableDoubleArray
An immutable wrapper for array of doubles that can serve as a distributable object for caching.
internal::CacheableArrayPrimitive< std::shared_ptr< CacheableString >, internal::DSCode::CacheableStringArray > CacheableStringArray
An immutable wrapper for array of strings that can serve as a distributable object for caching.
internal::CacheableKeyPrimitive< bool, internal::DSCode::CacheableBoolean > CacheableBoolean
An immutable wrapper for bool that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:46
internal::CacheableKeyPrimitive< float, internal::DSCode::CacheableFloat > CacheableFloat
An immutable wrapper for floats that can serve as.
Definition: CacheableBuiltins.hpp:103
internal::CacheableArrayPrimitive< char16_t, internal::DSCode::CharArray > CharArray
An immutable wrapper for array of wide-characters that can serve as a distributable object for cachin...
internal::CacheableArrayPrimitive< bool, internal::DSCode::BooleanArray > BooleanArray
An immutable wrapper for array of booleans that can serve as a distributable object for caching.
internal::CacheableKeyPrimitive< double, internal::DSCode::CacheableDouble > CacheableDouble
An immutable wrapper for doubles that can serve as a distributable key object for caching.
Definition: CacheableBuiltins.hpp:85
A mutable Cacheable vector wrapper that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:288
A mutable CacheableKey to Serializable hash map that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:304
A mutable CacheableKey hash set wrapper that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:319
A mutable Cacheable array list wrapper that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:335
A mutable Cacheable array list wrapper that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:351
A mutable Cacheable stack wrapper that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:367
A mutable CacheableKey to Serializable hash map that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:382
A mutable CacheableKey to Serializable hash map that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:401
A mutable CacheableKey hash set wrapper that can serve as a distributable object for caching.
Definition: CacheableBuiltins.hpp:420
static std::shared_ptr< CacheableKey > create(_T value)
Factory method that creates the key type that matches the type of value.
static std::shared_ptr< Serializable > create(_T value)
Factory method that creates the Serializable object that matches the type of value.