GObject-based generic I/O


Some time ago, in a mailing list not far away,
a brief discussion happened about an extensible, pluggable I/O API
at the dependency level of glib or slightly above.
Independently, this Bugzilla entry existed for a while:


This finally led me to put together a humble attempt at a generic I/O
framework based on GObject. It's now available here:


The following ideas went into the design:

- Instead of a monolithic kitchen-faucet-and-sink object, create a
variety of classes representing different kinds of I/O entities. Each
class implements one or more concise interfaces that determine what
you can do; GoioReadable, GoioWritable and GoioFile are the interfaces
currently defined. For example, a socket object (not in the library
yet) would be readable and writable, but it won't exhibit methods
reserved for files. An iconv converter for input would implement
GoioReadable and use another GoioReadable as a source, and so on.

- Make use of GObject for runtime type checks, refcounting and
signalling, to allow assembling I/O processing chains easier and safer.

Thanks to Jody Goldberg for insights.

Stay tuned,
  MhZ                                     JID: mhz altlinux org
Whatever you do will be insignificant, but it is very important that you do it.
		-- Gandhi

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]