convergedconnectionhandler/cchserver/src/cchsession.cpp
branchRCL_3
changeset 14 be41ab7b952f
parent 0 a4daefaec16c
equal deleted inserted replaced
12:876a3df1f464 14:be41ab7b952f
   126             CCCHSubsession* subsession = CCCHSubsession::NewLC( iCCHServer );
   126             CCCHSubsession* subsession = CCCHSubsession::NewLC( iCCHServer );
   127             iSubsessions->AddL( subsession );
   127             iSubsessions->AddL( subsession );
   128             const TInt handle( iObjectIx->AddL( subsession ) );
   128             const TInt handle( iObjectIx->AddL( subsession ) );
   129             CleanupStack::Pop( subsession );
   129             CleanupStack::Pop( subsession );
   130             TPckg<TInt> handlePckg( handle );
   130             TPckg<TInt> handlePckg( handle );
   131             TRAPD( err, aMessage.WriteL( 3, handlePckg ) );
   131             TInt err = aMessage.Write( 3, handlePckg ); 
       
   132          
   132             if ( KErrNone != err )
   133             if ( KErrNone != err )
   133                 {
   134                 {
   134                 // Panic client
   135                 // Panic client
   135                 iObjectIx->Remove( handle );
   136                 iObjectIx->Remove( handle );
   136                 iCCHServer.PanicClient( aMessage, ECCHErrSubSessionOpen );
   137                 iCCHServer.PanicClient( aMessage, ECCHErrSubSessionOpen );   
   137                 }
   138                 }
   138             aMessage.Complete( KErrNone );
   139             else   
       
   140                 {
       
   141                 aMessage.Complete( KErrNone );
       
   142                 }
   139             }
   143             }
   140             break;
   144             break;
   141         case ECCHCloseSubSession:
   145         case ECCHCloseSubSession:
   142             {
   146             {
   143             const TInt handle( aMessage.Int3() );
   147             const TInt handle( aMessage.Int3() );
   144             if ( iObjectIx->At( handle ) )
   148             if ( iObjectIx->At( handle ) )
   145                 {
   149                 {
   146                 iObjectIx->Remove( handle );
   150                 iObjectIx->Remove( handle );
       
   151                 aMessage.Complete( KErrNone );
   147                 }
   152                 }
   148             else
   153             else
   149                 {
   154                 {
   150                 // Panic client. Handle was not valid
   155                 // Panic client. Handle was not valid
   151                 iCCHServer.PanicClient( aMessage, ECCHErrSubSessionClose );
   156                 iCCHServer.PanicClient( aMessage, ECCHErrSubSessionClose );
   152                 }
   157                 }
   153             aMessage.Complete( KErrNone );
       
   154             }
   158             }
   155             break;
   159             break;
   156         /**
   160         /**
   157          * CCH subsession functions
   161          * CCH subsession functions
   158          */
   162          */