#! /usr/bin/env ruby # -*- coding: UTF-8 -*- # require 'efl/native' # module Efl # module EinaFile # FCT_PREFIX = 'eina_file_' unless const_defined? :FCT_PREFIX # def self.method_missing meth, *args, &block sym = Efl::MethodResolver.resolve self, meth, FCT_PREFIX self.send sym, *args, &block end # end # module Native # ffi_lib 'eina.so.1' # # ENUMS # typedef enum {...} Eina_File_Type; enum :eina_file_type, [ :eina_file_unknown, :eina_file_fifo, :eina_file_chr, :eina_file_dir, :eina_file_blk, :eina_file_reg, :eina_file_lnk, :eina_file_sock, :eina_file_wht ] # typedef enum {...} Eina_File_Populate; enum :eina_file_populate, [ :eina_file_random, :eina_file_sequential, :eina_file_willneed, :eina_file_populate, :eina_file_dontneed, :eina_file_remove ] # typedef enum {...} Eina_File_Copy_Flags; enum :eina_file_copy_flags, [ :eina_file_copy_data, 0, :eina_file_copy_permission, (1<<0), :eina_file_copy_xattr, (1<<1) ] # # TYPEDEFS # typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info; typedef :pointer, :eina_file_direct_info # typedef struct _Eina_Stat Eina_Stat; typedef :pointer, :eina_stat # typedef struct _Eina_File_Line Eina_File_Line; typedef :pointer, :eina_file_line # typedef struct _Eina_File Eina_File; typedef :pointer, :eina_file # # CALLBACKS # typedef void (*Eina_File_Dir_List_Cb) (const char *name, const char *path, void *data); callback :eina_file_dir_list_cb, [ :string, :string, :pointer ], :void # typedef Eina_Bool (*Eina_File_Copy_Progress) (void *data, unsigned long long done, unsigned long long total); callback :eina_file_copy_progress_cb, [ :pointer, :ulong_long, :ulong_long ], :bool # # FUNCTIONS fcts = [ # EAPI Eina_Bool eina_file_dir_list(const char *dir, Eina_Bool recursive, Eina_File_Dir_List_Cb cb, void *data); [ :eina_file_dir_list, [ :string, :bool, :eina_file_dir_list_cb, :pointer ], :bool ], # EAPI Eina_Array *eina_file_split(char *path); [ :eina_file_split, [ :string ], :pointer ], # EAPI Eina_Iterator *eina_file_ls(const char *dir); [ :eina_file_ls, [ :string ], :pointer ], # EAPI Eina_Iterator *eina_file_stat_ls(const char *dir); [ :eina_file_stat_ls, [ :string ], :pointer ], # EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *buf); [ :eina_file_statat, [ :pointer, :eina_file_direct_info, :eina_stat ], :int ], # EAPI int eina_file_mkstemp(const char *templatename, Eina_Tmpstr **path); [ :eina_file_mkstemp, [ :string, :pointer ], :int ], # EAPI Eina_Bool eina_file_mkdtemp(const char *templatename, Eina_Tmpstr **path); [ :eina_file_mkdtemp, [ :string, :pointer ], :bool ], # EAPI Eina_Iterator *eina_file_direct_ls(const char *dir); [ :eina_file_direct_ls, [ :string ], :pointer ], # EAPI char *eina_file_path_sanitize(const char *path); [ :eina_file_path_sanitize, [ :string ], :string ], # EAPI Eina_Bool eina_file_copy(const char *src, const char *dst, Eina_File_Copy_Flags flags, Eina_File_Copy_Progress cb, const void *cb_data); [ :eina_file_copy, [ :string, :string, :eina_file_copy_flags, :eina_file_copy_progress_cb, :pointer ], :bool ], # EAPI Eina_File *eina_file_open(const char *name, Eina_Bool shared); [ :eina_file_open, [ :string, :bool ], :eina_file ], # EAPI Eina_File * eina_file_virtualize(const char *virtual_name, const void *data, unsigned long long length, Eina_Bool copy); [ :eina_file_virtualize, [ :string, :pointer, :ulong_long, :bool ], :eina_file ], # EAPI Eina_Bool eina_file_virtual(Eina_File *file); [ :eina_file_virtual, [ :eina_file ], :bool ], # EAPI Eina_Bool eina_file_refresh(Eina_File *file); [ :eina_file_refresh, [ :eina_file ], :bool ], # EAPI Eina_File * eina_file_dup(const Eina_File *file); [ :eina_file_dup, [ :eina_file ], :eina_file ], # EAPI void eina_file_close(Eina_File *file); [ :eina_file_close, [ :eina_file ], :void ], # EAPI size_t eina_file_size_get(const Eina_File *file); [ :eina_file_size_get, [ :eina_file ], :ulong ], # EAPI time_t eina_file_mtime_get(const Eina_File *file); [ :eina_file_mtime_get, [ :eina_file ], :ulong ], # EAPI const char *eina_file_filename_get(const Eina_File *file); [ :eina_file_filename_get, [ :eina_file ], :string ], # EAPI Eina_Iterator *eina_file_xattr_get(Eina_File *file); [ :eina_file_xattr_get, [ :eina_file ], :pointer ], # EAPI Eina_Iterator *eina_file_xattr_value_get(Eina_File *file); [ :eina_file_xattr_value_get, [ :eina_file ], :pointer ], # EAPI void *eina_file_map_all(Eina_File *file, Eina_File_Populate rule); [ :eina_file_map_all, [ :eina_file, :eina_file_populate ], :pointer ], # EAPI void *eina_file_map_new(Eina_File *file, Eina_File_Populate rule, unsigned long int offset, unsigned long int length); [ :eina_file_map_new, [ :eina_file, :eina_file_populate, :ulong, :ulong ], :pointer ], # EAPI void eina_file_map_free(Eina_File *file, void *map); [ :eina_file_map_free, [ :eina_file, :pointer ], :void ], # EAPI void eina_file_map_populate(Eina_File *file, Eina_File_Populate rule, const void *map, unsigned long int offset, unsigned long int length); [ :eina_file_map_populate, [ :eina_file, :eina_file_populate, :pointer, :ulong, :ulong ], :void ], # EAPI Eina_Iterator *eina_file_map_lines(Eina_File *file); [ :eina_file_map_lines, [ :eina_file ], :pointer ], # EAPI Eina_Bool eina_file_map_faulted(Eina_File *file, void *map); [ :eina_file_map_faulted, [ :eina_file, :pointer ], :bool ], ] # attach_fcts fcts # end end # # EOF