76 CPhSrvSubSessionBase* subSession = NULL; |
76 CPhSrvSubSessionBase* subSession = NULL; |
77 |
77 |
78 switch( aFunction ) |
78 switch( aFunction ) |
79 { |
79 { |
80 case EPhoneServerExtCallSubSessionOpen: |
80 case EPhoneServerExtCallSubSessionOpen: |
|
81 { |
81 subSession = new( ELeave ) CPhSrvSubSessionExtCall( aSession ); |
82 subSession = new( ELeave ) CPhSrvSubSessionExtCall( aSession ); |
82 break; |
83 break; |
|
84 } |
83 case EPhoneServerNotifySubSessionOpen: |
85 case EPhoneServerNotifySubSessionOpen: |
|
86 { |
84 subSession = new( ELeave ) CPhSrvSubSessionNotifier( aSession ); |
87 subSession = new( ELeave ) CPhSrvSubSessionNotifier( aSession ); |
85 break; |
88 break; |
|
89 } |
86 case EPhoneServerUSSDSubSessionOpen: |
90 case EPhoneServerUSSDSubSessionOpen: |
|
91 { |
87 subSession = new( ELeave ) CPhSrvSubSessionUssd( aSession ); |
92 subSession = new( ELeave ) CPhSrvSubSessionUssd( aSession ); |
88 break; |
93 break; |
|
94 } |
89 case EPhoneServerEmergencyNumberSubSessionOpen: |
95 case EPhoneServerEmergencyNumberSubSessionOpen: |
90 subSession = new( ELeave ) CPhSrvSubSessionEmergencyNum( aSession ); |
96 { |
|
97 subSession = |
|
98 new( ELeave ) CPhSrvSubSessionEmergencyNum( aSession ); |
91 break; |
99 break; |
|
100 } |
|
101 case EPhoneServerMessengerSubSessionOpen: |
|
102 { |
|
103 subSession = CPhSrvSubSessionMessenger::NewL( aSession ); |
|
104 break; |
|
105 } |
92 case EPhoneServerComHandSubSessionOpen: |
106 case EPhoneServerComHandSubSessionOpen: |
93 subSession = |
107 { |
94 CPhSrvSubSessionCommandHandler::NewL( aSession ); |
108 subSession = CPhSrvSubSessionCommandHandler::NewL( aSession ); |
95 break; |
109 break; |
96 case EPhoneServerMessengerSubSessionOpen: |
110 } |
97 subSession = |
|
98 CPhSrvSubSessionMessenger::NewL( aSession ); |
|
99 break; |
|
100 |
|
101 case EPhoneServerImageHandlerSubSessionOpen: |
111 case EPhoneServerImageHandlerSubSessionOpen: |
|
112 { |
102 subSession = CPhSrvSubSessionImageHandler::NewL( aSession ); |
113 subSession = CPhSrvSubSessionImageHandler::NewL( aSession ); |
103 break; |
114 break; |
|
115 } |
104 default: |
116 default: |
|
117 { |
|
118 User::Leave( KErrNotSupported ); |
105 break; |
119 break; |
|
120 } |
106 } |
121 } |
107 |
122 |
108 // Complete construction |
123 // Complete construction |
109 if ( aFunction != EPhoneServerImageHandlerSubSessionOpen ) |
124 CleanupStack::PushL( subSession ); |
110 { |
|
111 CleanupStack::PushL( subSession ); |
|
112 } |
|
113 subSession->ConstructL(); |
125 subSession->ConstructL(); |
|
126 |
114 return subSession; |
127 return subSession; |
115 } |
128 } |
116 |
129 |
117 // ----------------------------------------------------------------------------- |
130 // ----------------------------------------------------------------------------- |
118 // PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationAllowed |
131 // PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationAllowed |