/* * Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. * W3C liability, trademark and document use rules apply. * * W3C Web Storage * W3C Working Draft 21 April 2009 * http://dev.w3.org/html5/webstorage/ */ #ifndef _WEBSTORAGE_IDL_ #define _WEBSTORAGE_IDL_ #include "w3c/html5.idl" module webstorage { typedef events::Event Event; typedef html5::WindowProxy WindowProxy; interface Storage { readonly attribute unsigned long length; getter DOMString key(in unsigned long index); getter DOMString getItem(in DOMString key); setter void setItem(in DOMString key, in DOMString data); deleter void removeItem(in DOMString key); void clear(); }; interface StorageEvent : Event { readonly attribute DOMString key; readonly attribute DOMString oldValue; readonly attribute DOMString newValue; readonly attribute DOMString url; readonly attribute WindowProxy source; readonly attribute Storage storageArea; void initStorageEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in WindowProxy sourceArg, in Storage storageAreaArg); void initStorageEventNS(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in WindowProxy sourceArg, in Storage storageAreaArg); }; interface Database { void transaction(in SQLTransactionCallback callback, in optional SQLTransactionErrorCallback errorCallback, in optional SQLVoidCallback successCallback); void readTransaction(in SQLTransactionCallback callback, in optional SQLTransactionErrorCallback errorCallback, in optional SQLVoidCallback successCallback); readonly attribute DOMString version; void changeVersion(in DOMString oldVersion, in DOMString newVersion, in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in SQLVoidCallback successCallback); }; [Callback=FunctionOnly, NoInterfaceObject] interface SQLVoidCallback { void handleEvent(); }; [Callback=FunctionOnly, NoInterfaceObject] interface SQLTransactionCallback { void handleEvent(in SQLTransaction transaction); }; [Callback=FunctionOnly, NoInterfaceObject] interface SQLTransactionErrorCallback { void handleEvent(in SQLError error); }; typedef sequence ObjectArray; interface SQLTransaction { void executeSql(in DOMString sqlStatement, in optional ObjectArray arguments, in optional SQLStatementCallback callback, in optional SQLStatementErrorCallback errorCallback); }; [Callback=FunctionOnly, NoInterfaceObject] interface SQLStatementCallback { void handleEvent(in SQLTransaction transaction, in SQLResultSet resultSet); }; [Callback=FunctionOnly, NoInterfaceObject] interface SQLStatementErrorCallback { boolean handleEvent(in SQLTransaction transaction, in SQLError error); }; interface DatabaseSync { SQLTransactionSync transaction(); SQLTransactionSync readTransaction(); readonly attribute DOMString version; SQLTransactionSync changeVersion(in DOMString oldVersion, in DOMString newVersion); }; // typedef sequence ObjectArray; interface SQLTransactionSync { SQLResultSet executeSql(in DOMString sqlStatement, in optional ObjectArray arguments); void commit(); }; interface SQLResultSet { readonly attribute long insertId; readonly attribute long rowsAffected; readonly attribute SQLResultSetRowList rows; }; interface SQLResultSetRowList { readonly attribute unsigned long length; getter any item(in unsigned long index); }; interface SQLError { readonly attribute unsigned long code; readonly attribute DOMString message; }; exception SQLException { unsigned long code; DOMString message; }; }; // module webstorage #endif // _WEBSTORAGE_IDL_