|
1 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 |
|
17 #ifndef __DUMMYWAPCLIENT_H__ |
|
18 #define __DUMMYWAPCLIENT_H__ |
|
19 |
|
20 #include <e32base.h> |
|
21 #include <in_sock.h> |
|
22 |
|
23 enum {KDefaultMessageSlots = 10}; |
|
24 /** |
|
25 * forward declaration |
|
26 */ |
|
27 class CDummyWapSession; |
|
28 class CDummyWSPCLConn; |
|
29 class CDummyWSPCOConn; |
|
30 class CDummyWSPConn; |
|
31 class CDummyWSPCOTrans; |
|
32 class CDummyWTLS; |
|
33 |
|
34 namespace Wap |
|
35 { |
|
36 // Bearer type definition |
|
37 typedef enum |
|
38 { |
|
39 EAll, |
|
40 EIP, |
|
41 ESMS7, |
|
42 ESMS, |
|
43 EWAPSMS7, |
|
44 EWAPSMS |
|
45 } TBearer; |
|
46 |
|
47 // Port number definition |
|
48 typedef TUint16 TPort; |
|
49 |
|
50 class TAddressInfo |
|
51 { |
|
52 public: |
|
53 TName iName; // Interface name |
|
54 TInetAddr iAddress; // Interface IP Address (*) |
|
55 }; |
|
56 } |
|
57 |
|
58 |
|
59 |
|
60 /** Bound Connectionless Push |
|
61 */ |
|
62 class CWapBoundCLPushService : public CBase |
|
63 { |
|
64 |
|
65 public: // creation/deletion |
|
66 IMPORT_C static CWapBoundCLPushService* NewL(); |
|
67 IMPORT_C virtual ~CWapBoundCLPushService(); |
|
68 |
|
69 public: // API methods |
|
70 |
|
71 virtual TInt Connect(Wap::TBearer , Wap::TPort , TBool , TInetAddr ){return 0;} |
|
72 virtual TInt Connect(Wap::TBearer aBearer, Wap::TPort aPort, TBool aSecure); |
|
73 virtual TInt AwaitPush(TDes8& aPushHeaders, TDes8& aPushBody, TPckgBuf<TUint8>& aPushId, TRequestStatus& aReqStatus); |
|
74 virtual void CancelAwaitPush(); |
|
75 virtual TInt GetLocalPort(Wap::TPort& /*aPort*/) { return KErrNotSupported;} |
|
76 virtual TInt GetLocalAddress(HBufC8*& /*aLocalHost*/) { return KErrNotSupported;} |
|
77 virtual TInt GetBearer(Wap::TBearer& /*aBearer*/) { return KErrNotSupported;} |
|
78 virtual TInt GetServerAddressL(HBufC8*& aRemoteHost); |
|
79 |
|
80 protected: // methods |
|
81 IMPORT_C CWapBoundCLPushService(); |
|
82 |
|
83 CDummyWapSession* DummyWapSession(); |
|
84 private: |
|
85 CDummyWapSession* iSessHandle; |
|
86 CDummyWSPCLConn* iClConnHandle; |
|
87 }; |
|
88 |
|
89 /** |
|
90 * This represents a client session with the server |
|
91 */ |
|
92 class RWAPServ |
|
93 { |
|
94 public: |
|
95 IMPORT_C RWAPServ(); |
|
96 IMPORT_C TInt Connect(TInt aDefaultMessageSlots = KDefaultMessageSlots); |
|
97 IMPORT_C void Close(); |
|
98 CDummyWapSession* DummyWapSession(); |
|
99 private: |
|
100 CDummyWapSession* iSessHandle; |
|
101 CDummyWSPCLConn* iClConnHandle; |
|
102 }; |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 /** |
|
108 * Base class used by all type of connections |
|
109 */ |
|
110 class RWAPConn |
|
111 { |
|
112 public: |
|
113 typedef TUint16 TPort; |
|
114 IMPORT_C virtual TInt Close(); |
|
115 IMPORT_C class RWTLS Wtls(); |
|
116 |
|
117 enum |
|
118 { |
|
119 ERetCodeBase = -5500, |
|
120 EWSPCORetCodeBase = ERetCodeBase + 25, |
|
121 EWSPCLRetCodeBase = ERetCodeBase + 50, |
|
122 EWTPRetCodeBase = ERetCodeBase + 75, |
|
123 EWDPRetCodeBase = ERetCodeBase + 100, |
|
124 EWTLSRetCodeBase = ERetCodeBase + 125, |
|
125 ERetCodeTop = ERetCodeBase + 200 |
|
126 }; |
|
127 enum TReturnCodes |
|
128 { |
|
129 EMoreData = ERetCodeBase + 0, |
|
130 EBearerError = ERetCodeBase + 1, |
|
131 EPortAlreadyBound = ERetCodeBase + 2, |
|
132 ECannotOpenPort = ERetCodeBase + 3, |
|
133 ETooManyConnections = ERetCodeBase + 4, |
|
134 EBadConnection = ERetCodeBase + 5, |
|
135 EBufferTooSmall = ERetCodeBase + 6 |
|
136 }; |
|
137 enum TMethod |
|
138 { |
|
139 EGet = 0x40, |
|
140 EOptions = 0x41, |
|
141 EHead = 0x42, |
|
142 EDelete = 0x43, |
|
143 ETrace = 0x44, |
|
144 EPost = 0x60, |
|
145 EPut = 0x61 |
|
146 }; |
|
147 protected: |
|
148 CDummyWSPConn* iDummyConn; |
|
149 }; |
|
150 |
|
151 |
|
152 |
|
153 class RWTLS |
|
154 { |
|
155 public: |
|
156 enum TReturnCodes |
|
157 { |
|
158 EOutOfMemory = RWAPConn::EWTLSRetCodeBase + 0, |
|
159 ESocketError = RWAPConn::EWTLSRetCodeBase + 1, |
|
160 EBadParameters = RWAPConn::EWTLSRetCodeBase + 2, |
|
161 ESocketError2 = RWAPConn::EWTLSRetCodeBase + 3, |
|
162 EResumeIDNotFound = RWAPConn::EWTLSRetCodeBase + 4, |
|
163 EResumeError = RWAPConn::EWTLSRetCodeBase + 5, |
|
164 ERenegotiationRequest = RWAPConn::EWTLSRetCodeBase + 6, |
|
165 EIllegalCall = RWAPConn::EWTLSRetCodeBase + 7, |
|
166 EConnectionCloseNotify = RWAPConn::EWTLSRetCodeBase + 8, |
|
167 ESessionCloseNotify = RWAPConn::EWTLSRetCodeBase + 9, |
|
168 ENoConnection = RWAPConn::EWTLSRetCodeBase + 10, |
|
169 EUnexpectedMessage = RWAPConn::EWTLSRetCodeBase + 11, |
|
170 EBadRecordMac = RWAPConn::EWTLSRetCodeBase + 12, |
|
171 EDecryptionFailed = RWAPConn::EWTLSRetCodeBase + 13, |
|
172 ERecordOverflow = RWAPConn::EWTLSRetCodeBase + 14, |
|
173 EHandshakeFailure = RWAPConn::EWTLSRetCodeBase + 15, |
|
174 EDecompressionFailure = RWAPConn::EWTLSRetCodeBase + 16, |
|
175 EBadCertificate = RWAPConn::EWTLSRetCodeBase + 17, |
|
176 EUnsupportedCertificate = RWAPConn::EWTLSRetCodeBase + 18, |
|
177 ECertificateRevoked = RWAPConn::EWTLSRetCodeBase + 19, |
|
178 ECertificateExpired = RWAPConn::EWTLSRetCodeBase + 20, |
|
179 ECertificateUnknown = RWAPConn::EWTLSRetCodeBase + 21, |
|
180 EIllegalParameter = RWAPConn::EWTLSRetCodeBase + 22, |
|
181 EUnknownCA = RWAPConn::EWTLSRetCodeBase + 23, |
|
182 EAccessDenied = RWAPConn::EWTLSRetCodeBase + 24, |
|
183 EDecodeError = RWAPConn::EWTLSRetCodeBase + 25, |
|
184 EDecryptError = RWAPConn::EWTLSRetCodeBase + 26, |
|
185 EUnknownKeyId = RWAPConn::EWTLSRetCodeBase + 27, |
|
186 EDisableKeyId = RWAPConn::EWTLSRetCodeBase + 28, |
|
187 EKeyExchangeDisabled = RWAPConn::EWTLSRetCodeBase + 29, |
|
188 ESessionNotReady = RWAPConn::EWTLSRetCodeBase + 30, |
|
189 EUnknownParameterIndex = RWAPConn::EWTLSRetCodeBase + 31, |
|
190 EDuplicateFinishedRecv = RWAPConn::EWTLSRetCodeBase + 32, |
|
191 EExportRestriction = RWAPConn::EWTLSRetCodeBase + 33, |
|
192 EProtocolVersion = RWAPConn::EWTLSRetCodeBase + 34, |
|
193 EInsufficientSecurity = RWAPConn::EWTLSRetCodeBase + 35, |
|
194 EInternalError = RWAPConn::EWTLSRetCodeBase + 36, |
|
195 EUserCanceled = RWAPConn::EWTLSRetCodeBase + 37, |
|
196 ENoRenegotiation = RWAPConn::EWTLSRetCodeBase + 38, |
|
197 |
|
198 EErrGeneral = RWAPConn::EWTLSRetCodeBase + 39, |
|
199 EErrBulk = RWAPConn::EWTLSRetCodeBase + 40, |
|
200 EErrMac = RWAPConn::EWTLSRetCodeBase + 41, |
|
201 EErrSequenceNumberMode = RWAPConn::EWTLSRetCodeBase + 42, |
|
202 EErrKeyRefreshRate = RWAPConn::EWTLSRetCodeBase + 43, |
|
203 }; |
|
204 |
|
205 enum TIdType |
|
206 { |
|
207 EIdNull, |
|
208 EText, |
|
209 EBinary, |
|
210 EKeyHashSha = 254, |
|
211 EX509Name = 255 |
|
212 }; |
|
213 |
|
214 enum TKeyExchangeSuite |
|
215 { |
|
216 ESharedSecret = 1, |
|
217 EDHAnon, |
|
218 EDHAnon512, |
|
219 EDHAnon768, |
|
220 ERsaAnon, |
|
221 ERsaAnon512, |
|
222 ERsaAnon768, |
|
223 ERsa, |
|
224 ERsa512, |
|
225 ERsa768, |
|
226 EEcdhAnon, |
|
227 EEcdhAnon113, |
|
228 EEcdhAnon131, |
|
229 EEcdhEcdsa |
|
230 }; |
|
231 |
|
232 IMPORT_C TInt SetKeyExchangeSuite(TKeyExchangeSuite aSuite,TIdType IdType, |
|
233 const TDesC8& aKeyId); |
|
234 |
|
235 enum TBulkEncryptionAlgorithm |
|
236 { |
|
237 EBulkNull = 0x00, |
|
238 ERc5_cbc_40 = 0x01, |
|
239 ERc5_cbc_56 = 0x02, |
|
240 ERc5_cbc = 0x03, |
|
241 EDes_cbc_40 = 0x04, |
|
242 EDes_cbc = 0x05, |
|
243 E3Des_cbc_ede = 0x06, |
|
244 EIdea_cbc_40 = 0x07, |
|
245 EIdea_cbc_56 = 0x08, |
|
246 EIdea_cbc = 0x09 |
|
247 }; |
|
248 |
|
249 enum TMacAlgorithm |
|
250 { |
|
251 ESha_0 = 0x00, |
|
252 ESha_40 = 0x01, |
|
253 ESha_80 = 0x02, |
|
254 ESha = 0x03, |
|
255 ESha_xor_40 = 0x04, |
|
256 EMd5_40 = 0x05, |
|
257 EMd5_80 = 0x06, |
|
258 EMd5 = 0x07 |
|
259 }; |
|
260 |
|
261 struct TCipherSuite |
|
262 { |
|
263 TBulkEncryptionAlgorithm iBulkEncryptionAlgorithm; |
|
264 TMacAlgorithm iMacAlgorithm; |
|
265 }; |
|
266 |
|
267 typedef CArrayFixFlat<TCipherSuite> CipherSuiteArray; |
|
268 |
|
269 IMPORT_C TInt SetCipherSuites(const CipherSuiteArray& aCipherSuites); |
|
270 |
|
271 enum TSequenceNumberMode |
|
272 { |
|
273 ENotUsed = 0, |
|
274 EImplicit, |
|
275 EExplicit |
|
276 }; |
|
277 |
|
278 IMPORT_C TInt SetSequenceNumberMode(TSequenceNumberMode aMode); |
|
279 IMPORT_C TInt SetKeyRefreshRate(TUint8 aRate); |
|
280 IMPORT_C TInt SetSharedSecret(const TDesC8& aSharedSecret); |
|
281 IMPORT_C TInt SetRecordLengthUsage(TBool aUsage); |
|
282 |
|
283 |
|
284 // This is returned in the TRequestStatus on completion in |
|
285 // Connect and ConnectPhaseTwo. |
|
286 enum HandshakeResult |
|
287 { |
|
288 EServerCertificateValid, |
|
289 EServerCertificateNotValid, |
|
290 ECertificateRequested, |
|
291 EHandshakeOk, |
|
292 EHandshakeError, |
|
293 EHandshakeUserAbort |
|
294 }; |
|
295 |
|
296 IMPORT_C void Connect(TRequestStatus& aStatus, TBool aTwoPhaseHandshake); |
|
297 |
|
298 |
|
299 IMPORT_C void CancelConnect(); |
|
300 |
|
301 IMPORT_C TInt ConnectPhaseTwo(TRequestStatus& aStatus); |
|
302 IMPORT_C void CancelConnectPhaseTwo(); |
|
303 |
|
304 IMPORT_C TInt GetCipherSuite(TCipherSuite& aCipherSuite) const; |
|
305 IMPORT_C TInt GetSequenceNumberMode(TSequenceNumberMode& aMode) const; |
|
306 IMPORT_C TInt GetKeyRefreshRate(TUint8& aRate) const; |
|
307 IMPORT_C class RCertificate ServerCert(); |
|
308 private: |
|
309 friend class RWAPConn; |
|
310 CDummyWTLS* iDummyWTLS; |
|
311 }; |
|
312 |
|
313 |
|
314 /** |
|
315 * This class represents a server certificate |
|
316 */ |
|
317 class RCertificate |
|
318 { |
|
319 public: |
|
320 typedef TUint16 TCertId; |
|
321 typedef TDesC8 TCertificate; // binary format |
|
322 |
|
323 IMPORT_C TInt Load(const TDesC8& aSubject); |
|
324 IMPORT_C TInt LoadById(const TCertId& aId); |
|
325 IMPORT_C TInt Delete(const TDesC8& aSubject); |
|
326 IMPORT_C TInt Save(const TCertificate& aCertificate, TDes8& aSubject); |
|
327 IMPORT_C TInt FindFirst(TDes8& aSubject, TCertId& aId) const; |
|
328 IMPORT_C TInt FindNext(TDes8& aSubject, TCertId& aId) const; |
|
329 |
|
330 enum TStatus |
|
331 { |
|
332 EOk, |
|
333 ENotYetValid, |
|
334 EExpired, |
|
335 EUnknownCA, |
|
336 EPermanentStorageReadError |
|
337 }; |
|
338 |
|
339 struct TInfo |
|
340 { |
|
341 TUint32 iValidNotBefore; // is first valid date of the cert (unix GMT). |
|
342 TUint32 iValidNotAfter; // is last valid date of the cert (unix GMT) |
|
343 TUint16 iSubjectCharacterSet;// is an IANA defined number. |
|
344 TUint16 iIssuerCharacterSet; // is an IANA defined number. |
|
345 TDes8* iSubject; |
|
346 TDes8* iIssuer; |
|
347 TStatus iServerCertificateStatus; |
|
348 TDes8* iFingerPrint; |
|
349 }; |
|
350 |
|
351 IMPORT_C TInt Info(TInfo& aInfo) const; |
|
352 private: |
|
353 friend class RWTLS; |
|
354 RCertificate(){} |
|
355 }; |
|
356 |
|
357 |
|
358 |
|
359 /** |
|
360 * this class represents a connection of type connectionless Push |
|
361 */ |
|
362 class RWSPCLConn : public RWAPConn |
|
363 { |
|
364 public: |
|
365 IMPORT_C TInt Open(RWAPServ& aServer, TPort aLocalPort); |
|
366 IMPORT_C TInt Open(RWAPServ& aServer, |
|
367 const TDesC8& aRemoteHost, |
|
368 TPort aRemotePort, |
|
369 TPort aLocalPort, |
|
370 Wap::TBearer aBearer, |
|
371 TBool aSecureConn); |
|
372 IMPORT_C TInt AwaitPush(TDes8& aPushHeaders, TDes8& aPushBody, TUint& aPushId, TRequestStatus& aReqStatus); |
|
373 IMPORT_C void UnitWaitPush(TDes8& aBody,TDes8& aHeaders,TPushID& aID,TRequestStatus& aStatus); |
|
374 IMPORT_C void CancelUnitWaitPush(); |
|
375 IMPORT_C void CancelAwaitPush(); |
|
376 IMPORT_C TInt UnitWaitPush(TDes8& aBody,TDes8& aHeaders,TPushID& aID); |
|
377 |
|
378 enum TReturnCodes |
|
379 { |
|
380 EBufferTooSmall = EWSPCLRetCodeBase + 0, |
|
381 EInvalidSession = EWSPCLRetCodeBase + 1, |
|
382 EParameterError = EWSPCLRetCodeBase + 2, |
|
383 ESessionNotConnected = EWSPCLRetCodeBase + 3, |
|
384 ENotSupported = EWSPCLRetCodeBase + 4, |
|
385 EInvalidState = EWSPCLRetCodeBase + 5, |
|
386 ESessionClosed = EWSPCLRetCodeBase + 6, |
|
387 EMRUExceeded = EWSPCLRetCodeBase + 7, |
|
388 EInvalidBufferSize = EWSPCLRetCodeBase + 8, |
|
389 EDataNotAvailable = EWSPCLRetCodeBase + 9, |
|
390 EErrorTimeout = EWSPCLRetCodeBase + 10 |
|
391 }; |
|
392 private: |
|
393 CDummyWSPCLConn* iClConnHandle; |
|
394 }; |
|
395 |
|
396 |
|
397 /** |
|
398 * Represents a connection-orientated transaction |
|
399 * |
|
400 */ |
|
401 class RWSPCOTrans |
|
402 { |
|
403 public: |
|
404 IMPORT_C RWSPCOTrans(); |
|
405 IMPORT_C ~RWSPCOTrans(); |
|
406 |
|
407 enum TDataType |
|
408 { |
|
409 EPushBody = 0, |
|
410 EPushHeaders, |
|
411 EResultStatus, |
|
412 EResultBody, |
|
413 EResultHeaders, |
|
414 EInvokeUri, |
|
415 EInvokeMethod, |
|
416 EInvokeHeaders, |
|
417 EInvokeBody, |
|
418 EAckHeaders, |
|
419 EAbortReason |
|
420 }; |
|
421 |
|
422 enum TState |
|
423 { |
|
424 EInit = 0, |
|
425 ERequesting, |
|
426 EReplying, |
|
427 EDone, |
|
428 EAborted, |
|
429 EPushing |
|
430 }; |
|
431 typedef TPckgBuf<TState> TStatePckg; |
|
432 typedef TPckgBuf<TInt> THandlePckg; |
|
433 typedef TUint8 TAbortReason; |
|
434 typedef TInt TTransID; |
|
435 |
|
436 /** acknowledge a transaction - must be used for confirmed push */ |
|
437 IMPORT_C TInt Acknowledge(const TDesC8& aAckHeaders); |
|
438 |
|
439 /** Retrieves the data associated to a transaction */ |
|
440 IMPORT_C TInt GetData(TDes8& aBuffer, TDataType aDataType, TInt* aSizeLeft = 0) const; |
|
441 |
|
442 /** Retrieve the state the transaction is in */ |
|
443 IMPORT_C TInt GetState(TState& aState) const; |
|
444 IMPORT_C TInt Abort(TAbortReason aReason); |
|
445 IMPORT_C TInt Release(); |
|
446 IMPORT_C TInt Id(TTransID& aId); |
|
447 private: |
|
448 friend class CDummyWSPCOConn; |
|
449 CDummyWSPCOTrans* iCoTransHandle; |
|
450 }; |
|
451 |
|
452 enum TBearer |
|
453 { |
|
454 EAll, |
|
455 EIP, |
|
456 ESMS7, |
|
457 ESMS, |
|
458 EWAPSMS7, |
|
459 EWAPSMS |
|
460 }; |
|
461 |
|
462 /** |
|
463 * Connection-orientated connection |
|
464 * |
|
465 */ |
|
466 class RWSPCOConn : public RWAPConn |
|
467 { |
|
468 public: |
|
469 IMPORT_C TInt Open(RWAPServ& aServer, const TDesC8& aRemoteHost, TPort aRemotePort, TPort aLocalPort, |
|
470 TBearer aBearer, TBool aSecureConn); |
|
471 // Open fully defined |
|
472 IMPORT_C virtual TInt Close(); |
|
473 |
|
474 IMPORT_C TInt Connect(const TDesC8& aClientHeaders, class CCapCodec* aCap = 0); |
|
475 IMPORT_C TInt Disconnect(); |
|
476 |
|
477 IMPORT_C TInt Suspend(); |
|
478 IMPORT_C TInt Resume(RWSPCOConn& aBlankConn, const TDesC8& aHeaders); |
|
479 |
|
480 enum TSessionState |
|
481 { |
|
482 EInit = 0, |
|
483 EConnecting, |
|
484 EConnected, |
|
485 ESuspended, |
|
486 EResuming, |
|
487 EReplying, |
|
488 EDisconnected |
|
489 }; |
|
490 enum TSessionDataType |
|
491 { |
|
492 EServerHeaders = 12, |
|
493 EClientHeaders, |
|
494 ECapabilities, |
|
495 ERedirectOptions, |
|
496 ERedirectAddresses, |
|
497 EQueueLen, |
|
498 EErrorHeaders, |
|
499 EErrorBody, |
|
500 EDisconReason, |
|
501 ESuspendReason |
|
502 }; |
|
503 |
|
504 IMPORT_C TInt GetSessionState(TSessionState& aState) const; |
|
505 IMPORT_C TInt GetSessionData(TDes8& aData, TSessionDataType aType) const; |
|
506 |
|
507 IMPORT_C TInt CreateTransaction(TMethod aMethod, const TDesC& aURI, const TDesC8& aHeaders, |
|
508 const TDesC8& aBody, RWSPCOTrans& aTrans); |
|
509 |
|
510 typedef TPckgBuf<TInt> TEvent; |
|
511 |
|
512 /** Gets next session or transaction event on this session */ |
|
513 IMPORT_C void GetEvent(TEvent& aEvent, RWSPCOTrans& aTrans, TRequestStatus& aStatus) const; |
|
514 /** Cancel the asynchronous GetEvent operation */ |
|
515 IMPORT_C void CancelGetEvent(); |
|
516 |
|
517 /** Gets next session or transaction event on this session (synchronous version */ |
|
518 IMPORT_C TInt GetEvent(TEvent& aEvent, RWSPCOTrans& aTrans) const; |
|
519 |
|
520 /** Return the number of events pending for the session */ |
|
521 IMPORT_C TInt GetNrOfEvents(TUint& aNrOfEvents) const; |
|
522 |
|
523 enum TReturnCodes |
|
524 { |
|
525 EBufferTooSmall = EWSPCORetCodeBase + 0, |
|
526 EInvalidSession = EWSPCORetCodeBase + 1, |
|
527 EInvalidTransaction = EWSPCORetCodeBase + 2, |
|
528 EParameterError = EWSPCORetCodeBase + 3, |
|
529 ESessionNotConnected = EWSPCORetCodeBase + 4, |
|
530 ENotSupported = EWSPCORetCodeBase + 5, |
|
531 EInvalidState = EWSPCORetCodeBase + 6, |
|
532 ESessionClosed = EWSPCORetCodeBase + 7, |
|
533 EMRUExceeded = EWSPCORetCodeBase + 8, |
|
534 EInvalidBufferSize = EWSPCORetCodeBase + 9, |
|
535 EDataNotAvailable = EWSPCORetCodeBase + 10, |
|
536 EErrorTimeout = EWSPCORetCodeBase + 11 |
|
537 }; |
|
538 |
|
539 enum TEventType |
|
540 { |
|
541 // session events |
|
542 EDisconnect_ind_s = 0, |
|
543 ESuspend_ind_s, |
|
544 EResume_cnf_s, |
|
545 EConnect_cnf_s, |
|
546 ERedirect_ind_s, |
|
547 |
|
548 // transaction events |
|
549 EMethodInvoke_cnf_t, |
|
550 EMethodResult_ind_t, |
|
551 EAbort_ind_t, |
|
552 EPush_ind_t, |
|
553 EConfirmedPush_ind_t, |
|
554 |
|
555 // exception events |
|
556 EException_ind_e, |
|
557 }; |
|
558 private: |
|
559 CDummyWSPCOConn* iCoConnHandle; |
|
560 }; |
|
561 |
|
562 |
|
563 #endif |