Example #1
0
/**
 * Handle as message from JavaScript on the worker thread.
 *
 * @param[in] message The message to parse and handle.
 */
static void HandleMessage(struct PP_Var message)
{
    const char *function_name,*error;
    struct PP_Var params,result_var;
    if ( ParseMessage(message, &function_name, &params) != 0 )
    {
        PostMessage("Error: Unable to parse message");
        return;
    }
    HandleFunc function = GetFunctionByName(function_name);
    if ( function == 0 )
    {
        PostMessage("Error: Unknown function \"%s\"", function_name); // Function name wasn't found.
        return;
    }
    // Function name was found, call it.
    int result = (*function)(params, &result_var, &error);
    if ( result != 0 )
    {
        if ( error != NULL )
        {
            PostMessage("Error: \"%s\" failed: %s.", function_name, error);
            free((void*)error);
        }
        else PostMessage("Error: \"%s\" failed.", function_name);
        return;
    }
    // Function returned an output dictionary. Send it to JavaScript.
    g_ppb_messaging->PostMessage(g_instance, result_var);
    g_ppb_var->Release(result_var);
}
Example #2
0
/** Handle as message from JavaScript on the worker thread.
 *
 * @param[in] message The message to parse and handle. */
static void HandleMessage(char* message) {
  char* function_name;
  char* params[MAX_PARAMS];
  size_t num_params;
  char* output = NULL;
  int result;
  HandleFunc function;

  num_params = ParseMessage(message, &function_name, &params[0], MAX_PARAMS);

  function = GetFunctionByName(function_name);
  if (!function) {
    /* Function name wasn't found. Error. */
    ppb_messaging_interface->PostMessage(
        g_instance, PrintfToVar("Error: Unknown function \"%s\"", function));
  }

  /* Function name was found, call it. */
  result = (*function)(num_params, &params[0], &output);
  if (result != 0) {
    /* Error. */
    struct PP_Var var;
    if (output != NULL) {
      var = PrintfToVar("Error: Function \"%s\" returned error %d. "
                        "Additional output: %s",
                        function_name,
                        result,
                        output);
      free(output);
    } else {
      var = PrintfToVar(
          "Error: Function \"%s\" returned error %d.", function_name, result);
    }

    /* Post the error to JavaScript, so the user can see it. */
    ppb_messaging_interface->PostMessage(g_instance, var);
    return;
  }

  if (output != NULL) {
    /* Function returned an output string. Send it to JavaScript. */
    ppb_messaging_interface->PostMessage(g_instance, CStrToVar(output));
    free(output);
  }
}
Example #3
0
/**
 * @brief Prepare all level data.
 **/
void LevelSystemOnLoad(/*void*/)
{
    // Register config file
    ConfigRegisterConfig(File_Levels, Structure_List, CONFIG_FILE_ALIAS_LEVELS);
    
    // If level system disabled, then stop
    if(!gCvarList[CVAR_LEVEL_SYSTEM].BoolValue)
    {
        return;
    }
    
    // Gets levels config path
    static char sPathLevels[PLATFORM_LINE_LENGTH];
    bool bExists = ConfigGetFullPath(CONFIG_PATH_LEVELS, sPathLevels);

    // If file doesn't exist, then log and stop
    if(!bExists)
    {
        // Log failure
        LogEvent(false, LogType_Fatal, LOG_GAME_EVENTS, LogModule_Levels, "Config Validation", "Missing levels config file: %s", sPathLevels);
        return;
    }
    
    // Sets path to the config file
    ConfigSetConfigPath(File_Levels, sPathLevels);
    
    // Load config from file and create array structure
    bool bSuccess = ConfigLoadConfig(File_Levels, gServerData.Levels);

    // Unexpected error, stop plugin
    if(!bSuccess)
    {
        LogEvent(false, LogType_Fatal, LOG_GAME_EVENTS, LogModule_Levels, "Config Validation", "Unexpected error encountered loading: %s", sPathLevels);
        return;
    }

    // Now copy data to array structure
    LevelSystemOnCacheData();

    // Sets config data
    ConfigSetConfigLoaded(File_Levels, true);
    ConfigSetConfigReloadFunc(File_Levels, GetFunctionByName(GetMyHandle(), "LevelSystemOnConfigReload"));
    ConfigSetConfigHandle(File_Levels, gServerData.Levels);
}
static void HandleMessage(char* message) {
  char* function_name;
  char* params[MAX_PARAMS];
  size_t num_params;
  char* output = NULL;
  int result;
  HandleFunc function;

  num_params = ParseMessage(message, &function_name, &params[0], MAX_PARAMS);

  function = GetFunctionByName(function_name);
  if (!function) {
    
    ppb_messaging_interface->PostMessage(
        g_instance,
        PrintfToVar("Error: Unknown function \"%s\"", function_name));
    return;
  }

  
  result = (*function)(num_params, &params[0], &output);
  if (result != 0) {
    
    struct PP_Var var;
    if (output != NULL) {
      var = PrintfToVar("Error: \"%s\" failed: %d: %s.", function_name,
                        result, output);
      free(output);
    } else {
      var = PrintfToVar(
          "Error: \"%s\" failed: %d.", function_name, result);
    }

    
    ppb_messaging_interface->PostMessage(g_instance, var);
    return;
  }

  if (output != NULL) {
    
    ppb_messaging_interface->PostMessage(g_instance, CStrToVar(output));
    free(output);
  }
}
Example #5
0
void C2F(setfsolvj)(char *name, int *rep)
{
    fsolvjfonc = (fsolvjf) GetFunctionByName(name, rep, FTab_fsolvj);
}
Example #6
0
void C2F(setfcolgu)(char *name, int *rep)
{
    fcolgufonc = (fcolguf) GetFunctionByName(name, rep, FTab_fcolgu);
}
Example #7
0
void C2F(setinterf)(char *name, int *rep)
{
    interffonc = (interff) GetFunctionByName(name, rep, FTab_interf);
}
Example #8
0
void C2F(setfint2d)(char *name, int *rep)
{
    fint2dfonc = (fint2df) GetFunctionByName(name, rep, FTab_fint2d);
}
Example #9
0
void C2F(setfsurf)(char *name, int *rep)
{
    fsurffonc = (fsurff) GetFunctionByName(name, rep, FTab_fsurf);
}
Example #10
0
void C2F(setfpjacd)(char *name, int *rep)
{
    fpjacdfonc = (fpjacdf) GetFunctionByName(name, rep, FTab_fpjacd);
}
Example #11
0
void C2F(setfresd)(char *name, int *rep)
{
    fresdfonc = (fresdf) GetFunctionByName(name, rep, FTab_fresd);
}
Example #12
0
void C2F(setlsqrsolvj)(char *name, int *rep)
{
    lsqrsolvjfonc = (lsqrsolvjf) GetFunctionByName(name, rep, FTab_lsqrsolvj);
}
Example #13
0
void C2F(setfadda)(char *name, int *rep)
{
    faddafonc = (faddaf) GetFunctionByName(name, rep, FTab_fadda);
}
Example #14
0
void C2F(setfj2)(char *name, int *rep)
{
    fj2fonc = (fj2f) GetFunctionByName(name, rep, FTab_fj2);
}
Example #15
0
void C2F(setfydot)(char *name, int *rep)
{
    fydotfonc = (fydotf) GetFunctionByName(name, rep, FTab_fydot);
}