Index: src/client/c/hu/varadiistvan/xplra/xplra.cc
===================================================================
--- src/client/c/hu/varadiistvan/xplra/xplra.cc	(revision 23)
+++ src/client/c/hu/varadiistvan/xplra/xplra.cc	(revision 24)
@@ -414,4 +414,95 @@
 //------------------------------------------------------------------------------
 
+extern "C" ssize_t xplra_get_float_array(float* dest, size_t length, size_t offset,
+                                         int connectionID, const char* name)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return -1;
+    try {
+        return connection->getFloatArray(name, dest, length, offset);
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" float* xplra_get_float_array_new(size_t* length, size_t offset,
+                                            int connectionID, const char* name)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        return connection->getFloatArray(name, *length, offset);
+    } catch (...) {
+        connection->handleException();
+        return 0;
+    }
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" ssize_t xplra_get_int_array(int32_t* dest, size_t length, size_t offset,
+                                       int connectionID, const char* name)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return -1;
+    try {
+        return connection->getIntArray(name, dest, length, offset);
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" int32_t* xplra_get_int_array_new(size_t* length, size_t offset,
+                                            int connectionID, const char* name)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        return connection->getIntArray(name, *length, offset);
+    } catch (...) {
+        connection->handleException();
+        return 0;
+    }
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" ssize_t xplra_get_byte_array(void* dest, size_t length, size_t offset,
+                                        int connectionID, const char* name)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return -1;
+    try {
+        return connection->getByteArray(name, reinterpret_cast<uint8_t*>(dest),
+                                        length, offset);
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" uint8_t* xplra_get_byte_array_new(size_t* length, size_t offset,
+                                             int connectionID, const char* name)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        return connection->getByteArray(name, *length, offset);
+    } catch (...) {
+        connection->handleException();
+        return 0;
+    }
+}
+
+//------------------------------------------------------------------------------
+
 extern "C" int xplra_disconnect(int connectionID)
 {
Index: src/client/c/hu/varadiistvan/xplra/xplra.h
===================================================================
--- src/client/c/hu/varadiistvan/xplra/xplra.h	(revision 23)
+++ src/client/c/hu/varadiistvan/xplra/xplra.h	(revision 24)
@@ -32,4 +32,9 @@
 /*----------------------------------------------------------------------------*/
 
+#include <stdlib.h>
+#include <inttypes.h>
+
+/*----------------------------------------------------------------------------*/
+
 #ifdef __cplusplus
 extern "C" {
@@ -150,4 +155,94 @@
 
 /**
+ * Get an array of floats into a buffer.
+ *
+ * @param dest the array into which to get the data
+ * @param length the length of the destination buffer
+ * @param offset the offset from which to query the array
+ *
+ * @return the actual number of elements returned in case of success,
+ * -1 on error
+ */
+ssize_t xplra_get_float_array(float* dest, size_t length, size_t offset,
+                              int connectionID, const char* name);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Get an array of floats into a newly allocated buffer.
+ *
+ * @param length pointer to a variable containing the length to
+ * query. On return it will be set to the actual length, which can be
+ * less than or equal to the input value.
+ * @param offset the offset from which to query the array
+ *
+ * @return the new array on success, 0 on error
+ */
+float* xplra_get_float_array_new(size_t* length, size_t offset,
+                                 int connectionID, const char* name);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Get an array of integers into a buffer.
+ *
+ * @param dest the array into which to get the data
+ * @param length the length of the destination buffer
+ * @param offset the offset from which to query the array
+ *
+ * @return the actual number of elements returned in case of success,
+ * -1 on error
+ */
+ssize_t xplra_get_int_array(int32_t* dest, size_t length, size_t offset,
+                            int connectionID, const char* name);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Get an array of integers into a newly allocated buffer.
+ *
+ * @param length pointer to a variable containing the length to
+ * query. On return it will be set to the actual length, which can be
+ * less than or equal to the input value.
+ * @param offset the offset from which to query the array
+ *
+ * @return the new array on success, 0 on error
+ */
+int32_t* xplra_get_int_array_new(size_t* length, size_t offset,
+                                 int connectionID, const char* name);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Get an array of bytes into a buffer.
+ *
+ * @param dest the array into which to get the data
+ * @param length the length of the destination buffer
+ * @param offset the offset from which to query the array
+ *
+ * @return the actual number of elements returned in case of success,
+ * -1 on error
+ */
+ssize_t xplra_get_byte_array(void* dest, size_t length, size_t offset,
+                             int connectionID, const char* name);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Get an array of bytes into a newly allocated buffer.
+ *
+ * @param length pointer to a variable containing the length to
+ * query. On return it will be set to the actual length, which can be
+ * less than or equal to the input value.
+ * @param offset the offset from which to query the array
+ *
+ * @return the new array on success, 0 on error
+ */
+uint8_t* xplra_get_byte_array_new(size_t* length, size_t offset,
+                                  int connectionID, const char* name);
+
+/*----------------------------------------------------------------------------*/
+
+/**
  * Destroy the connection with the given ID.
  *
