#ifndef IDAV_DAV_CONTROLLER_H
#define IDAV_DAV_CONTROLLER_H
#include <ui/ui.h>
#include <libidav/webdav.h>
#include <libidav/config.h>
#include "application.h"
#ifdef __cplusplus
extern "C" {
#endif
#define DAVBROWSER_MAX_NAVLIST 128
typedef struct TransferProgress {
size_t total_bytes;
size_t total_files;
size_t total_directories;
size_t transferred_bytes;
size_t transferred_files;
size_t transferred_directories;
size_t current_file_size;
size_t current_file_transferred;
time_t speedtest_start;
size_t speedtest_bytes;
} TransferProgress;
DavBrowser* davbrowser_create(UiObject *toplevel);
int jobthr_davbrowser_auth(DavSession *sn,
void *data);
void davbrowser_auth_set_user_pwd(SessionAuthData *auth,
const char *user,
const char *password);
void davbrowser_set_collection(UiObject *ui, DavBrowser *browser, DavResource *collection);
int davbrowser_connect2repo(UiObject *ui, DavBrowser *browser, DavCfgRepository *repo,
const char *path);
void davbrowser_query_path(UiObject *ui, DavBrowser *browser,
const char *path);
void davbrowser_query_url(UiObject *ui, DavBrowser *browser,
const char *url);
void davbrowser_open_resource(UiObject *ui, DavBrowser *browser, DavResource *res,
const char *contenttype);
void davbrowser_add2navstack(DavBrowser *browser,
const char *base,
const char *path);
void davbrowser_navigation_parent(UiObject *ui, DavBrowser *browser);
void davbrowser_navigation_back(UiObject *ui, DavBrowser *browser);
void davbrowser_navigation_forward(UiObject *ui, DavBrowser *browser);
void davbrowser_upload_files(UiObject *ui, DavBrowser *browser, UiFileList files);
void davbrowser_download(UiObject *ui, DavBrowser *browser, DavResource *reslist,
const char *local_path);
void davbrowser_delete(UiObject *ui, DavBrowser *browser, UiListSelection selection);
void davbrowser_create_resource(UiObject *ui, DavBrowser *browser,
const char *name, DavBool iscollection);
void davbrowser_mkcol(UiObject *ui, DavBrowser *browser,
const char *name);
void davbrowser_newfile(UiObject *ui, DavBrowser *browser,
const char *name);
void davbrowser_rename(UiObject *ui, DavBrowser *browser, UiListSelection selection);
DavResourceViewer* dav_resourceviewer_create(UiObject *toplevel, DavSession *sn,
const char *path, DavResourceViewType type);
void dav_resourceviewer_load(UiObject *ui, DavResourceViewer *res);
void dav_resourceviewer_save(UiObject *ui, DavResourceViewer *res);
void dav_resourceviewer_destroy(DavResourceViewer *res);
void dav_resourceviewer_property_remove(DavResourceViewer *res, DavPropertyList *prop);
void dav_resourceviewer_property_update_text(DavResourceViewer *res, DavPropertyList *prop,
const char *text);
void dav_resourceviewer_property_update_xml(DavResourceViewer *res, DavPropertyList *prop, DavXmlNode *xml);
void dav_resourceviewer_property_add_text(DavResourceViewer *res,
const char *ns,
const char *name,
const char *text);
void dav_resourceviewer_property_add_xml(DavResourceViewer *res,
const char *ns,
const char *name,
const char *nsdef, DavXmlNode *xml);
uint64_t dav_transfer_speed(TransferProgress *progress,
time_t current);
#ifdef __cplusplus
}
#endif
#endif