cmodule.h revision b82acc5264df5ef0d8cd5265826baa9a90f436b3
1ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu/* 2ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu * Copyright (C) 2009 Wind River Systems. 3ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu */ 4ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 5ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu#ifndef __CMODULE_H 6ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu#define __CMODULE_H 7ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 8ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu#include <module.h> 9ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 10ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryuclass CModule; 11ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 125463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryutypedef OMX_ERRORTYPE (*cmodule_instantiate_t)(OMX_PTR *); 135463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryutypedef OMX_ERRORTYPE (*cmodule_query_name_t)(OMX_STRING *); 145463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryutypedef OMX_ERRORTYPE (*cmodule_query_roles_t)(OMX_U32 *, OMX_U8 **); 155463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryu 16ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryuclass CModule { 17ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu public: 1893829fc5dd7d8b02ab8425f4f6cecf39e0636508Ho-Eun Ryu CModule(const OMX_STRING lname); 19ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu ~CModule(); 20ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 21b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* 22b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu * library loading / unloading 23b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu */ 24ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu OMX_ERRORTYPE Load(void); 25ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu OMX_ERRORTYPE Unload(void); 26ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 27b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* end of library loading / unloading */ 28b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu 29b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* 30b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu * accessor 31b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu */ 32b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* library name */ 3393829fc5dd7d8b02ab8425f4f6cecf39e0636508Ho-Eun Ryu const OMX_STRING GetLibraryName(void); 3493829fc5dd7d8b02ab8425f4f6cecf39e0636508Ho-Eun Ryu 35b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* end of accessor */ 36b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu 37ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu private: 38b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* 39b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu * library symbol 40b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu */ 415463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryu cmodule_instantiate_t instantiate; 425463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryu cmodule_query_name_t query_name; 435463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryu cmodule_query_roles_t query_roles; 445463849b74e78069ba8853df8be5e185e712a6c1Ho-Eun Ryu 45b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* end of library symbol */ 46b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu 47b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* library name */ 4893829fc5dd7d8b02ab8425f4f6cecf39e0636508Ho-Eun Ryu char lname[OMX_MAX_STRINGNAME_SIZE]; 49b82acc5264df5ef0d8cd5265826baa9a90f436b3Ho-Eun Ryu /* utils::module */ 50ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu struct module *module; 51ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu}; 52ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu 53ad314a082b0ba22294ba369dde3f84f88010a612Ho-Eun Ryu#endif /* __CMODULE_H */ 54