--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cbsref/telephonyrefplugins/atltsy/atcommand/phone/inc/initializephone.h Tue Jul 06 15:36:38 2010 +0300
@@ -0,0 +1,226 @@
+// 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:
+// @file initializephone.h
+//
+
+#ifndef __INITIALIZEPHONE_H__
+#define __INITIALIZEPHONE_H__
+
+//user include
+#include "atcommandcontrolbase.h"
+#include "globalphonemanager.h"
+#include "atipcrequestcompleteobserver.h"
+
+// forward class
+class CATGetModemStatus;
+class CATNetworkRegistration;
+class CATSIMCard;
+class CATNetworkInfo;
+class CATGetSignal;
+class CATGetBattery;
+class CATHelperCommand;
+class CATNetworkRegStatusChange;
+class CNotifyBatteryAndSignal;
+class CGetCurrentNetworkInfo;
+
+/**
+ * CInitializePhone inherits from the CATCommandControlBase class.
+ *
+ */
+class CInitializePhone : public CATCommandControlBase, public MIpcRequestCompleteObserver
+{
+public:
+ /**
+ * Two-phased constructor.
+ * @param aGloblePhone
+ * @param aCtsyDispatcherCallback
+ * @param aNtwkRegStatusChange
+ * @param aNotifyBatteryAndSignal
+ */
+ static CInitializePhone* NewL(CGlobalPhonemanager& aGloblePhone,
+ CCtsyDispatcherCallback& aCtsyDispatcherCallback,
+ CATNetworkRegStatusChange& aNtwkRegStatusChange,
+ CNotifyBatteryAndSignal& aNotifyBatteryAndSignal);
+
+ /**
+ * Destructor
+ *
+ */
+ ~CInitializePhone();
+
+ virtual void AtCommandExecuteComplete(TAtEventSource aEventSource, TInt aStatus);
+
+ /**
+ * Start this request
+ */
+ void StartRequest();
+
+ /**
+ * Execute next request stored in request list
+ */
+ void ExecutePendingRequest();
+
+ /**
+ * Get the notification when one of the IPC request was complete
+ */
+ virtual void NotifyIpcRequestComplete(TInt aIpcId);
+
+ /**
+ * Append the IPC request to pending request list
+ */
+ void AppendIpcRequestToPendingListL(TInt aIpc);
+protected:
+ /**
+ * Constructor
+ *
+ * @param aGloblePhone
+ * @param aCtsyDispatcherCallback
+ * @param aNtwkRegStatusChange
+ * @param aNotifyBatteryAndSignal
+ */
+ CInitializePhone(CGlobalPhonemanager& aGloblePhone,
+ CCtsyDispatcherCallback& aCtsyDispatcherCallback,
+ CATNetworkRegStatusChange& aNtwkRegStatusChange,
+ CNotifyBatteryAndSignal& aNotifyBatteryAndSignal);
+ /**
+ * 2nd Constructor
+ */
+ void ConstructL();
+
+private:
+ /**
+ * Execute next AT commane
+ *
+ * @param aATString The context of excuting aommand
+ * @param aATType Identify the Type of AT Command
+ */
+ void ExecuteNextATHelpCommand(const TDesC8& aATString,TLtsyATCommandType aATType);
+ /**
+ * Start an AT Command
+ * @param aAtCommand the AT Command class
+ */
+ void StartATCommand(CAtCommandBase* aAtCommand);
+ /**
+ * End an AT Command
+ * @param aAtCommand the AT Command class
+ */
+ void CompleteATCommand(CAtCommandBase* aAtCommand);
+ /**
+ * Get modem status command finished
+ */
+ void ModemStatusComplete(TInt aError);
+ /**
+ * Set oper format command finished
+ */
+ void SetOperFormatComplete(const TInt aError);
+ /**
+ * Get network infomation command finished
+ */
+ void NetworkInfoComplete();
+ /**
+ * Get phone's signal infomation command finished
+ */
+ void GetSignalComplete(TInt aError);
+ /**
+ * Get phone's battery infomation command finished
+ */
+ void GetBatteryComplete(TInt aError);
+
+private:
+ /**
+ * AT type is used to identify AT command
+ */
+ TInt iATType;
+
+ /**
+ * Check if the current executed pending request is still running
+ */
+ TBool iIsPendingRequestStillRunning;
+
+ /**
+ * Get the current modem status
+ * Own
+ */
+ CATGetModemStatus* iATGetModemStatus;
+
+ /**
+ * Get the current network registration status
+ * Own
+ */
+ CATNetworkRegistration* iNetworkRegStatus;
+
+ /**
+ * Get the current SIM card status
+ * Own
+ */
+ CATSIMCard* iATSIMCard;
+
+ /**
+ * Get the current signal level
+ * Own
+ */
+ CATGetSignal* iATGetSignal;
+
+ /**
+ * Get the current battery level
+ * Own
+ */
+ CATGetBattery* iATGetBattery;
+
+ /**
+ * Helper command for get a set of phone info
+ * Own
+ */
+ CATHelperCommand* iATHelperCommand;
+
+ /**
+ * Get the current netwok info
+ * Own
+ */
+ CGetCurrentNetworkInfo* iATGetCurNetworkInfo;
+
+ /**
+ * Notify the regisration status change
+ * Not Own
+ */
+ CATNetworkRegStatusChange& iNtwkRegStatusChange;
+
+ /**
+ * Not Own
+ */
+ CNotifyBatteryAndSignal& iNotifyBatteryAndSignal;
+
+ /**
+ * Network infomation
+ */
+ RMobilePhone::TMobilePhoneNetworkInfoV5 iNetworkInfo;
+
+ /**
+ * Battery infomation
+ */
+ RMobilePhone::TMobilePhoneBatteryInfoV1 iBatteryInfo;
+
+ /**
+ * Signal infomation
+ */
+ TTsySignalInfo iSignalInfo;
+
+ /**
+ * This store the IPC request which should be handled specially as those IPC requests would be coming together.
+ * So we should store one or another before one of those special IPC requests was complete and then execute next request
+ * retrived from this store.
+ */
+ RArray<TInt> iPendingRequestList;
+};
+#endif //__INITIALIZEPHONE_H__