
/*
 * weinre is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2011 IBM Corporation
 */

require ../common/Weinre

//-----------------------------------------------------------------------------
class WiDOMStorageImpl

//-----------------------------------------------------------------------------
method getDOMStorageEntries(/*int*/ storageId, callback)
    // callback: function(/*any[]*/ entries)
    Weinre.notImplemented(arguments.callee.signature)

//-----------------------------------------------------------------------------
method setDOMStorageItem(/*int*/ storageId, /*string*/ key, /*string*/ value, callback)
    // callback: function(/*boolean*/ success)
    Weinre.notImplemented(arguments.callee.signature)

//-----------------------------------------------------------------------------
method removeDOMStorageItem(/*int*/ storageId, /*string*/ key, callback)
    // callback: function(/*boolean*/ success)
    Weinre.notImplemented(arguments.callee.signature)