Commit Graph

14 Commits

Author SHA1 Message Date
Cedric BAIL f3b720812e * e, eio: fix ecore_thread_run breakage.
SVN revision: 53371
2010-10-13 17:46:02 +00:00
Carsten Haitzler 8cde3d4ba6 ok... bad eio hackers. you know setting things like gnu_source and
file_offset_bits .. CHANGES the size of structs like dirent? so if u
do it differently in different c files... u end up with.. GASP
different structs with different sizes! dont do this. unify everything
into eio_private.h so its at least CONSISTENT for eio's internals.



SVN revision: 53322
2010-10-13 00:26:12 +00:00
Cedric BAIL cb8d2cf2f9 * eio: improve allocation code for eio_file_direct_ls.
SVN revision: 53262
2010-10-11 12:40:20 +00:00
Cedric BAIL a1ea2ed6cd * eio: more code to share.
SVN revision: 53065
2010-10-05 15:32:24 +00:00
Cedric BAIL 9e019c7227 * eio: report current operation during progress.
SVN revision: 53063
2010-10-05 14:55:47 +00:00
Cedric BAIL 5999ca1825 * eio: share more code and make copy cancellable.
SVN revision: 53057
2010-10-05 12:56:07 +00:00
Cedric BAIL bb76ca8100 * eio: share some code.
SVN revision: 53056
2010-10-05 11:44:03 +00:00
Cedric BAIL 7088845157 * eio: add eio_file_move (completly asynchronous and non
blocking move). It first try a rename, then fallback to
	an eio_file_copy + eio_file_unlink.

Small example on how to use it :
#include <Ecore.h>
#include <Eio.h>

static void
_test_done_cb(void *data)
{
   printf("move done\n");
   ecore_main_loop_quit();
}

static void
_test_error_cb(int error, void *data)
{
   fprintf(stderr, "error: [%s]\n", strerror(error));
   ecore_main_loop_quit();
}

int
main(int argc, char **argv)
{
   Eio_File *cp;

   if (argc != 3)
     {
        fprintf(stderr, "eio_cp source_file destination_file\n");
        return -1;
     }

   ecore_init();
   eio_init();

   cp = eio_file_move(argv[1], argv[2],
                      NULL,
                      _test_done_cb,
                      _test_error_cb,
                      NULL);

   ecore_main_loop_begin();

   eio_shutdown();
   ecore_shutdown();

   return 0;
}


SVN revision: 52845
2010-09-28 09:05:51 +00:00
Cedric BAIL 135a0f570a * eio: add eio_file_copy (using splice when available and
fallback to mmap/write with huge tlb when not).

That what an eio_cp would look like :

#include <Ecore.h>
#include <Eio.h>

static void
_test_progress_cb(void *data, const Eio_Progress *info)
{
   printf("%f (%zi / %zi octets)\n", info->percent, info->current, info->max);
}

static void
_test_done_cb(void *data)
{
   printf("copy done\n");
   ecore_main_loop_quit();
}

static void
_test_error_cb(int error, void *data)
{
   fprintf(stderr, "error: [%s]\n", strerror(error));
   ecore_main_loop_quit();
}

int
main(int argc, char **argv)
{
   Eio_File *cp;

   if (argc != 3)
     {
        fprintf(stderr, "eio_cp source_file destination_file\n");
        return -1;
     }

   ecore_init();
   eio_init();

   cp = eio_file_copy(argv[1], argv[2],
                      _test_progress_cb,
                      _test_done_cb,
                      _test_error_cb,
                      NULL);

   ecore_main_loop_begin();

   eio_shutdown();
   ecore_shutdown();

   return 0;
}




SVN revision: 52787
2010-09-26 21:47:48 +00:00
Cedric BAIL 0a4134fd5f * eio: return errno on error.
SVN revision: 51946
2010-09-07 14:43:51 +00:00
Cedric BAIL cbff3eb25a * eio: major cleanup.
SVN revision: 51927
2010-09-06 16:37:43 +00:00
Cedric BAIL ea791dccc5 * eio: minor cleanup and add stat support.
SVN revision: 51925
2010-09-06 15:27:10 +00:00
Cedric BAIL 810afbdf9e * eio: add eio_file_unlink.
SVN revision: 51840
2010-09-02 13:39:59 +00:00
Cedric BAIL eeafcb3be5 * eio: oops, forgot to add those files.
SVN revision: 51800
2010-09-01 08:23:15 +00:00