Commit Graph

191 Commits

Author SHA1 Message Date
Cedric BAIL fdb32980b5 eio: add forgotten file.
SVN revision: 59149
2011-05-03 13:07:26 +00:00
Cedric BAIL fb2310d5a4 eio: add beginning of xattr support.
SVN revision: 59146
2011-05-03 10:36:51 +00:00
Cedric BAIL 74fb408eb1 eio: use eina refcount.
SVN revision: 59040
2011-04-29 16:24:14 +00:00
Cedric BAIL fc27a465a3 eio: also copy xattr when available.
SVN revision: 59015
2011-04-28 16:45:45 +00:00
Cedric BAIL 1a699607f6 eio: add inotify backend and fix api.
Note: API/ABI of Eio_Monitor could be considered usable and need feedback.
Still lacking of proper fallback and windows port.


SVN revision: 58953
2011-04-27 10:27:07 +00:00
Cedric BAIL b558cbc07e eio: add Eio_Monitor API.
Not yet working. Need to handle message, add fallback and windows support.


SVN revision: 58907
2011-04-25 17:04:46 +00:00
Cedric BAIL 25959fb6ed eio: fix eio shadow warning.
SVN revision: 58906
2011-04-25 17:01:26 +00:00
Cedric BAIL 79dbc39b5c eio: destroy leaf before root.
SVN revision: 58732
2011-04-19 15:27:21 +00:00
Cedric BAIL cb90b07d81 autogen: unobrk things.
SVN revision: 58668
2011-04-14 14:51:36 +00:00
Cedric BAIL df4bef8bdf autogen: improve detection of parameter change.
SVN revision: 58667
2011-04-14 14:03:46 +00:00
Cedric BAIL 8fe5c5ce54 eio: make it easy to filter content during eio_dir_* operation.
SVN revision: 57631
2011-03-09 16:21:11 +00:00
Cedric BAIL fb188326a9 eio: correctly fix large file support.
SVN revision: 57629
2011-03-09 15:04:01 +00:00
Cedric BAIL fc2aaf9935 eio: fix issue on 32bits system.
SVN revision: 57626
2011-03-09 14:53:55 +00:00
Cedric BAIL 74a5463b36 efl: add back touch on configure time generated file.
SVN revision: 57232
2011-02-22 10:29:28 +00:00
Cedric BAIL 810ce84f7e efl: turn on cached result, that will reduce your configure time a lot !
SVN revision: 57213
2011-02-21 14:56:49 +00:00
Rui Seabra 885c5ddcde Add rpm spec to eio and one more entry to svn:ignore.
SVN revision: 57140
2011-02-17 23:13:36 +00:00
Cedric BAIL c6cb315e35 eio: add eio_dir_stat_ls.
SVN revision: 57129
2011-02-17 15:59:07 +00:00
Daniel Juyung Seo 5372923677 dox.in update: elementary,evas,edje,ecore,eio,eet,eeze.
Sync authors in doc with AUTHORS.
Updated date to 2011.


SVN revision: 56926
2011-02-10 16:50:18 +00:00
Michael BOUCHAUD 29b6b151b1 eio: don't forget to init the list of links. Avoid segfault with eio_dir_copy and maybee(surely) others function
SVN revision: 55848
2011-01-04 16:58:58 +00:00
Michael BOUCHAUD 947b8db665 eio: move 'typedef enum' after 'enum' to compil with g++ (from Mikael Sans)
SVN revision: 55372
2010-12-08 14:35:37 +00:00
Cedric BAIL 3efc7f4f9b * eio: snapidoo too !
SVN revision: 55241
2010-12-04 00:52:40 +00:00
Cedric BAIL e9a8da1455 * eio: define PATH_MAX if not available.
SVN revision: 55230
2010-12-03 22:59:28 +00:00
Cedric BAIL e697938fc2 * eio, ethumb and elementary: snapshot increase.
SVN revision: 54508
2010-11-12 16:03:34 +00:00
Cedric BAIL 581a3c66e2 * eio: fix API to match the rest of the EFL API.
SVN revision: 54504
2010-11-12 14:08:01 +00:00
Cedric BAIL e61f8560ea * ecore: break Ecore_Thread API once and for all to make it consistent.
SVN revision: 54502
2010-11-12 13:28:19 +00:00
Cedric BAIL bdf50e0fc9 * eio: remove not needed file.
SVN revision: 54473
2010-11-11 19:01:52 +00:00
Cedric BAIL 7e9c729ce2 * eio: fix recursion by detecting link and recreating them.
SVN revision: 54123
2010-11-03 12:35:21 +00:00
Cedric BAIL 058deb3c1f * eio: add eio_file_stat_ls.
SVN revision: 54106
2010-11-02 17:08:00 +00:00
Cedric BAIL eb4cd21f0c * eina: remove dirent so apps don't rely on non portable code.
SVN revision: 54103
2010-11-02 15:11:05 +00:00
Cedric BAIL 57aa3f4147 * eio: fix shadow symbol.
SVN revision: 54033
2010-10-30 12:06:21 +00:00
Carsten Haitzler 46abf6fc81 use new type member.
SVN revision: 54018
2010-10-30 05:59:39 +00:00
Cedric BAIL 61bb247e13 * eio: oops forgotten file.
SVN revision: 53990
2010-10-29 13:06:58 +00:00
Cedric BAIL 09d09fe0ce * eio: inline accessor.
SVN revision: 53988
2010-10-29 12:58:04 +00:00
Cedric BAIL 9b279fa367 * eio: break Eio error callback API to match the rest of the API.
SVN revision: 53986
2010-10-29 12:36:43 +00:00
Cedric BAIL feffc8fd02 * eio: more doxy fix.
SVN revision: 53966
2010-10-28 16:09:17 +00:00
Cedric BAIL b519dad7b4 * eio: fix doc.
SVN revision: 53964
2010-10-28 15:57:48 +00:00
Cedric BAIL c0cf78da54 * eio: add small helper.
SVN revision: 53962
2010-10-28 14:50:24 +00:00
Cedric BAIL a5abd3d320 * eio: add eio_file_ls() tutorial.
SVN revision: 53915
2010-10-27 12:30:12 +00:00
Vincent Torri 9c5ce8345e [eio] add check on some functions (will be used later) and
add native win32 mutex code.

Question: with pthread, if a mutex is initialized with
PTHREAD_MUTEX_INITIALIZER, should it be destroyed  with
pthread_mutex_destroy() ?

SVN revision: 53772
2010-10-22 16:44:30 +00:00
Cedric BAIL 318a56c004 * eio: fix eio.pc
SVN revision: 53762
2010-10-22 11:54:54 +00:00
Vincent Torri c2d941930c [eio] check if threads, grp.h and fchmod() are available
SVN revision: 53723
2010-10-21 17:51:21 +00:00
Vincent Torri ab84f4da58 [eio] _GNU_SOURCE already defined in config.h
SVN revision: 53721
2010-10-21 17:18:35 +00:00
Vincent Torri 600053d7a9 [eio] improve documentation layout and add a tutorial for
eio_dir_copy()

SVN revision: 53704
2010-10-21 05:03:23 +00:00
Vincent Torri 3a5d43ea9c [eio] reorganize code like eina, clean up doc
SVN revision: 53688
2010-10-20 19:17:30 +00:00
Vincent Torri 6b588fbef6 [eio] exclude eio_private.h from the doc
SVN revision: 53687
2010-10-20 17:57:17 +00:00
Vincent Torri 964ce60666 [eio] take into account eio.dox
SVN revision: 53686
2010-10-20 17:54:27 +00:00
Cedric BAIL 06ea9c415d * eio: add eio_file_chmod and eio_file_chown.
SVN revision: 53678
2010-10-20 16:42:45 +00:00
Cedric BAIL da9d9f4e89 * eio: improve doc.
SVN revision: 53673
2010-10-20 14:44:45 +00:00
Cedric BAIL ff69a72f47 * eio: add eio_dir_unlink.
SVN revision: 53664
2010-10-20 13:48:13 +00:00
Cedric BAIL 80cbbc23a7 * eio: more doxy fix.
SVN revision: 53658
2010-10-20 12:20:06 +00:00
Cedric BAIL ab4a53f091 * eio: add eio_dir_move.
SVN revision: 53657
2010-10-20 12:09:58 +00:00
Cedric BAIL 10ff95e654 * eio: small doxy fix.
SVN revision: 53656
2010-10-20 12:08:56 +00:00
Cedric BAIL f3b720812e * e, eio: fix ecore_thread_run breakage.
SVN revision: 53371
2010-10-13 17:46:02 +00:00
Cedric BAIL 75577ee618 * eio: remove unecessary call.
SVN revision: 53365
2010-10-13 16:45:45 +00:00
Cedric BAIL a1c4588d64 * eio: fix use of ecore_thread_*run.
SVN revision: 53348
2010-10-13 10:59:33 +00:00
Gustavo Sverzut Barbieri c30d8f6af6 init threads as we use them!
SVN revision: 53342
2010-10-13 06:14:56 +00:00
Gustavo Sverzut Barbieri 83270f5f45 seems that the other way was not enough.
I was still reaching uninitialized usage and it does make sense, as
the parent thread could be postponed until the new is started, then
the scanner/worker thread hits an error (ie: directory permission
denied) and it is cancelled before the main thread had time to get the
thread attribution (common->thread).

I'd like someone to look at it. Probably this is NOT the right way to
fix. Likely what we should do is send a "ready! start working" command
from the main thread to the worker thread and avoid such thing.


==5848== Conditional jump or move depends on uninitialised value(s)
==5848==    at 0x42808CD: ecore_thread_cancel (ecore_thread.c:534)
==5848==    by 0x4238558: eio_file_thread_error (eio_single.c:35)
==5848==    by 0x42368FC: _eio_file_direct_heavy (eio_file.c:78)
==5848==    by 0x42800F3: _ecore_feedback_job (ecore_thread.c:247)
==5848==    by 0x4280398: _ecore_thread_worker (ecore_thread.c:317)
==5848==    by 0x41FE16AE: start_thread (in /lib/libpthread-2.11.2.so)
==5848==    by 0x41F3295D: clone (in /lib/libc-2.11.2.so)
==5848==  Uninitialised value was created by a heap allocation
==5848==    at 0x400793F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==5848==    by 0x4237991: eio_file_direct_ls (eio_file.c:566)
==5848==    by 0x8051C81: ephoto_directory_thumb_add (ephoto_directory_thumb.c:131)
==5848==    by 0x804D4AB: _ephoto_thumb_dir_icon_get (ephoto_thumb_browser.c:75)
==5848==    by 0x405F4C8: _item_realize (elm_gengrid.c:807)
==5848==    by 0x405FE77: _item_place (elm_gengrid.c:980)
==5848==    by 0x40610F6: _pan_calculate (elm_gengrid.c:1199)
==5848==    by 0x418CA38: evas_call_smarts_calculate (evas_object_smart.c:843)
==5848==    by 0x41B23B2: evas_render_updates_internal (evas_render.c:971)
==5848==    by 0x41B3DA1: evas_render_updates (evas_render.c:1414)
==5848==    by 0x42E4550: _ecore_evas_x_render (ecore_evas_x.c:406)
==5848==    by 0x42DDD2C: _ecore_evas_idle_enter (ecore_evas.c:47)




SVN revision: 53340
2010-10-13 05:33:16 +00:00
Gustavo Sverzut Barbieri d037d75281 fix unitialized error.
==17972== Use of uninitialised value of size 4
==17972==    at 0x42918DB: ecore_thread_cancel (ecore_thread.c:536)
==17972==    by 0x4249558: eio_file_thread_error (eio_single.c:35)
==17972==    by 0x42478FC: _eio_file_direct_heavy (eio_file.c:78)
==17972==    by 0x42910F3: _ecore_feedback_job (ecore_thread.c:247)
==17972==    by 0x4291398: _ecore_thread_worker (ecore_thread.c:317)
==17972==    by 0x41FE16AE: start_thread (in /lib/libpthread-2.11.2.so)
==17972==    by 0x41F3295D: clone (in /lib/libc-2.11.2.so)
==17972==  Uninitialised value was created by a heap allocation
==17972==    at 0x400793F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==17972==    by 0x4248991: eio_file_direct_ls (eio_file.c:566)
==17972==    by 0x8050B8E: ephoto_directory_thumb_add (ephoto_directory_thumb.c:127)
==17972==    by 0x4061570: _item_realize (elm_gengrid.c:807)
==17972==    by 0x4061E27: _item_place (elm_gengrid.c:980)
==17972==    by 0x4062875: _pan_calculate (elm_gengrid.c:1199)
==17972==    by 0x419DA38: evas_call_smarts_calculate (evas_object_smart.c:843)
==17972==    by 0x41C33B2: evas_render_updates_internal (evas_render.c:971)
==17972==    by 0x41C4DA1: evas_render_updates (evas_render.c:1414)
==17972==    by 0x42F5550: _ecore_evas_x_render (ecore_evas_x.c:406)
==17972==    by 0x42EED2C: _ecore_evas_idle_enter (ecore_evas.c:47)
==17972==    by 0x428C85F: _ecore_idle_enterer_call (ecore_idle_enterer.c:129)




SVN revision: 53336
2010-10-13 03:56:24 +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
Vincent Torri 0304666261 improve doc. Now, cedric, it's up to you :p
SVN revision: 53308
2010-10-12 14:59:30 +00:00
Vincent Torri 933bac3a3a add doc support
SVN revision: 53265
2010-10-11 17:18:39 +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
Gustavo Sverzut Barbieri 98e0d9f009 safer and louder about errors.
SVN revision: 53204
2010-10-08 20:14:21 +00:00
Eduardo de Barros Lima 9910581b1c Eio: No need to #define _GNU_SOURCE
SVN revision: 53165
2010-10-07 21:06:54 +00:00
Cedric BAIL 71ae9cd4e5 * eio: reduce code duplication.
SVN revision: 53094
2010-10-06 09:54:00 +00:00
Cedric BAIL 96172a4066 * eio: fix coding style, the other way.
SVN revision: 53071
2010-10-05 16:57:51 +00:00
Cedric BAIL b3d7e3423f * eio: add eio_dir_copy.
Little example on how to use it :
#include <Ecore.h>
#include <Eio.h>

static void
_test_notify_cb(void *data, const Eio_Progress *info)
{
   switch (info->op)
     {
      case EIO_FILE_COPY:
         printf("[%s] %f%%\n", info->dest, info->percent);
         break;
      case EIO_DIR_COPY:
         printf("global [%li/%li] %f%%\n", info->current, info->max, info->percent);
         break;
     }
}

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_dir_copy(argv[1], argv[2],
                     _test_notify_cb,
                     _test_done_cb,
                     _test_error_cb,
                     NULL);

   ecore_main_loop_begin();

   eio_shutdown();
   ecore_shutdown();

   return 0;
}

	NOTE: be aware that it's your duty to provide the "right target".
	Meaning that copying to '.' will copy the content directly inside
	'.' and not in a subdirectory.


SVN revision: 53069
2010-10-05 16:46:41 +00:00
Cedric BAIL f352ce15bc * eio: follow efl coding style.
SVN revision: 53066
2010-10-05 15:58:19 +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 d85ab417fd * eio: fix docs and typos.
SVN revision: 53062
2010-10-05 14:29:58 +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 8036a32918 * ecore: rename ecore_long_run to ecore_thread_feedback_run.
SVN revision: 52573
2010-09-22 09:47:55 +00:00
Cedric BAIL d287f127fd * eio: callback are allowed to modify their own data.
Don't know how I wrote this non sense.


SVN revision: 52189
2010-09-13 13:44:24 +00:00
Cedric BAIL bf9609ebff * eio: make it compile on Windows. Thanks Vincent !
SVN revision: 51955
2010-09-07 15:47:11 +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 9fb5bfffed * eio: limit number of threads used by eio_file_ls.
SVN revision: 51861
2010-09-03 13:38:49 +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
Cedric BAIL 1915b760ee * eio: start to implement new cleaner API.
SVN revision: 51784
2010-08-31 16:24:58 +00:00
Iván Briano 196b7ddf2d eina-0 is no more, check for the right package name
SVN revision: 51227
2010-08-16 20:20:57 +00:00
titan 83c74eccb5 Cleanups
SVN revision: 50777
2010-08-03 17:59:55 +00:00
titan bdb6e0f0ed *Warning Breaks API so if you use eio, make the necessary changes* Make the changes k-s requested. Use Enums, Use shorter code, Change the format of the callbacks to be data first value last, etc..
SVN revision: 50771
2010-08-03 17:11:44 +00:00
titan 0ae939099c Add the ability to perform standard IO operations on a file in a thread.
SVN revision: 50618
2010-07-28 22:12:41 +00:00
Cedric BAIL 4df9bbead1 * eio: Add an error callback, some docs and a small README.
SVN revision: 50446
2010-07-23 11:00:44 +00:00
Cedric BAIL c5cc3b6e19 * eio: please welcome our asynchronous input output library.
NOTE: right now only help with file listing and provide a
	wrapper around eina_file_ls and eina_file_direct_ls and ecore_long_run.
	But the idea is to do the same with all Ecore_File code so that one
	day we can remove Ecore_File.


SVN revision: 50429
2010-07-22 16:08:17 +00:00