protected override DataTable getVariableImpl(VariableDefinition def, CallerController <CallerData> caller,
                                              RequestController <RequestData> request)
 {
     try
     {
         IncomingAggreGateCommand ans = sendGetVariable(def.getName());
         return(decodeRemoteDataTable(def.getFormat(), ans.getEncodedDataTableFromReply()));
     }
     catch (Exception ex)
     {
         Log.CONTEXT_VARIABLES.debug("Error getting variable '" + def.getName() + "' from context '" + this.getPath() + "'", ex);
         throw new ContextException(ex.Message, ex);
     }
 }
 protected override Boolean setVariableImpl(VariableDefinition def, CallerController <CallerData> caller,
                                            RequestController <RequestData> request, DataTable value)
 {
     try
     {
         controller.sendCommandAndCheckReplyCode(ClientCommandUtils.setVariableOperation(this.getPath(), def.getName(), value.encode(controller.createClassicEncodingSettings(true))));
         return(true);
     }
     catch (Exception ex)
     {
         Log.CONTEXT_VARIABLES.debug("Error setting veriable '" + def.getName() + "' of context '" + this.getPath() + "'", ex);
         throw new ContextException(ex.Message, ex);
     }
 }