47 |
47 |
48 if ( iATExtClient.Handle() ) |
48 if ( iATExtClient.Handle() ) |
49 { |
49 { |
50 iATExtClient.Close(); |
50 iATExtClient.Close(); |
51 } |
51 } |
52 iCmdBuffer.Close(); |
|
53 iSystemReply.Close(); |
|
54 delete iRecvBuffer; |
|
55 delete iReplyBuffer; |
|
56 } |
52 } |
57 |
53 |
58 void CHFPAtCmdHandler::HandleCommand(const TDesC8& aAT, const TDesC8& aReply) |
54 void CHFPAtCmdHandler::HandleCommand(const TDesC8& aAT, const TDesC8& aReply) |
59 { |
55 { |
60 TRACE_INFO((_L8("default reply '%S'"), &aReply)) |
56 TRACE_INFO((_L8("default reply '%S'"), &aReply)) |
61 iCmdBuffer.Copy(aAT); |
57 iCmdBuffer.Copy(aAT); |
62 iReplyBuffer->Zero(); |
58 iReplyBuffer.Zero(); |
63 if (aReply.Length()) |
59 if (aReply.Length()) |
64 { |
60 { |
65 iReplyBuffer->Copy(aReply); |
61 iReplyBuffer.Copy(aReply); |
66 iSystemReply.Copy(aReply); |
62 iSystemReply.Copy(aReply); |
67 } |
63 } |
68 iATExtClient.HandleCommand(iCommander->iStatus, |
64 iATExtClient.HandleCommand(iCommander->iStatus, |
69 iCmdBuffer, *iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg); |
65 iCmdBuffer, iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg); |
70 iCommander->GoActive(); |
66 iCommander->GoActive(); |
71 } |
67 } |
72 |
68 |
73 void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr) |
69 void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr) |
74 { |
70 { |
81 if(err == KErrNone) |
77 if(err == KErrNone) |
82 { |
78 { |
83 if (iRemainingReplyLengthPckg()) |
79 if (iRemainingReplyLengthPckg()) |
84 { |
80 { |
85 TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer)) |
81 TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer)) |
86 iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer); |
82 iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer); |
87 do |
83 do |
88 { |
84 { |
89 TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg())) |
85 TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg())) |
90 RBuf8 reply; |
86 RBuf8 reply; |
91 reply.CreateL(iRemainingReplyLengthPckg()); |
87 reply.CreateL(iRemainingReplyLengthPckg()); |
92 err = iATExtClient.GetNextPartOfReply(*iRecvBuffer, iRemainingReplyLengthPckg()); |
88 err = iATExtClient.GetNextPartOfReply(iRecvBuffer, iRemainingReplyLengthPckg()); |
93 if (!err) |
89 if (!err) |
94 { |
90 { |
95 reply.Insert(0, *iRecvBuffer); |
91 reply.Insert(0, iRecvBuffer); |
96 } |
92 } |
97 TRACE_INFO((_L8("reply '%S'"), &reply)) |
93 TRACE_INFO((_L8("reply '%S'"), &reply)) |
98 iObserver.ATExtHandleReplyReceivedL(err, reply); |
94 iObserver.ATExtHandleReplyReceivedL(err, reply); |
99 reply.Close(); |
95 reply.Close(); |
100 } |
96 } |
101 while (iRemainingReplyLengthPckg()); |
97 while (iRemainingReplyLengthPckg()); |
102 } |
98 } |
103 else |
99 else |
104 { |
100 { |
105 TRACE_INFO((_L8("reply '%S'"), iReplyBuffer)) |
101 TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer)) |
106 iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer); |
102 iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer); |
107 } |
103 } |
108 } |
104 } |
109 else |
105 else |
110 { |
106 { |
111 iObserver.ATExtHandleReplyReceivedL(err, iSystemReply); |
107 iObserver.ATExtHandleReplyReceivedL(err, iSystemReply); |
161 CleanupStack::Pop( &iATExtClient ); |
157 CleanupStack::Pop( &iATExtClient ); |
162 iEcomListen = ecomListen; |
158 iEcomListen = ecomListen; |
163 |
159 |
164 StartUrc(); |
160 StartUrc(); |
165 iCommander = CBtmcActive::NewL(*this, CActive::EPriorityStandard, EHandleCommandRequest); |
161 iCommander = CBtmcActive::NewL(*this, CActive::EPriorityStandard, EHandleCommandRequest); |
166 iCmdBuffer.CreateL(KDefaultCmdBufLength); |
|
167 iRecvBuffer = new (ELeave) TBuf8<KDefaultCmdBufLength>(); |
|
168 iReplyBuffer = new (ELeave) TBuf8<KDefaultCmdBufLength>(); |
|
169 iSystemReply.CreateL(KDefaultUrcBufLength); |
|
170 TRACE_FUNC_EXIT |
162 TRACE_FUNC_EXIT |
171 } |
163 } |
172 |
164 |
173 |
165 |
174 // --------------------------------------------------------------------------- |
166 // --------------------------------------------------------------------------- |