Ticket #975: opensync_list_pattern_new.diff

File opensync_list_pattern_new.diff, 4.2 KB (added by bricks, 3 years ago)

first patch for plugin env

  • opensync/plugin/opensync_plugin_env.h

    ### Eclipse Workspace Patch 1.0
    #P libopensync-Source@opensync-db2
     
    101101 */ 
    102102OSYNC_EXPORT OSyncPlugin *osync_plugin_env_find_plugin(OSyncPluginEnv *env, const char *name); 
    103103 
    104 /** @brief Returns the number of loaded plugins 
     104/* @brief Get all plugins which are registered in the Plugin Env 
    105105 *  
    106  * Returns the number of loaded plugins. 0 if used before initialization 
    107  *  
    108  * @param env Pointer to a OSyncPluginEnv environment 
    109  * @returns Number of plugins 
    110  *  
     106 * @param env Pointer to a OSyncPluginEnv 
     107 * @return A shallow copy of the internal plugin list 
    111108 */ 
    112 OSYNC_EXPORT unsigned int osync_plugin_env_num_plugins(OSyncPluginEnv *env); 
     109OSYNC_EXPORT OSyncList *osync_plugin_env_get_plugins(OSyncPluginEnv *env); 
    113110 
    114 /** @brief Returns pointer to nth plugin 
    115  *  
    116  * Returns pointer to nth plugin 
    117  *  
    118  * @param env Pointer to a OSyncPluginEnv environment 
    119  * @param nth Which plugin to return 
    120  * @returns Pointer to plugin 
    121  *  
    122  */ 
    123 OSYNC_EXPORT OSyncPlugin *osync_plugin_env_nth_plugin(OSyncPluginEnv *env, unsigned int nth); 
    124  
    125111/*@}*/ 
    126112 
    127113#endif /* _OPENSYNC_PLUGIN_ENV_H_ */ 
  • opensync/plugin/opensync_plugin_env_internals.h

     
    5050 */ 
    5151OSYNC_TEST_EXPORT osync_bool osync_plugin_env_plugin_is_usable(OSyncPluginEnv *env, const char *pluginname, OSyncError **error); 
    5252 
     53/** @brief Returns the number of loaded plugins 
     54 *  
     55 * Returns the number of loaded plugins. 0 if used before initialization 
     56 *  
     57 * @param env Pointer to a OSyncPluginEnv environment 
     58 * @returns Number of plugins 
     59 *  
     60 */ 
     61OSYNC_EXPORT unsigned int osync_plugin_env_num_plugins(OSyncPluginEnv *env); 
     62 
    5363/*@}*/ 
    5464 
    5565#endif /* _OPENSYNC_PLUGIN_ENV_INTERNALS_H_ */ 
  • tools/osyncplugin.c

     
    12261226        if (!osync_plugin_env_load(plugin_env, pluginpath, error)) 
    12271227                goto error_free_formatenv; 
    12281228 
    1229         num= osync_plugin_env_num_plugins(plugin_env); 
     1229        OSyncList *plugins = osync_plugin_env_get_plugins(plugin_env); 
     1230        num = osync_list_length(plugins); 
    12301231        for(i= 0; i < num; i++) { 
    1231                 OSyncPlugin* plugin= osync_plugin_env_nth_plugin(plugin_env, i); 
     1232                OSyncPlugin* plugin = (OSyncPlugin*)osync_list_nth_data(plugins, i); 
    12321233                fprintf (stdout, "Name:        %s\n", osync_plugin_get_name(plugin)); 
    12331234                fprintf (stdout, "Description: %s\n", osync_plugin_get_description(plugin));             
    12341235        }  
  • wrapper/opensync-plugin.i

     
    120120        } 
    121121 
    122122        int num_plugins() { 
    123                 return osync_plugin_env_num_plugins(self); 
     123                OSyncList *plugins = osync_plugin_env_get_plugins(self); 
     124                return osync_list_length(plugins); 
    124125        } 
    125126 
    126127        Plugin *nth_plugin(int nth) { 
    127                 Plugin *plugin = osync_plugin_env_nth_plugin(self, nth); 
     128                OSyncList *plugins = osync_plugin_env_get_plugins(self); 
     129                 
     130                Plugin *plugin = (OSyncPlugin*)osync_list_nth_data(plugins, nth); 
    128131                if (plugin) 
    129132                        osync_plugin_ref(plugin); 
    130133                return plugin; 
  • opensync/plugin/opensync_plugin_env.c

     
    214214        return osync_list_length(env->plugins); 
    215215} 
    216216 
    217 OSyncPlugin *osync_plugin_env_nth_plugin(OSyncPluginEnv *env, unsigned int nth) 
     217OSyncList *osync_plugin_env_get_plugins(OSyncPluginEnv *env) 
    218218{ 
    219         return (OSyncPlugin *)osync_list_nth_data(env->plugins, nth); 
     219        OSyncList *newlist = osync_list_alloc(); 
     220        return osync_list_copy(newlist); 
    220221} 
    221222 
    222223osync_bool osync_plugin_env_plugin_is_usable(OSyncPluginEnv *env, const char *pluginname, OSyncError **error)