cbsref/telephonyrefplugins/atltsy/atcommand/phone/src/getfdnstatus.cpp
author hgs
Thu, 07 Oct 2010 11:24:36 +0100
changeset 76 91e0f833dd8b
parent 44 8b72faa1200f
permissions -rw-r--r--
201039_01
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
// CATGetModemStatus
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    15
// Description:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    16
// CGetFdnStatus
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    17
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    18
#include "getfdnstatus.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    19
#include "mslogger.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    20
#include "atgetfdnsupport.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    21
#include "atgetfdnstatus.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    22
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    23
// Class CGetFdnStatus
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    24
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    25
// CGetFdnStatus::NewL
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    26
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    27
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    28
CGetFdnStatus* CGetFdnStatus::NewL(CGlobalPhonemanager& aGloblePhone, 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    29
	                               CCtsyDispatcherCallback& aCtsyDispatcherCallback)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    30
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    31
	CGetFdnStatus* self = new(ELeave) CGetFdnStatus(aGloblePhone,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    32
			                                        aCtsyDispatcherCallback);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    33
	CleanupStack::PushL(self );
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    34
	self->ConstructL();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    35
	CleanupStack::Pop(self);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    36
	return self ;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    37
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    38
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    39
// CGetFdnStatus::CGetFdnStatus
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    40
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    41
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    42
CGetFdnStatus::CGetFdnStatus(CGlobalPhonemanager& aGloblePhone, 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    43
	                         CCtsyDispatcherCallback& aCtsyDispatcherCallback)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    44
		:CATCommandControlBase(aGloblePhone,aCtsyDispatcherCallback)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    45
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    46
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    47
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    48
// CGetFdnStatus::ConstructL
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    49
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    50
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    51
void CGetFdnStatus::ConstructL()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    52
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    53
	iATCommandName = EATNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    54
	iATGetFdnStatus = CATGetFdnStatus::NewL(iPhoneGlobals,iCtsyDispatcherCallback);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    55
	iATGetFdnSupport = CATGetFdnSupport::NewL(iPhoneGlobals,iCtsyDispatcherCallback);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    56
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    57
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    58
// CGetFdnStatus::~CGetFdnStatus
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    59
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    60
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    61
CGetFdnStatus::~CGetFdnStatus()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    62
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    63
	delete iATGetFdnStatus;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    64
	iATGetFdnStatus = NULL;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    65
	delete iATGetFdnSupport;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    66
	iATGetFdnSupport = NULL;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    67
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    69
// CGetFdnStatus::AtCommandExecuteComplete
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    70
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    71
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    72
void CGetFdnStatus::AtCommandExecuteComplete(TAtEventSource aEventSource, TInt aStatus)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    73
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    74
	if((aEventSource == EWriteCompletion)&&(KErrNone == aStatus))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    75
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    76
		return;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    77
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    78
	switch(iATType)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    79
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    80
		case ELtsyAT_Phone_CheckFdnSupport:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    81
			if((KErrNone == aStatus)&&(aEventSource == EReadCompletion))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    82
				{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    83
				aStatus = iATGetFdnSupport->GetErrorValue();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    84
				}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    85
			iATGetFdnSupport->RemoveAtCommandObserver();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    86
			FdnSupportComplete(aStatus);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    87
			break;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    88
		case ELtsyAT_Phone_GetFdnStatus: 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    89
			if((KErrNone == aStatus)&&(aEventSource == EReadCompletion))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    90
				{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    91
				aStatus = iATGetFdnStatus->GetErrorValue();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    92
				}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    93
			FdnStatusComplete(aStatus);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    94
			EndATCommand(iATGetFdnStatus);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    95
			delete iATGetFdnStatus;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    96
			iATGetFdnStatus = NULL;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    97
			iPhoneGlobals.iEventSignalActive = EFalse;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    98
			break;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    99
		default:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   100
			break;
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
// CGetFdnStatus::StartRequestL
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   105
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   106
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   107
void CGetFdnStatus::StartRequest()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   108
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   109
	StartATCommand(iATGetFdnSupport);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   110
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   111
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   112
// CGetFdnStatus::HandleFdnSupport
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   113
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   114
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   115
void CGetFdnStatus::FdnSupportComplete(const TInt aError)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   116
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   117
	if((KErrNone == aError)&&(iATGetFdnSupport->GetFdnSupport()))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   118
		{	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   119
		EndATCommand(iATGetFdnSupport);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   120
		StartATCommand(iATGetFdnStatus);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   121
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   122
	else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   123
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   124
		EndATCommand(iATGetFdnSupport);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   125
		iPhoneGlobals.iEventSignalActive = EFalse;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   126
		iCtsyDispatcherCallback.CallbackPhoneGetFdnStatusComp(aError,RMobilePhone::EFdnUnknown);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   127
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   128
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   129
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   130
// CGetFdnStatus::FdnStatusComplete
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   131
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   132
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   133
void CGetFdnStatus::FdnStatusComplete(const TInt aError)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   134
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   135
	if((KErrNone == aError)&&(iATGetFdnStatus->GetFdnStatus()))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   136
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   137
		iCtsyDispatcherCallback.CallbackPhoneGetFdnStatusComp(aError,RMobilePhone::EFdnActive);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   138
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   139
	else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   140
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   141
		iCtsyDispatcherCallback.CallbackPhoneGetFdnStatusComp(aError,RMobilePhone::EFdnNotActive);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   142
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   143
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   144
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   145
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   146
// CGetFdnStatus::StartATCommand
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   147
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   148
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   149
void CGetFdnStatus::StartATCommand(CAtCommandBase* aAtCommand)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   150
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   151
	aAtCommand->SetAtCommandObserver(this);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   152
	iATType = aAtCommand->AtType();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   153
	aAtCommand->StartRequest();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   154
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   155
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   156
// CGetFdnStatus::EndATCommand
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   157
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   158
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   159
void CGetFdnStatus::EndATCommand(CAtCommandBase* aAtCommand)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   160
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   161
	aAtCommand->RemoveAtCommandObserver();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   162
	aAtCommand->Complete();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   163
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   164
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   165
// End of file