[Kazehakase-devel 1083] KzIO修正案

アーカイブの一覧に戻る

Hiroyuki Ikezoe poinc****@ikezo*****
2004年 4月 10日 (土) 10:02:29 JST


zoeです。

足永さんにダメだしされているKzIOの修正案を考えてみました。

あほみたいにシグナル発行しまくりのスタイルをやめて、通信開始関数の引数に
コールバック関数を与えてやって、通信終了およびエラーの時にコールバック関
数を呼ぶようにしようと。

struct _KzIOClass
{
  GObjectClass parent_class;
        
  /* -- signals -- */         
  void (*progress)            (KzIO *io, gsize len, const gchar *buf);  
};

typedef void (* KzIOCompleteFunc) (KzIO *io,
                                   gboolean error,
                                   gpointer user_data);

KzIO  *kz_io_new                  (const gchar *uri);
void   kz_io_load_to_buffer       (KzIO *io,                            
                                            KzIOCompleteFunc func,    
              	  		           gpointer user_data);
void   kz_io_load_to_file        (KzIO *io,
                                   const gchar *filename,
                                   KzIOCompleteFunc func,
                                   gpointer user_data);
void   kz_io_write                (KzIO *io,
                                   const gchar *buffer,
                                   KzIOCompleteFunc func,
                                   gpointer user_data);

gdouble      kz_io_get_progress     (KzIO *io);
gsize        kz_io_get_loaded_size  (KzIO *io);
gsize        kz_io_get_file_size    (KzIO *io);
guint        kz_io_get_lastmodified (KzIO *io);
const gchar *kz_io_get_buffer       (KzIO *io);
void         kz_io_stop             (KzIO *io);

こんな感じで。

今のメモリ読み込みモードはなくして、メモリに読み込みたい場合は
kz_io_load_to_buffer()
ファイルに保存したい時は
kz_io_load_to_file()
を使うと。

シグナル発行しない分すっきりしますし、パフォーマンスも少し上がると思うん
ですが、どうでしょう?



Kazehakase-devel メーリングリストの案内
アーカイブの一覧に戻る