Как создать и открыть файловую систему через API Chrome Pepper C?

API Pepper C для браузеров Chrome определяется здесь:

https://developer.chrome.com/native-client/c-api

Я пытаюсь создать и открыть файловую систему через C API для использования в приложении Chrome, использующем технологию PNaCl.

Вот сокращенная версия переменных:

static PP_Instance pp_instance;
static PPB_Instance * ppb_instance;

Вот ссылка на Pepper FileSystem:

https://developer.chrome.com/native-client/pepper_stable/c/ struct_p_p_b___file_system_

static PP_Instance pp_instance;
static PPB_Instance * ppb_instance;
_0

Я попробовал следующие примеры кода для инициализации файловой системы, но все они дают ошибки компилятора.

PPB_FileSystem pepper_file_system;

Компиляция этого кода через clang++...

pepper_file_system = PPB_FileSystem::Create (pp_instance, PP_FILESYSTEMTYPE_LOCALPERSISTENT);

дает этот вывод:

invalid use of non-static data member 'Create'
pepper_file_system = PPB_FileSystem::Create (pp_instance, PP_FILESYSTE...

Вторая попытка, компиляция этого кода...

pepper_file_system = PPB_FileSystem->Create (pp_instance, PP_FILESYSTEMTYPE_LOCALPERSISTENT);

дает этот вывод:

error: unexpected type name 'PPB_FileSystem': expected expression
pepper_file_system = PPB_FileSystem->Create (pp_instance, PP_FILESYSTE...

Третья попытка, компиляция этого кода...

pepper_file_system = ppb_instance->Create (pp_instance, PP_FILESYSTEMTYPE_LOCALPERSISTENT);

дает этот вывод:

error: no member named 'Create' in 'PPB_Instance_1_0'
pepper_file_system = ppb_instance->Create (pp_instance, PP_FILESYSTEMT...

Я понимаю, что это должен быть вопрос очень новичка, очевидно, решение должно быть очень простым, просто я смотрел на это несколько часов и гуглил пример кода для создания файловой системы через Pepper C API и не нашел это (есть пример кода для C++ API). Спасибо за любую помощь, которая решает эту головоломку... :)


person teusbenschop    schedule 19.12.2016    source источник
comment
Я думаю, вы должны сделать что-то вроде: PPB_FileSystem* pepper_file_system = PPBFileSystem(); и PP_Resource file_system = pepper_file_system->Create(pp_instance(), PP_FILESYSTEMTYPE_LOCALPERSISTENT);   -  person LPs    schedule 19.12.2016


Ответы (1)


Что-то вроде:

PPB_FileSystem * ppb_file_system = new PPB_FileSystem;
PP_Resource pp_file_system = ppb_file_system->Create (pp_instance, PP_FILESYSTEMTYPE_LOCALPERSISTENT);

должно сработать

person LPs    schedule 19.12.2016