11 // Contributors: |
11 // Contributors: |
12 // |
12 // |
13 // Description: |
13 // Description: |
14 // |
14 // |
15 |
15 |
16 |
16 #include "mtpdebug.h" |
17 #include "cptpipsockethandler.h" //CPTPIPSockethandler |
17 |
|
18 #include "cptpipsockethandler.h" |
|
19 #include "OstTraceDefinitions.h" |
|
20 #ifdef OST_TRACE_COMPILER_IN_USE |
|
21 #include "cptpipsockethandlerTraces.h" |
|
22 #endif |
|
23 //CPTPIPSockethandler |
18 |
24 |
19 |
25 |
20 |
26 |
21 CPTPIPSocketHandler* CPTPIPSocketHandler::NewLC() |
27 CPTPIPSocketHandler* CPTPIPSocketHandler::NewLC() |
22 { |
28 { |
|
29 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_NEWLC_ENTRY ); |
23 CPTPIPSocketHandler* self = new (ELeave) CPTPIPSocketHandler; |
30 CPTPIPSocketHandler* self = new (ELeave) CPTPIPSocketHandler; |
24 CleanupStack::PushL(self); |
31 CleanupStack::PushL(self); |
25 self->ConstructL(); |
32 self->ConstructL(); |
|
33 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_NEWLC_EXIT ); |
26 return self; |
34 return self; |
27 } |
35 } |
28 |
36 |
29 /* |
37 /* |
30 Factory Method |
38 Factory Method |
31 */ |
39 */ |
32 CPTPIPSocketHandler* CPTPIPSocketHandler::NewL() |
40 CPTPIPSocketHandler* CPTPIPSocketHandler::NewL() |
33 { |
41 { |
|
42 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_NEWL_ENTRY ); |
34 CPTPIPSocketHandler* self = CPTPIPSocketHandler::NewLC(); |
43 CPTPIPSocketHandler* self = CPTPIPSocketHandler::NewLC(); |
35 CleanupStack::Pop(self); |
44 CleanupStack::Pop(self); |
|
45 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_NEWL_EXIT ); |
36 return self; |
46 return self; |
37 } |
47 } |
38 |
48 |
39 |
49 |
40 CPTPIPSocketHandler::CPTPIPSocketHandler(): |
50 CPTPIPSocketHandler::CPTPIPSocketHandler(): |
41 CActive(EPriorityStandard),iReceiveChunk(NULL,0),iWriteChunk(NULL,0) |
51 CActive(EPriorityStandard),iReceiveChunk(NULL,0),iWriteChunk(NULL,0) |
42 { |
52 { |
|
53 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_CPTPIPSOCKETHANDLER_ENTRY ); |
43 CActiveScheduler::Add(this); |
54 CActiveScheduler::Add(this); |
44 iState=EReadState; |
55 iState=EReadState; |
|
56 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_CPTPIPSOCKETHANDLER_EXIT ); |
45 } |
57 } |
46 |
58 |
47 void CPTPIPSocketHandler::ConstructL() |
59 void CPTPIPSocketHandler::ConstructL() |
48 { |
60 { |
|
61 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_CONSTRUCTL_ENTRY ); |
49 |
62 |
50 |
63 |
|
64 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_CONSTRUCTL_EXIT ); |
51 } |
65 } |
52 |
66 |
53 |
67 |
54 RSocket& CPTPIPSocketHandler::Socket() |
68 RSocket& CPTPIPSocketHandler::Socket() |
55 { |
69 { |
|
70 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_SOCKET_ENTRY ); |
|
71 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_SOCKET_EXIT ); |
56 return iSocket; |
72 return iSocket; |
57 } |
73 } |
58 |
74 |
59 TSocketHandlerState& CPTPIPSocketHandler::State() |
75 TSocketHandlerState& CPTPIPSocketHandler::State() |
60 { |
76 { |
|
77 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_STATE_ENTRY ); |
|
78 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_STATE_EXIT ); |
61 return iState; |
79 return iState; |
62 } |
80 } |
63 |
81 |
64 |
82 |
65 |
83 |
66 CPTPIPSocketHandler::~CPTPIPSocketHandler() |
84 CPTPIPSocketHandler::~CPTPIPSocketHandler() |
67 { |
85 { |
|
86 OstTraceFunctionEntry0( DUP1_CPTPIPSOCKETHANDLER_CPTPIPSOCKETHANDLER_ENTRY ); |
68 Socket().Close(); |
87 Socket().Close(); |
|
88 OstTraceFunctionExit0( DUP1_CPTPIPSOCKETHANDLER_CPTPIPSOCKETHANDLER_EXIT ); |
69 } |
89 } |
70 |
90 |
71 /* |
91 /* |
72 Reads from the current accepted socket |
92 Reads from the current accepted socket |
73 @param TRequestStatus passed from PTPIP Controller |
93 @param TRequestStatus passed from PTPIP Controller |
74 */ |
94 */ |
75 void CPTPIPSocketHandler::ReadFromSocket(MMTPType& aData,TRequestStatus& aCallerStatus) |
95 void CPTPIPSocketHandler::ReadFromSocket(MMTPType& aData,TRequestStatus& aCallerStatus) |
76 { |
96 { |
|
97 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_READFROMSOCKET_ENTRY ); |
77 iReadData = &aData; |
98 iReadData = &aData; |
78 iChunkStatus = aData.FirstWriteChunk(iReceiveChunk); |
99 iChunkStatus = aData.FirstWriteChunk(iReceiveChunk); |
79 //ToDo check this works or not |
100 //ToDo check this works or not |
80 iCallerStatus=&aCallerStatus; |
101 iCallerStatus=&aCallerStatus; |
81 |
102 |
83 */ |
104 */ |
84 Socket().Recv(iReceiveChunk,0,iStatus); |
105 Socket().Recv(iReceiveChunk,0,iStatus); |
85 |
106 |
86 //start timer |
107 //start timer |
87 SetActive(); |
108 SetActive(); |
|
109 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_READFROMSOCKET_EXIT ); |
88 } |
110 } |
89 |
111 |
90 /*Writes to the current socket |
112 /*Writes to the current socket |
91 @param TRequestStatus passed from PTPIP Controller |
113 @param TRequestStatus passed from PTPIP Controller |
92 */ |
114 */ |
93 void CPTPIPSocketHandler::WriteToSocket(MMTPType& aData,TRequestStatus& aCallerStatus) |
115 void CPTPIPSocketHandler::WriteToSocket(MMTPType& aData,TRequestStatus& aCallerStatus) |
94 { |
116 { |
|
117 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_WRITETOSOCKET_ENTRY ); |
95 iWriteData=&aData; |
118 iWriteData=&aData; |
96 iChunkStatus = aData.FirstReadChunk(iWriteChunk); |
119 iChunkStatus = aData.FirstReadChunk(iWriteChunk); |
97 |
120 |
98 iCallerStatus=&aCallerStatus; |
121 iCallerStatus=&aCallerStatus; |
99 Socket().Write(iWriteChunk,iStatus); |
122 Socket().Write(iWriteChunk,iStatus); |
100 SetActive(); |
123 SetActive(); |
101 |
124 |
|
125 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_WRITETOSOCKET_EXIT ); |
102 } |
126 } |
103 |
127 |
104 |
128 |
105 |
129 |
106 void CPTPIPSocketHandler::RunL() |
130 void CPTPIPSocketHandler::RunL() |
107 { |
131 { |
|
132 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_RUNL_ENTRY ); |
108 TInt err = iStatus.Int(); |
133 TInt err = iStatus.Int(); |
109 User::LeaveIfError(err); |
134 LEAVEIFERROR( err, |
|
135 OstTrace1( TRACE_ERROR, CPTPIPSOCKETHANDLER_RUNL, "error code is %d", err )); |
110 |
136 |
111 switch(iState) |
137 switch(iState) |
112 { |
138 { |
113 case EReadState: |
139 case EReadState: |
114 if(iChunkStatus!=KMTPChunkSequenceCompletion) |
140 if(iChunkStatus!=KMTPChunkSequenceCompletion) |
147 User ::RequestComplete(iCallerStatus,err); |
173 User ::RequestComplete(iCallerStatus,err); |
148 iState=EReadState; |
174 iState=EReadState; |
149 } |
175 } |
150 break; |
176 break; |
151 } |
177 } |
|
178 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_RUNL_EXIT ); |
152 } |
179 } |
153 |
180 |
154 TInt CPTPIPSocketHandler::RunError(TInt aErr) |
181 TInt CPTPIPSocketHandler::RunError(TInt aErr) |
155 { |
182 { |
|
183 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_RUNERROR_ENTRY ); |
156 User ::RequestComplete(iCallerStatus,aErr); |
184 User ::RequestComplete(iCallerStatus,aErr); |
|
185 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_RUNERROR_EXIT ); |
157 return KErrNone; |
186 return KErrNone; |
158 } |
187 } |
159 |
188 |
160 |
189 |
161 |
190 |
162 void CPTPIPSocketHandler::DoCancel() |
191 void CPTPIPSocketHandler::DoCancel() |
163 { |
192 { |
|
193 OstTraceFunctionEntry0( CPTPIPSOCKETHANDLER_DOCANCEL_ENTRY ); |
164 if(iState==EReadState) |
194 if(iState==EReadState) |
165 Socket().CancelRecv(); |
195 Socket().CancelRecv(); |
166 else if(iState==EWriteState) |
196 else if(iState==EWriteState) |
167 Socket().CancelWrite(); |
197 Socket().CancelWrite(); |
168 } |
198 OstTraceFunctionExit0( CPTPIPSOCKETHANDLER_DOCANCEL_EXIT ); |
169 |
199 } |
170 |
200 |
171 |
201 |
172 |
202 |
173 |
203 |
|
204 |