Notes on implementing a Universal Content Provider * ucb/source/ucp/file: started reading, grief these guys are slap-stick about implementing the whole interface. FileProvider: XPropertySet, XFileIdentifierConverter, XContentIdentifierFactory, XContentProvider. * ucb/source/ucp/webdav: This provider is based on the ucb::ContentProviderImplHelper which seems to help, this code is in: * ucbhelper/inc/ucbhelper.hxx, etc. seems much simpler, should base our code on the webdav provider I think, only ~2678 lines - and has to do the auth stuff too. * see http://ucb.openoffice.org/ - lots of useful docs * package - provides zip file UCP. ** Properties + It seems properties are used on objects instead of having structured data, + Thus a File may have a 'ContentType', 'hidden' etc. properties + Properties seem not to extend to manipulating children ** Content <-> maps to a URI + encapsulates a resource + properties / events / 'commands' + may have children + File / Folder Contents + commands are opaque strings + open, delete, transfer, insert, getCommandInfo[!] etc. ** Content Service + XContent + XCommandProcessor + XPropertyContainer + XPropertiesChangeNotifier + XChild (optional) + XContentCreator (optional) ** Content commands + 'open' -> open for reading + 'insert' -> create / overwrite stream + 'globalTransfer' - possibly hooked by a higher level ? ** ContentProvider + factory for a set of Contents ** UCB == a set of UCPs. ** Authentication + DAVResourceAccess.cxx: new ucbhelper::SimpleAuthenticationRequest (); getInteractionHandler ... ** Component config + need to be mapped in officecfg/data/org/openoffice/ucb/Configuration.xcd + also need to 'register' in setup process get into applicat.rdb cf. libucpfile1.so 's registration * Chaos not good as a base to work from, use webdav/ucphelper. * webdav: + file by file clone ... * TODO + do we want to store our own mirror tree of 'Content's ? + implement 'transfer' ? + exchangeIdentity ? + what is the 'transient' concept ? is this for non-instantiated temporary local stuff ? we can bin that. * Registering: ran: regcomp -register -r /opt/OOInstall/program/applicat.rdb \ -c /opt/OOInstall/program/libucpgvfs1.so hacked: /opt/OOInstall/share/config/registry/instance/org/openoffice/ucb/Configuration.xml to use the GnomeVFSContentProvider * Commands ** open + seems to return a sequence of children if applied to a directory ** Registry screwups ... [ talked to Stephan B. on the phone ] * Configuation.xml - screwed up - * applicat.rdb - stuffed [!], copy from solver & register everything ... ** People constantly calling 'isFolder' + can't work without an InteractionEnvironment [!]