29 #ifndef HU_VARADIISTVAN_XPLRA_MULTIBUFFER_H
30 #define HU_VARADIISTVAN_XPLRA_MULTIBUFFER_H
33 #include "Exception.h"
42 namespace hu {
namespace varadiistvan {
namespace xplra {
99 size_t getSize() const noexcept;
116 size_t getCopyLength(
size_t userLength,
size_t userOffset) const noexcept;
175 size_t addInt(const std::
string&
name) noexcept;
200 size_t offset = 0) noexcept;
209 size_t offset = 0) noexcept;
218 size_t offset = 0) noexcept;
259 void setInt(
size_t id,
int value);
264 int getInt(
size_t id) const;
269 const int32_t&
getIntRef(
size_t id) const;
279 void setFloat(
size_t id,
float value);
371 size_t setIntArray(
size_t id, const int32_t* value,
448 size_t setString(
size_t id, const std::
string& value,
530 const
void*
getData(
size_t id, uint8_t
type) const;
535 template <typename T, uint8_t
type>
size_t
542 template <typename T, uint8_t
type>
size_t
549 template <typename T, uint8_t
type> const T*
bool isArray() const noexcept
size_t getAlignment() const noexcept
size_t getSize() const noexcept
DataRef(const std::string &name, uint8_t type, const DataRef *previous=0, size_t length=0, size_t offset=0) noexcept
size_t getCopyLength(size_t userLength, size_t userOffset) const noexcept
bool unregisterSafelyFromXPlane() noexcept
double getDouble(size_t id) const
size_t setIntArray(size_t id, const int32_t *value, size_t length=0, size_t offset=0)
const DataRef & getDataRef(size_t id, uint8_t type) const
void writeSpec(uint8_t command) const
std::vector< DataRef > dataRefs
size_t getByteArray(size_t id, uint8_t *value, size_t length=0, size_t offset=0) const
std::string getString(size_t id, size_t offset=0) const
const int32_t & getIntRef(size_t id) const
void * getData(size_t id, uint8_t type)
size_t addIntArray(const std::string &name, size_t length, size_t offset=0) noexcept
size_t addByteArray(const std::string &name, size_t length, size_t offset=0) noexcept
void reregisterInXPlane()
void unfinalize() noexcept
size_t setByteArray(size_t id, const uint8_t *value, size_t length=0, size_t offset=0)
XPlane & getXPlane() const noexcept
void unregisterFromXPlane()
void setInt(size_t id, int value)
size_t addDouble(const std::string &name) noexcept
const char * getStringPtr(size_t id, size_t offset=0) const
const double & getDoubleRef(size_t id) const
size_t getIntArray(size_t id, int32_t *value, size_t length=0, size_t offset=0) const
void setDouble(size_t id, double value)
virtual void doExecute()=0
size_t getFloatArray(size_t id, float *value, size_t length=0, size_t offset=0) const
const float & getFloatRef(size_t id) const
const DataRef * getLastDataRef() const noexcept
size_t setArray(size_t id, const T *value, size_t length, size_t offset)
size_t addFloat(const std::string &name) noexcept
size_t setString(size_t id, const std::string &value, size_t offset=0)
int getInt(size_t id) const
size_t setFloatArray(size_t id, const float *value, size_t length=0, size_t offset=0)
size_t addInt(const std::string &name) noexcept
size_t addFloatArray(const std::string &name, size_t length, size_t offset=0) noexcept
size_t getArray(size_t id, T *value, size_t length, size_t offset) const
void forgetRegistration() noexcept
float getFloat(size_t id) const
virtual void doExecuteUnregistered()=0
uint8_t unregisterCommand
void setFloat(size_t id, float value)
Python client module for the X-Plane Remote Access plugin.