diff -r 000000000000 -r ca70ae20a155 src/ext/amaretto/inbox/inc/inbox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ext/amaretto/inbox/inc/inbox.h Tue Feb 16 10:07:05 2010 +0530 @@ -0,0 +1,88 @@ +/** + * ==================================================================== + * inbox.h + * Copyright (c) 2005-2007 Nokia Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +#include "Python.h" + +#include "symbian_python_ext_util.h" +#include +#include +#include + +#include +#include +#include +#include +#include + +const TInt KMessageBodySize = 512; +const TInt KMessageAddressLength = 512; + +class TPyInbCallBack + { + public: + TInt NewInboxEntryCreated(TInt aArg); + public: + PyObject* iCb; // Not owned. + }; + +#ifndef EKA2 +class CInboxAdapter : public CBase, public MMsvSessionObserver +#else +NONSHARABLE_CLASS (CInboxAdapter) : public CBase, public MMsvSessionObserver +#endif + { +public: + static CInboxAdapter* NewL(TMsvId&); + static CInboxAdapter* NewLC(TMsvId&); + ~CInboxAdapter(); +public: + void DeleteMessageL(TMsvId aMessageId); + void GetMessageTimeL(TMsvId aMessageId, TTime& aTime); + void GetMessageUnreadL(TMsvId aMessageId, TBool& aUnread); + void SetMessageUnreadL(TMsvId aMessageId, TBool aStatus); + void GetMessageAddressL(TMsvId aMessageId, TDes& aAddress); + CArrayFixFlat* GetMessagesL(); // Passes ownership + TBool GetMessageL(TMsvId aMessageId, TDes& aMessage); + void SetCallBack(TPyInbCallBack &aCb); +private: + void ConstructL(); + void CompleteConstructL(); +private: + TPyInbCallBack iCallMe; + TInt iErrorState; + TBool iCallBackSet; +private: // from MMsvSessionObserver + void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); +private: + CMsvSession* iSession; // msg server session + CBaseMtm* iMtm; // Client MTM + CClientMtmRegistry* iMtmReg; // Client MTM registry + TMsvId iFolderType; + }; + +//////////////TYPE DEFINITION///////////////// + +#define INB_type ((PyTypeObject*)SPyGetGlobalString("INBType")) + +struct INB_object { + PyObject_VAR_HEAD + CInboxAdapter* inbox; + TPyInbCallBack myCallBack; + TBool callBackSet; +};