     switch (host_device_interface->command) {
       
       case HostDeviceInterface::GET_VALUE: {
-        socket_client.sendCMD(HostDeviceInterface::GET_VALUE, host_device_interface->param1);
+        socket_client->sendCMD(HostDeviceInterface::GET_VALUE, host_device_interface->param1);
         
-        while (!socket_client.isNewResultInt) {
-          socket_client.nextEvent();
+        while (!socket_client->isNewResultInt) {
+          socket_client->nextEvent();
         }
         
-        socket_client.isNewResultInt = false;
-        host_device_interface->result_int = socket_client.resultInt;
+        socket_client->isNewResultInt = false;
+        host_device_interface->result_int = socket_client->resultInt;
 
         //pthread_mutex_lock((pthread_mutex_t *) &mutex_result_available);
         host_device_interface->is_result_available = true; // dieses statement zieht nicht!!!

  }

};

// global HostDeviceInterface for SIGINT handler
HostDeviceInterface *h_host_device_interface;

      }

      case HostDeviceInterface::DONE: {
        socket_client->sendCMD(HostDeviceInterface::DONE);
        host_device_interface->is_result_available = true;
        // block until result was consumed
        while (host_device_interface->is_result_available) {}
