60 } |
60 } |
61 } |
61 } |
62 |
62 |
63 void CMMAStreamHandler::PrepareL() |
63 void CMMAStreamHandler::PrepareL() |
64 { |
64 { |
65 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::PrepareL state %d", iState); |
65 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::PrepareL state %d", iState); |
66 iState = EMMAStreamPrepare; |
66 iState = EMMAStreamPrepare; |
67 |
67 |
68 //reset request data for reading again from beginning |
68 //reset request data for reading again from beginning |
69 iRequests[0]->DataPtr().SetLength(0); |
69 iRequests[0]->DataPtr().SetLength(0); |
70 |
70 |
72 iSourceStream->Read(iRequests[ 0 ]); |
72 iSourceStream->Read(iRequests[ 0 ]); |
73 } |
73 } |
74 |
74 |
75 void CMMAStreamHandler::StartL() |
75 void CMMAStreamHandler::StartL() |
76 { |
76 { |
77 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL state %d", iState); |
77 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL state %d", iState); |
78 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data source request=%d", |
78 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data source request=%d", |
79 (TInt)iSourceStream->Request()); |
79 (TInt)iSourceStream->Request()); |
80 |
80 |
81 iState = EMMAStreamStart; |
81 iState = EMMAStreamStart; |
82 if (iSourceStream->Request()) |
82 if (iSourceStream->Request()) |
83 { // when read request is completed it will be written to server |
83 { |
|
84 // when read request is completed it will be written to server |
84 iState = EMMAStreamStarted; |
85 iState = EMMAStreamStarted; |
85 iListener.StartComplete(KErrNone); |
86 iListener.StartComplete(KErrNone); |
86 return; |
87 return; |
87 } |
88 } |
88 |
89 |
91 for (TInt i = 0; i < count && !started; i++) |
92 for (TInt i = 0; i < count && !started; i++) |
92 { |
93 { |
93 CMMAStreamRequest* r = iRequests[ i ]; |
94 CMMAStreamRequest* r = iRequests[ i ]; |
94 if (!r->IsActive() && r->DataPtr().Length() > 0) |
95 if (!r->IsActive() && r->DataPtr().Length() > 0) |
95 { |
96 { |
96 LOG( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL write request to server"); |
97 LOG(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL write request to server"); |
97 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL request length=%d", |
98 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL request length=%d", |
98 r->DataPtr().Length()); |
99 r->DataPtr().Length()); |
99 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL last buffer %d", |
100 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL last buffer %d", |
100 r->RequestBuffer()()); |
101 r->RequestBuffer()()); |
101 |
102 |
102 // data was not yet written to server |
103 // data was not yet written to server |
103 WriteRequest(r); |
104 WriteRequest(r); |
104 started = ETrue; |
105 started = ETrue; |
105 } |
106 } |
106 else if (r->IsActive()) // data is in server |
107 else if (r->IsActive()) // data is in server |
107 { |
108 { |
108 LOG( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data is in server"); |
109 LOG(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::StartL data is in server"); |
109 // atleast one request is not processed |
110 // atleast one request is not processed |
110 started = ETrue; |
111 started = ETrue; |
111 } |
112 } |
112 } |
113 } |
113 if (started) // If allready started complete start |
114 if (started) // If allready started complete start |
138 iSourceStream = aSourceStream; |
139 iSourceStream = aSourceStream; |
139 } |
140 } |
140 |
141 |
141 void CMMAStreamHandler::WriteComplete(CMMAStreamRequest* aRequest) |
142 void CMMAStreamHandler::WriteComplete(CMMAStreamRequest* aRequest) |
142 { |
143 { |
143 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete state=%d", iState); |
144 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete state=%d", iState); |
144 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete request length=%d", |
145 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete request length=%d", |
145 aRequest->DataPtr().Length()); |
146 aRequest->DataPtr().Length()); |
146 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete last buffer %d", |
147 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::WriteComplete last buffer %d", |
147 aRequest->RequestBuffer()()); |
148 aRequest->RequestBuffer()()); |
148 if (iState == EMMAStreamStarted) |
149 if (iState == EMMAStreamStarted) |
149 { |
150 { |
150 if (aRequest->RequestBuffer()() == 1) |
151 if (aRequest->RequestBuffer()() == 1) |
151 { |
152 { |
152 iState = EMMAStreamEof; |
153 iState = EMMAStreamEof; |
182 } |
183 } |
183 |
184 |
184 void CMMAStreamHandler::HandleError(CMMAStreamRequest* /*aRequest*/, |
185 void CMMAStreamHandler::HandleError(CMMAStreamRequest* /*aRequest*/, |
185 TInt aError) |
186 TInt aError) |
186 { |
187 { |
187 LOG1( EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::HandleError state=%d", iState); |
188 LOG1(EJavaMMAPI, EInfo, "MMA::CMMAStreamHandler::HandleError state=%d", iState); |
188 if (iState == EMMAStreamPrepare) |
189 if (iState == EMMAStreamPrepare) |
189 { |
190 { |
190 iListener.PrepareComplete(aError); |
191 iListener.PrepareComplete(aError); |
191 iState = EMMAStreamPaused; |
192 iState = EMMAStreamPaused; |
192 } |
193 } |