messagingfw/wappushfw/tpush/plugins/tpushapphandler/tpushapphandler.cpp
author hgs
Wed, 03 Nov 2010 22:41:46 +0530
changeset 62 db3f5fa34ec7
permissions -rw-r--r--
201044_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     2
// All rights reserved.
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     7
//
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    10
//
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    11
// Contributors:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    12
//
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    13
// Description:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    14
// tpushhandler.cpp
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    15
// 
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    16
//
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    17
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    18
// System includes
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    19
#include <e32base.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    20
#include <e32std.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    21
#include <ecom/implementationproxy.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    22
#include <push/pushdispatcher.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    23
#include <push/pushlog.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    24
#include <push/cpushhandlerbase.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    25
#include <push/pluginkiller.h>
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    26
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    27
// Local includes
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    28
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    29
_LIT(KReserved, "Reserved");
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    30
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    31
class CTPushAppHandler : public CPushHandlerBase
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    32
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    33
	public:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    34
	static CTPushAppHandler* NewL ();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    35
	virtual ~CTPushAppHandler();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    36
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    37
	private:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    38
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    39
	void HandleMessageL(CPushMessage* aPushMsg, TRequestStatus& aStatus);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    40
	void CancelHandleMessage();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    41
	void HandleMessageL(CPushMessage* aPushMsg);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    42
	virtual void CPushHandlerBase_Reserved1();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    43
	virtual void CPushHandlerBase_Reserved2();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    44
	private:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    45
	void DoCancel();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    46
	void RunL();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    47
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    48
	private:
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    49
	CTPushAppHandler();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    50
	};
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    51
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    52
CTPushAppHandler* CTPushAppHandler::NewL ()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    53
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    54
	CTPushAppHandler* self = new (ELeave)CTPushAppHandler;
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    55
	return self;
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    56
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    57
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    58
CTPushAppHandler::CTPushAppHandler ()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    59
: CPushHandlerBase()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    60
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    61
	CActiveScheduler::Add(this);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    62
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    63
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    64
CTPushAppHandler::~CTPushAppHandler ()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    65
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    66
	__LOG_PTR_DEBUG("CTPushAppHandler:: Destructor Called"); 
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    67
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    68
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    69
void CTPushAppHandler::HandleMessageL( CPushMessage* /* aPushMsg */, TRequestStatus& /* aStatus */ )
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    70
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    71
	// do nothing
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    72
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    73
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    74
void CTPushAppHandler::CancelHandleMessage()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    75
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    76
	// do nothing
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    77
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    78
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    79
void CTPushAppHandler::HandleMessageL ( CPushMessage* aPushMsg )
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    80
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    81
	 __LOG_PTR_DEBUG("CTPushAppHandler::HandleMessageL Sync Func. Called"); 	
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    82
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    83
	// plugin takes the ownership of the push message.
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    84
	CleanupStack::PushL ( aPushMsg );
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    85
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    86
	// Leave from here
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    87
	User::Leave ( KErrGeneral );
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    88
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    89
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    90
void CTPushAppHandler::DoCancel()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    91
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    92
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    93
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    94
void CTPushAppHandler::RunL()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    95
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    96
	SignalConfirmationStatus ( KErrNone );
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    97
	iPluginKiller->KillPushPlugin ();
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    98
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
    99
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   100
void CTPushAppHandler::CPushHandlerBase_Reserved1()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   101
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   102
	User::Panic(KReserved, KErrNotSupported);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   103
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   104
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   105
void CTPushAppHandler::CPushHandlerBase_Reserved2()
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   106
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   107
	User::Panic(KReserved, KErrNotSupported);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   108
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   109
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   110
const TImplementationProxy ImplementationTable[] = 
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   111
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   112
	IMPLEMENTATION_PROXY_ENTRY(0x102822AC,	CTPushAppHandler::NewL)
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   113
	};
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   114
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   115
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   116
EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   117
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   118
	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   119
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   120
	return ImplementationTable;
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   121
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   122
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   123
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   124
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   125
#ifndef EKA2
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   126
GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   127
//
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   128
// DLL entry point.
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   129
	{
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   130
	return(KErrNone);
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   131
	}
db3f5fa34ec7 201044_02
hgs
parents:
diff changeset
   132
#endif