File Manager / inc / model /
fs-manager.h
/*
* Copyright 2014 -2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#ifndef _FS_MANAGER_H_
#define _FS_MANAGER_H_
#include <Eina.h>
/* Forward declaration: */
typedef struct _fs_manager fs_manager;
/**
* @brief Prototype of operation complete user callback function
*/
typedef void (*fs_manager_complete_cb_func)(void *cb_data, int result);
/**
* @brief Create file system manager instance
* @return File system manager instance on success, otherwise NULL
*/
fs_manager *fs_manager_create();
/**
* @brief Destroy file system manager instance
* @param[in] manager File system manager instance
*/
void fs_manager_destroy(fs_manager *manager);
/**
* @brief Gets list of available storages
* @param[in] manager File system manager instance
* @param[out] storage_list Storage list to be set
* @return Error code. RESULT_TYPE_OK if operation success.
*/
int fs_manager_get_storage_list(fs_manager *manager, Eina_List **storage_list);
/**
* @brief Gets from directory lists of its files and sub directories
* @param[in] manager File system manager instance
* @param[in] dir_path Directory fullpath
* @param[out] file_list List of directory sub directories and files
* @return Error code. RESULT_TYPE_OK if operation success.
*/
int fs_manager_get_file_list(fs_manager *manager,
const char *dir_path,
Eina_List **file_list);
/**
* @brief Copy selected files to set destination
* @param[in] manager File system manager instance
* @param[in] selected_list Selected files list to copy
* @param[in] dest_path Destination path
* @param[in] cb_func Operation complete user callback function
* @param[in] cb_data User callback data
* @return Error code. RESULT_TYPE_OK if operation success.
*/
int fs_manager_copy_files(fs_manager *manager,
Eina_List *selected_list,
const char *dest_path,
fs_manager_complete_cb_func cb_func,
void *cb_data);
/**
* @brief Move selected files to set destination
* @param[in] manager File system manager instance
* @param[in] selected_list Selected files list to move
* @param[in] dest_path Destination path
* @param[in] cb_func Operation complete user callback function
* @param[in] cb_data User callback data
* @return Error code. RESULT_TYPE_OK if operation success.
*/
int fs_manager_move_files(fs_manager *manager,
Eina_List *selected_list,
const char *dest_path,
fs_manager_complete_cb_func cb_func,
void *cb_data);
/**
* @brief Delete selected files
* @param[in] manager File system manager instance
* @param[in] selected_list Selected files list to delete
* @param[in] cb_func Operation complete user callback function
* @param[in] cb_data User callback data
* @return Error code. RESULT_TYPE_OK if operation success.
*/
int fs_manager_delete_files(fs_manager *manager,
Eina_List *selected_list,
fs_manager_complete_cb_func cb_func,
void *cb_data);
/**
* @brief Creates new folder by set folder full path
* @param[in] manager File system manager instance
* @param[in] dir New directory full path
* @return Error code. RESULT_TYPE_OK if operation success.
*/
int fs_manager_create_folder(fs_manager *manager, const char *dir);
#endif /* _FS_MANAGER_H_ */