diff -r 4dc88a4ac6f4 -r f6055a57ae18 obex/obexextensionapi/public/obexclienterrorresolver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/obex/obexextensionapi/public/obexclienterrorresolver.h Tue Oct 19 11:00:12 2010 +0800 @@ -0,0 +1,108 @@ +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file + @publishedPartner + @released +*/ + +#ifndef __OBEXCLIENTERRORRESOLVER_H +#define __OBEXCLIENTERRORRESOLVER_H + +#include + +class MObexClientErrorResolver; + +/** +Types of error set that an Obex client error can be resolved to. +*/ +enum TObexClientErrorResolutionSetType + { + /** + The basic error set that errors can be resolved to. + @see TObexClientBasicErrorResolutionSet + */ + EObexClientBasicErrorResolutionSet = 0, + }; + +/** +The basic error set that errors can be resolved to. +*/ +enum TObexClientBasicErrorResolutionSet + { + /** + The last client operation completed without error. + This value is unused but remains here for compatibility. + */ + EObexNoExtendedError = 0, + + /** + The last client operation completed without error. + */ + EObexRequestAccepted = 1, + + /** + The last client operation was unauthorised or resulted in + an error being returned from the server. + */ + EObexRequestNotAccepted = 2, + + /** + The last client operation timed out. + */ + EObexRequestTimeout = 3, + + /** + The last client operation was interrupted by an error + detected on the client side, which includes the following: + - Cancellation of the operation (Abort) + - Obex protocol error + - Out of memory condition + */ + EObexRequestLocalInterruption = 4, + + /** + The last client operation was interrupted due to the + transport link going down. This may be caused by: + - Failure to find a remote device capable of Obex + - Blocking of the IrDA beam + */ + EObexRequestLinkInterruption = 5, + }; + +/** +Extension class for CObexClient that allows Obex client applications to +retrieve an extended error code for the last completed client operation. +*/ +NONSHARABLE_CLASS(CObexClientErrorResolver) : public CBase + { +public: + IMPORT_C static CObexClientErrorResolver* NewL(CObexClient& aClient); + IMPORT_C static CObexClientErrorResolver* NewL(CObexClient& aClient, TObexClientErrorResolutionSetType aErrorSet); + IMPORT_C TUint LastError() const; + +private: + // Private constructor - this class is not intended for derivation. + CObexClientErrorResolver(CObexClient& aClient, TObexClientErrorResolutionSetType aErrorSet); + void ConstructL(); + +private: + CObexClient& iObexClient; + MObexClientErrorResolver* iClientErrorResolver; + TObexClientErrorResolutionSetType iErrorSet; + }; + +#endif // __OBEXCLIENTERRORRESOLVER_H