Index: src/client/c/hu/varadiistvan/xplra/xplra.cc
===================================================================
--- src/client/c/hu/varadiistvan/xplra/xplra.cc	(revision 24)
+++ src/client/c/hu/varadiistvan/xplra/xplra.cc	(revision 25)
@@ -505,4 +505,119 @@
 //------------------------------------------------------------------------------
 
+extern "C" int xplra_set_int(int connectionID, const char* name, int value)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setInt(name, value);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" int xplra_set_float(int connectionID, const char* name, float value)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setFloat(name, value);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+//------------------------------------------------------------------------------
+
+extern "C" int xplra_set_double(int connectionID, const char* name,
+                                double value)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setDouble(name, value);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" int xplra_set_float_array(int connectionID, const char* name,
+                                     const float* values,
+                                     size_t length, size_t offset)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setFloatArray(name, values, length, offset);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" int xplra_set_int_array(int connectionID, const char* name,
+                                   const int32_t* values,
+                                   size_t length, size_t offset)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setIntArray(name, values, length, offset);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" int xplra_set_byte_array(int connectionID, const char* name,
+                                    const void* values,
+                                    size_t length, size_t offset)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setByteArray(name, reinterpret_cast<const uint8_t*>(values),
+                                 length, offset);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+/*----------------------------------------------------------------------------*/
+
+extern "C" int xplra_set_string(int connectionID, const char* name,
+                                const char* value,
+                                size_t length, size_t offset)
+{
+    Connection* connection = Slot::getConnection(connectionID);
+    if (connection==0) return 0;
+    try {
+        connection->setString(name, value, length, offset);
+        return 0;
+    } catch (...) {
+        connection->handleException();
+        return -1;
+    }
+}
+
+//------------------------------------------------------------------------------
+
 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 24)
+++ src/client/c/hu/varadiistvan/xplra/xplra.h	(revision 25)
@@ -245,4 +245,76 @@
 
 /**
+ * Set the integer dataref with the given name to the given value.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_int(int connectionID, const char* name, int value);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Set the float dataref with the given name to the given value.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_float(int connectionID, const char* name, float value);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Set the double dataref with the given name to the given value.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_double(int connectionID, const char* name, double value);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Set the array of float values with the given name from the given
+ * buffer.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_float_array(int connectionID, const char* name,
+                          const float* values, size_t length, size_t offset);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Set the array of integer values with the given name from the given
+ * buffer.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_int_array(int connectionID, const char* name,
+                        const int32_t* values, size_t length, size_t offset);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Set the array of byte values with the given name from the given
+ * buffer.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_byte_array(int connectionID, const char* name,
+                         const void* values, size_t length, size_t offset);
+
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Set the array of byte values with the given name from the given
+ * string. The string will be padded with 0 if it has a length less
+ * than the given length.
+ *
+ * @return 0 on success, -1 on error.
+ */
+int xplra_set_string(int connectionID, const char* name,
+                     const char* value, size_t length, size_t offset);
+
+/*----------------------------------------------------------------------------*/
+
+/**
  * Destroy the connection with the given ID.
  *
