src/ext/amaretto/inbox/inc/inbox.h
changeset 0 ca70ae20a155
--- /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 <e32std.h>
+#include <eikenv.h>
+#include <txtrich.h>
+
+#include <mtclbase.h>
+#include <msvapi.h>
+#include <mtclreg.h>
+#include <msvids.h>
+#include <smut.h>
+
+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<TMsvId>* 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;
+};