cbsref/telephonyrefplugins/atltsy/handler/inc/cltsysmshandler.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:23:08 +0300
branchRCL_3
changeset 65 630d2f34d719
permissions -rw-r--r--
Revision: 201035 Kit: 201035

// Copyright (c) 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:
// CLtsySmsHandler

#ifndef __CLTSYDISPATCHSMSHANDLER_H_
#define __CLTSYDISPATCHSMSHANDLER_H_

// INCLUDES
#include <e32std.h>
#include <e32base.h>

#include <ctsy/ltsy/mltsydispatchinterface.h>
#include <ctsy/ltsy/mltsydispatchsmsinterface.h>
#include "misdispatchinterfacesupported.h"
#include "ltsymacros.h"

// FORWARD DECLARATIONS
class CCtsyDispatcherCallback;
class CGlobalPhonemanager;
class CAtSmsReceive;
class CAsyncHelperRequest;
// Can be removed in real LTSY implementation
MTEST_FORWARD_DECLARE_MOCKLTSYENGINE

// CLASS DECLARATION
/**
 * Implements interfaces from the CTSY Dispatcher. The CTSY Dispatcher uses these
 * interfaces to make requests to the Licensee LTSY.
 */
class CLtsySmsHandler : 	public CBase,
							public MIsDispatchInterfaceSupported, 
							public MLtsyDispatchSmsSendSatSms,
							public MLtsyDispatchSmsGetSmsStoreInfo,
							public MLtsyDispatchSmsGetSmspList,
							public MLtsyDispatchSmsNackSmsStored,
							public MLtsyDispatchSmsAckSmsStored,
							public MLtsyDispatchSmsResumeSmsReception,
							public MLtsyDispatchSmsSendSmsMessage,
							public MLtsyDispatchSmsSendSmsMessageNoFdnCheck,
							public MLtsyDispatchSmsSetMoSmsBearer,
							public MLtsyDispatchSmsStoreSmspListEntry
{
public:

	virtual ~CLtsySmsHandler();
	static CLtsySmsHandler* NewL(CCtsyDispatcherCallback& aCtsyDispatcherCallback,CGlobalPhonemanager* aGloblePhone);
	static CLtsySmsHandler* NewLC(CCtsyDispatcherCallback& aCtsyDispatcherCallback,CGlobalPhonemanager* aGloblePhone);

	// From MIsDispatchInterfaceSupported
	virtual TBool IsInterfaceSupported(TLtsyDispatchInterfaceApiId aDispatchApiId);
	void IsCallbackIndicatorSupported(TLtsyDispatchIndIdGroup aIdGroup, TUint32& aIndIdBitMask);
	


    // From MLtsyDispatchSmsSendSatSms
    virtual TInt HandleSendSatSmsReqL( const TDesC8& aSmsTpdu,
    										   RMobileSmsMessaging::TMobileSmsDataFormat aDataFormat,
    										   const RMobilePhone::TMobileAddress& aGsmServiceCentre,
    										   TBool aMoreMessages
    										  );
    
    // From MLtsyDispatchSmsGetSmsStoreInfo
    virtual TInt HandleGetSmsStoreInfoReqL(/* TODO: Add request params here */);

    // From MLtsyDispatchSmsGetSmspList
    virtual TInt HandleGetSmspListReqL(/* TODO: Add request params here */);

    // From MLtsyDispatchSmsNackSmsStored
    virtual TInt HandleNackSmsStoredReqL(const TDesC8& aMsgPtr, TInt aRpCause);
    
    // From MLtsyDispatchSmsNackSmsStored
    virtual TInt HandleNackSmsStoredReqL(TInt aRpCause);

    // From MLtsyDispatchSmsAckSmsStored
    virtual TInt HandleAckSmsStoredReqL(const TDesC8& aMsgPtr);
    
    // From MLtsyDispatchSmsAckSmsStored
    virtual TInt HandleAckSmsStoredReqL();

    // From MLtsyDispatchSmsResumeSmsReception
    virtual TInt HandleResumeSmsReceptionReqL(/* TODO: Add request params here */);

    // From MLtsyDispatchSmsSendSmsMessage
    virtual TInt HandleSendSmsMessageReqL( const RMobilePhone::TMobileAddress& aDestination,
        								   const TDesC8& aSmsTpdu,
        								   RMobileSmsMessaging::TMobileSmsDataFormat aDataFormat,
        								   const RMobilePhone::TMobileAddress& aGsmServiceCentre,
        								   TBool aMoreMessages
        								  ) ;

    // From MLtsyDispatchSmsSendSmsMessageNoFdnCheck
    virtual TInt HandleSendSmsMessageNoFdnCheckReqL( const RMobilePhone::TMobileAddress& aDestination,
    												 const TDesC8& aSmsTpdu,
    											     RMobileSmsMessaging::TMobileSmsDataFormat aDataFormat,
    											     const RMobilePhone::TMobileAddress& aGsmServiceCentre,
    											     TBool aMoreMessages
    											    ) ;

    // From MLtsyDispatchSmsSetMoSmsBearer
    virtual TInt HandleSetMoSmsBearerReqL(RMobileSmsMessaging::TMobileSmsBearer aBearer);

    // From MLtsyDispatchSmsStoreSmspList
    virtual TInt HandleStoreSmspListEntryReqL(const RMobileSmsMessaging::TMobileSmspEntryV1& aSmsParam);
   
private:
	
	CLtsySmsHandler(CCtsyDispatcherCallback& aCtsyDispatcherCallback,CGlobalPhonemanager* aGloblePhone);
	void ConstructL();

private:
	
	// Not owned
	
	/**
	 * Callback object in the CTSY Dispatcher.
	 * 
	 * Used to complete a request back to the CTSY Dispatcher.
	 */
	CCtsyDispatcherCallback& iCtsyDispatcherCallback;
	CGlobalPhonemanager* iGloblePhone;
	CAtSmsReceive       *iAtSmsReceive;
	CAsyncHelperRequest* iAsyncHelperRequest;
	
	}; // class CLtsySmsHandler

#endif // __CLTSYDISPATCHSMSHANDLER_H_