#include "nsISupports.idl" #include "IPasspetContinuation.idl" // UUID version 5 for http://passpet.org/XPCOM/IPasspetPersona [scriptable, uuid(b81226e5-ee8a-57e4-a31e-093e50509c0a)] interface IPasspetPersona : nsISupports { readonly attribute boolean initialized; readonly attribute boolean awake; readonly attribute ACString pid; readonly attribute ACString address; readonly attribute AString name; readonly attribute AString iconName; readonly attribute ACString icon; attribute long width; // Failure codes passed to cont.abort(). readonly attribute ACString SERVER_NOT_FOUND; readonly attribute ACString LOGIN_FAILED; readonly attribute ACString WRITE_REFUSED; readonly attribute ACString INVALID_REQUEST; readonly attribute ACString SERVER_ERROR; readonly attribute ACString CONNECTION_ERROR; // Valid method call sequences: // create, setup, [use petnames/passwords] // create, initialize, [use petnames/passwords] // load (initialized), awaken, [use petnames/passwords] // create, save ... // ... load (uninitialized), initialize, [use petnames/passwords] void create(in ACString pid, in ACString address, in AString name, in AString iconName, in ACString icon, in long width); void save(in boolean immediate); void load(in ACString pid); void setup(in AString secret, in long k1, in ACString V, in IPasspetContinuation cont); void initialize(in AString secret, in IPasspetContinuation cont); void awaken(in AString secret, in IPasspetContinuation cont); void sleep(); ACString findPetname(in AString petname); AString getPetname(in ACString siteid); void setPetname(in ACString siteid, in AString petname); AString getUsername(in ACString siteid); void setUsername(in ACString siteid, in AString username); ACString getPassword(in ACString siteid); void removeSite(in ACString siteid); };