20#ifndef GEODE_PDXINSTANCE_H_ 
   21#define GEODE_PDXINSTANCE_H_ 
   24#include "PdxFieldTypes.hpp" 
   25#include "PdxSerializable.hpp" 
   30class WritablePdxInstance;
 
   32class CacheableObjectArray;
 
   76  virtual 
bool hasField(const std::
string& fieldname) = 0;
 
   90  virtual std::shared_ptr<
Cacheable> getCacheableField(
 
   91      const std::
string& fieldname) const = 0;
 
  101  virtual 
bool getBooleanField(const std::
string& fieldname) const = 0;
 
  111  virtual int8_t getByteField(const std::
string& fieldname) const = 0;
 
  121  virtual int16_t getShortField(const std::
string& fieldname) const = 0;
 
  129  virtual int32_t getIntField(const std::
string& fieldname) const = 0;
 
  139  virtual int64_t getLongField(const std::
string& fieldname) const = 0;
 
  149  virtual 
float getFloatField(const std::
string& fieldname) const = 0;
 
  159  virtual 
double getDoubleField(const std::
string& fieldname) const = 0;
 
  168  virtual 
char16_t getCharField(const std::
string& fieldName) const = 0;
 
  179  virtual std::
string getStringField(const std::
string& fieldname) const = 0;
 
  189  virtual std::vector<
bool> getBooleanArrayField(
 
  190      const std::
string& fieldname) const = 0;
 
  200  virtual std::vector<int8_t> getByteArrayField(
 
  201      const std::
string& fieldname) const = 0;
 
  211  virtual std::vector<int16_t> getShortArrayField(
 
  212      const std::
string& fieldname) const = 0;
 
  222  virtual std::vector<int32_t> getIntArrayField(
 
  223      const std::
string& fieldname) const = 0;
 
  233  virtual std::vector<int64_t> getLongArrayField(
 
  234      const std::
string& fieldname) const = 0;
 
  244  virtual std::vector<
float> getFloatArrayField(
 
  245      const std::
string& fieldname) const = 0;
 
  255  virtual std::vector<
double> getDoubleArrayField(
 
  256      const std::
string& fieldname) const = 0;
 
  267  virtual std::vector<
char16_t> getCharArrayField(
 
  268      const std::
string& fieldName) const = 0;
 
  278  virtual std::vector<std::
string> getStringArrayField(
 
  279      const std::
string& fieldname) const = 0;
 
  292      const std::
string& fieldname) const = 0;
 
  306  virtual 
void getField(const std::
string& fieldName, int8_t*** value,
 
  307                        int32_t& arrayLength,
 
  308                        int32_t*& elementLength) const = 0;
 
  324      const std::
string& fieldname) const = 0;
 
  337  virtual 
bool isIdentityField(const std::
string& fieldname) = 0;
 
  366  virtual int32_t hashcode() const override = 0;
 
  379  virtual std::
string toString() const override = 0;
 
  429  virtual 
size_t objectSize() const override = 0;
 
  443  virtual 
void toData(
PdxWriter& output) const override = 0;
 
  458  virtual const std::
string& getClassName() const override = 0;
 
  468  virtual PdxFieldTypes getFieldType(const std::
string& fieldname) const = 0;
 
Contains generic template definitions for Cacheable types and instantiations for built-in types.
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.
Implement a date object based on epoch of January 1, 1970 00:00:00 GMT that can serve as a distributa...
Definition: CacheableDate.hpp:45
Represents a cacheable key.
Definition: CacheableKey.hpp:40
Implements an immutable Vector of Cacheable objects that can serve as a distributable object for cach...
Definition: CacheableObjectArray.hpp:49
PdxInstance provides run time access to the fields of a PDX without deserializing the PDX.
Definition: PdxInstance.hpp:51
~PdxInstance() noexcept override=default
destructor
A PdxReader will be passed to PdxSerializable.fromData or during deserialization of a PDX.
Definition: PdxReader.hpp:58
An interface for objects whose contents can be serialized as PDX types.
Definition: PdxSerializable.hpp:41
A PdxWriter will be passed to PdxSerializable.toData when it is serializing the domain class.
Definition: PdxWriter.hpp:41
This base class is the superclass of all user objects in the cache that can be serialized.
Definition: Serializable.hpp:53
WritablePdxInstance is a PdxInstance that also supports field modification using the setField method.
Definition: WritablePdxInstance.hpp:40