Porting kio-slaves to GnomeVFS modules
nf2
nf2 at scheinwelt.at
Tue Jan 4 11:34:29 GMT 2005
Thiago Macieira wrote:
>nf wrote:
>
>
>>>You'll need to reimplement the SlaveBase class in order to receive
>>>input from the Gnome-VFS master. However, bear in mind that you must
>>>respect the usual C++ Binary Compatibility guidelines when doing so.
>>>
>>>
>>I think we can't use them "as is". So binary compatibility won't be
>>possible. The main reason is that io-slaves are designed to run async
>>only. Therefore they provide single methods for "get", "put" or
>>"readDir" and push back data with callbacks.
>>
>>
>
>Binary Compatibility is not an option if you want to make anything useful.
>You have to be binary compatible.
>
>You'll have the option to influence the ABI when KDE goes 4.0. But not
>before, nor ever again until 5.0.
>
>
>
Of course i need to take care of that. If i put them into a different
library, which gets called by Wrapper (to sit in KIO or GnomeVFS),
binary compatibility shouldn't be an issue. :-)
But i do have questions about kio-slaves and binary compatibility. For
instance when i want to add fields to the AuthInfo class. GnomeVFS wants
a "domain" field for SMB authentication for instance.
(see
http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-standard-callbacks.h?rev=1.12&view=auto
GnomeVFSModuleCallbackFullAuthenticationIn / GnomeVFSModuleCallbackFullAuthenticationOut.
)
Let's say i want to inherit AuthInfo with the class "AdvancedAuthInfo".
The documentation says that's possible: "If you extend this class to add
additional parameters do not forget to overload the stream insertion and
extraction operators ("<<" and ">>") so that the added data can be
correctly serialized."
But how does the deserializer know whether is receives a AuthInfo or
AdvancedAuthInfo object?
Or would it be better to add a "openAdvancedPassDlg" method to
SlaveBase. Would that break binary compatibility?
Regards,
Norbert
More information about the kde-core-devel
mailing list