cbsref/telephonyrefplugins/atltsy/atcommand/generic/inc/asynchelperrequest.h
author hgs
Tue, 22 Jun 2010 11:02:32 +0100
changeset 44 8b72faa1200f
permissions -rw-r--r--
201024_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     2
// All rights reserved.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     7
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    10
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    11
// Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    12
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    13
// Description:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    14
// @file asynchelperrequest.h
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    15
// 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    16
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    17
#ifndef __ASYNCHELPERREQUEST_H__
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    18
#define __ASYNCHELPERREQUEST_H__
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    19
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    20
//system include
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    21
#include <e32base.h>
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    22
//user include
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    23
#include "cltsypacketserviceshandler.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    24
// forward class
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    25
class CCtsyDispatcherCallback;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    26
class CGlobalPhonemanager;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    27
/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    28
 * This is a helper class. 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    29
 * There are sometimes, CTSY passed an asynchronous request to LTSY, and LTSY alreay know what should be returned(No need to Send AT command to Baseband).
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    30
 * But as the passed request is 'Asynchronous', so we have to somehow return this value to CTSY in an asynchronous way.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    31
 * So we just inherit form CTimer which an Active object, and reuturn the alreay-known value to CTSY some time later.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    32
 *  
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    33
 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    34
class CAsyncHelperRequest : public CTimer
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    35
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    36
public:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    37
	/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    38
	 * 2nd Constructor
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    39
	 *
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    40
	 * @param aGloblePhone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    41
	 * @param aCtsyDispatcherCallback
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    42
	 * @param aPriority
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    43
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    44
	static CAsyncHelperRequest* NewL(CGlobalPhonemanager& aGloblePhone,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    45
			                   CCtsyDispatcherCallback& aCallBack,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    46
			                   TInt aPriority = CActive::EPriorityLow);	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    47
	/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    48
	 * Destructor
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    49
	 *
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    50
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    51
	virtual ~CAsyncHelperRequest();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    52
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    53
	/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    54
	 * Set request IPC
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    55
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    56
	void SetRequestId(const TInt aIpc);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    57
protected:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    58
    /**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    59
     * constructor
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    60
     */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    61
	CAsyncHelperRequest(CGlobalPhonemanager& aGloblePhone,CCtsyDispatcherCallback& aCallBack,TInt aPriority);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    62
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    63
	/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    64
	 * Typicl RunL which inherit from CActive
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    65
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    66
	virtual void RunL();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    67
private:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    68
    /**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    69
     * Start the timer
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    70
     */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    71
	void StartTimer(const TTimeIntervalMicroSeconds32 aTimeout = 100000);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    72
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    73
	/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    74
	 * Stop the timer
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    75
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    76
	void StopTimer();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    77
protected:	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    78
    /**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    79
     * Call back dispatcher
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    80
     */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    81
    CCtsyDispatcherCallback& iCallBack;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    82
    
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    83
    /**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    84
     * The global phone reference
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    85
     */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    86
    CGlobalPhonemanager& iGloblePhone;	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    87
private:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    88
    /**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    89
     * The IPC requtest ID which is used to identiy what callback function should be returned
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    90
     */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    91
	TInt iRequestId;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    92
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    93
	/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    94
	 * Store the IPC request ID
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    95
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    96
	RArray<TInt> iReqArray;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    97
	/*
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    98
	 * The context to be set configuration
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    99
	 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   100
	TInt iContextId;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   101
	};
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   102
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   103
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   104
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   105
#endif //__ASYNCHELPERREQUEST_H__