imservices/imfeatureplugin/srcimoperations/imconversation/operationreceivemessage.cpp
author hgs
Wed, 03 Nov 2010 22:25:05 +0530
changeset 52 3d676fce9a4e
parent 51 61fad867f68e
permissions -rw-r--r--
201044_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Concrete im receive message operation
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#include <badesca.h>
hgs
parents:
diff changeset
    20
#include <ximpprotocolconnection.h>
hgs
parents:
diff changeset
    21
#include <protocolimfeatures.h>
hgs
parents:
diff changeset
    22
#include <protocolimconversation.h>
hgs
parents:
diff changeset
    23
#include "imconversationinfoimp.h"
hgs
parents:
diff changeset
    24
#include "operationreceivemessage.h"
hgs
parents:
diff changeset
    25
//#include "ximpoperationbase.h"
hgs
parents:
diff changeset
    26
//#include "ximpidentityimp.h"
hgs
parents:
diff changeset
    27
#include "conversationsubscriptionitem.h"
hgs
parents:
diff changeset
    28
#include "imdatacacheimp.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include "ximpobjecthelpers.h"
hgs
parents:
diff changeset
    31
#include "ximprestrictedobjectcollection.h"
hgs
parents:
diff changeset
    32
#include "ximphost.h"
hgs
parents:
diff changeset
    33
//#include "ximpstatusimp.h"
hgs
parents:
diff changeset
    34
//#include "ximprequestcompleteeventimp.h"
hgs
parents:
diff changeset
    35
#include "protocolimdatahostimp.h"
hgs
parents:
diff changeset
    36
#include "imlogutils.h"
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
#include "protocolimdatahost.h"
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
//#include "ximpsubscriptionitem.h"
hgs
parents:
diff changeset
    41
//#include "ximppsccontextimp.h"
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    46
// COperationReceiveMessage::COperationReceiveMessage()
hgs
parents:
diff changeset
    47
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    48
//
hgs
parents:
diff changeset
    49
EXPORT_C COperationReceiveMessage::COperationReceiveMessage()
hgs
parents:
diff changeset
    50
    {
hgs
parents:
diff changeset
    51
    XImLogger::Log(_L("COperationReceiveMessage::COperationReceiveMessage Started"));
hgs
parents:
diff changeset
    52
    XImLogger::Log(_L("COperationReceiveMessage::COperationReceiveMessage Completed"));
hgs
parents:
diff changeset
    53
    }
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    57
// COperationReceiveMessage::ConstructL()
hgs
parents:
diff changeset
    58
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    59
//
hgs
parents:
diff changeset
    60
void COperationReceiveMessage::ConstructL( const TDesC8& /*aParamPck */)
hgs
parents:
diff changeset
    61
    {
hgs
parents:
diff changeset
    62
    XImLogger::Log(_L("COperationReceiveMessage::ConstructL Started"));   
hgs
parents:
diff changeset
    63
    XImLogger::Log(_L("COperationReceiveMessage::ConstructL Completed"));
hgs
parents:
diff changeset
    64
    }
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
// COperationReceiveMessage::~COperationReceiveMessage()
hgs
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
//
hgs
parents:
diff changeset
    70
COperationReceiveMessage::~COperationReceiveMessage()
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
    XImLogger::Log(_L("COperationReceiveMessage::~COperationReceiveMessage Started"));
hgs
parents:
diff changeset
    73
    delete iConvInfo;
hgs
parents:
diff changeset
    74
    XImLogger::Log(_L("COperationReceiveMessage::~COperationReceiveMessage Completed"));
hgs
parents:
diff changeset
    75
    }
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    79
// COperationReceiveMessage::ProcessL()
hgs
parents:
diff changeset
    80
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    81
//
hgs
parents:
diff changeset
    82
void COperationReceiveMessage::ProcessL()
hgs
parents:
diff changeset
    83
    {
hgs
parents:
diff changeset
    84
	XImLogger::Log(_L("COperationReceiveMessage::ProcessL Started"));
hgs
parents:
diff changeset
    85
	CXIMPOperationBase::ProcessL();
hgs
parents:
diff changeset
    86
	MXIMPBase* object = NULL;
hgs
parents:
diff changeset
    87
	TBool force =  ETrue; 
hgs
parents:
diff changeset
    88
	
hgs
parents:
diff changeset
    89
	//iObjCollection->GetByType( object, MImConversationInfo::KInterfaceId );
hgs
parents:
diff changeset
    90
	MXIMPRestrictedObjectCollection *objCollection = CXIMPOperationBase::GetObjCollection() ;
hgs
parents:
diff changeset
    91
	
hgs
parents:
diff changeset
    92
	objCollection->GetByType( object, MImConversationInfo::KInterfaceId );
hgs
parents:
diff changeset
    93
	
hgs
parents:
diff changeset
    94
	if( object )
hgs
parents:
diff changeset
    95
		{  
hgs
parents:
diff changeset
    96
		iConvInfo = TXIMPGetImpClassOrPanic< CImConversationInfoImp >::From( *object );	
hgs
parents:
diff changeset
    97
		}
hgs
parents:
diff changeset
    98
	else
hgs
parents:
diff changeset
    99
		{
hgs
parents:
diff changeset
   100
		User::Leave( KErrArgument );
hgs
parents:
diff changeset
   101
		}
hgs
parents:
diff changeset
   102
		
hgs
parents:
diff changeset
   103
			
hgs
parents:
diff changeset
   104
	//CConversationSubscriptionItem& conversationItem = 
hgs
parents:
diff changeset
   105
	//iMyHost->ImDataAccess().ImDataCache().ConversationSubscriptionItemLC();
hgs
parents:
diff changeset
   106
	
hgs
parents:
diff changeset
   107
	//CConversationSubscriptionItem& conversationItem = 
hgs
parents:
diff changeset
   108
	//	iMyHost->GetProtocolHost(0).ImDataCache().ConversationSubscriptionItemLC() ;
hgs
parents:
diff changeset
   109
	
hgs
parents:
diff changeset
   110
	MProtocolImDataHost* imProtocolHost = 
hgs
parents:
diff changeset
   111
					static_cast <MProtocolImDataHost*> (iMyHost->GetProtocolHost(MProtocolImDataHost::KInterfaceId) );
hgs
parents:
diff changeset
   112
	
hgs
parents:
diff changeset
   113
	CConversationSubscriptionItem& conversationItem = 
hgs
parents:
diff changeset
   114
			imProtocolHost->ImDataCache().ConversationSubscriptionItemLC() ;
hgs
parents:
diff changeset
   115
	
hgs
parents:
diff changeset
   116
	conversationItem.SetConversationInfoL( iConvInfo ); 
hgs
parents:
diff changeset
   117
	
hgs
parents:
diff changeset
   118
	iConvInfo = NULL; // set to NULL since ownership is transfered
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
	//conversationItem.SynthesiseSubscriptionEventToL( iContext, force );
hgs
parents:
diff changeset
   121
	conversationItem.SynthesiseSubscriptionEventToL( CXIMPOperationBase::GetContext(), force );
hgs
parents:
diff changeset
   122
	
hgs
parents:
diff changeset
   123
	CleanupStack::PopAndDestroy(); // conversationItem
hgs
parents:
diff changeset
   124
	iMyHost->HandleAdaptationRequestCompleted( iReqId, KErrNone );
hgs
parents:
diff changeset
   125
	XImLogger::Log(_L("COperationReceiveMessage::ProcessL Completed"));
hgs
parents:
diff changeset
   126
	}
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   129
// COperationReceiveMessage::RequestCompleted()
hgs
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   131
//
hgs
parents:
diff changeset
   132
void COperationReceiveMessage::RequestCompletedL()
hgs
parents:
diff changeset
   133
    {
hgs
parents:
diff changeset
   134
    XImLogger::Log(_L("COperationReceiveMessage::RequestCompletedL Started"));
hgs
parents:
diff changeset
   135
    CXIMPOperationBase::RequestCompletedL();
hgs
parents:
diff changeset
   136
	XImLogger::Log(_L("COperationReceiveMessage::RequestCompletedL Completed"));
hgs
parents:
diff changeset
   137
    }
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   140
// COperationReceiveMessage::Type()
hgs
parents:
diff changeset
   141
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   142
//
hgs
parents:
diff changeset
   143
TInt COperationReceiveMessage::Type() const
hgs
parents:
diff changeset
   144
    {
hgs
parents:
diff changeset
   145
    return NImOps::EHandleReceiveMessage;
hgs
parents:
diff changeset
   146
    }
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
// End of file