harvester/blacklistserver/src/blacklistsession.cpp
changeset 0 c53acadfccc6
child 43 c5e73110f733
child 54 a3cc46f37772
equal deleted inserted replaced
-1:000000000000 0:c53acadfccc6
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 // USER INCLUDE
       
    18 #include "blacklistsession.h"
       
    19 #include "blacklistserver.h"
       
    20 #include "blacklistcommon.h"
       
    21 
       
    22 // ---------------------------------------------------------------------------
       
    23 //  CBlacklistSession::CBlacklistSession()
       
    24 // ---------------------------------------------------------------------------
       
    25 //
       
    26 CBlacklistSession::CBlacklistSession()
       
    27     {
       
    28     }
       
    29 
       
    30 // ---------------------------------------------------------------------------
       
    31 //  CBlacklistSession::CreateL()
       
    32 // ---------------------------------------------------------------------------
       
    33 //
       
    34 void CBlacklistSession::CreateL()
       
    35     {
       
    36     Server().AddSession();
       
    37     }
       
    38 
       
    39 // ---------------------------------------------------------------------------
       
    40 //  CBlacklistSession::~CBlacklistSession()
       
    41 // ---------------------------------------------------------------------------
       
    42 //
       
    43 CBlacklistSession::~CBlacklistSession()
       
    44     {
       
    45     Server().RemoveSession();
       
    46     }
       
    47 
       
    48 // ---------------------------------------------------------------------------
       
    49 //  CBlacklistSession::Server()
       
    50 // ---------------------------------------------------------------------------
       
    51 //
       
    52 CBlacklistServer& CBlacklistSession::Server()
       
    53     {
       
    54     return *static_cast<CBlacklistServer*>( const_cast<CServer2*>(CSession2::Server()) );
       
    55     }
       
    56 
       
    57 // ---------------------------------------------------------------------------
       
    58 //  CBlacklistSession::ServiceL()
       
    59 // ---------------------------------------------------------------------------
       
    60 //
       
    61 void CBlacklistSession::ServiceL( const RMessage2& aMessage )
       
    62     {
       
    63      switch ( aMessage.Function() )
       
    64         {
       
    65         case EGetBlacklistData:
       
    66             {
       
    67             LoadBlacklistDataL( aMessage );
       
    68             break;
       
    69             }    
       
    70         case EBlacklistAdd:
       
    71             {
       
    72             AddL( aMessage );
       
    73             break;
       
    74             }    
       
    75         case EBlacklistRemove:
       
    76             {
       
    77             RemoveL( aMessage );
       
    78             break;
       
    79             }    
       
    80         case EBlacklistRemoveFromDB:
       
    81             {
       
    82             RemoveFromDBL( aMessage );
       
    83             break;
       
    84             }
       
    85         case EBlacklistCloseDB:
       
    86             {
       
    87             CloseDB( aMessage );
       
    88             break;
       
    89             }
       
    90         default:
       
    91             {
       
    92             aMessage.Complete( KErrNotSupported );
       
    93             break;
       
    94             }    
       
    95         }
       
    96     }
       
    97 
       
    98 // ---------------------------------------------------------------------------
       
    99 //  CBlacklistSession::LoadBlacklistDataL()
       
   100 // ---------------------------------------------------------------------------
       
   101 //
       
   102 void CBlacklistSession::LoadBlacklistDataL( const RMessage2& aMessage ) 
       
   103     {
       
   104     Server().OpenDatabaseL();
       
   105     TPckgBuf<TInt> handleBuf( Server().MemoryHandle() );
       
   106     aMessage.WriteL( 1, handleBuf );
       
   107     aMessage.Complete( KErrNone );
       
   108     }
       
   109 
       
   110 // ---------------------------------------------------------------------------
       
   111 //  CBlacklistSession::AddL()
       
   112 // ---------------------------------------------------------------------------
       
   113 //
       
   114 void CBlacklistSession::AddL( const RMessage2& aMessage ) 
       
   115     {
       
   116     TUint32 mediaId ( 0 );
       
   117     TPckg<TUint32> mediaIdPckg( mediaId );
       
   118     aMessage.ReadL( 0, mediaIdPckg );
       
   119  
       
   120  	RBuf uri;
       
   121     uri.Create( aMessage.GetDesLength( 1 ) );
       
   122     CleanupClosePushL( uri );
       
   123     aMessage.ReadL( 1, uri );
       
   124    	
       
   125    	TTime lastModifiedTime ( 0 );
       
   126     TPckg<TTime> lastModifiedTimePckg( lastModifiedTime );
       
   127     aMessage.ReadL( 2, lastModifiedTimePckg );
       
   128 
       
   129     Server().AddL( mediaId, uri, lastModifiedTime );
       
   130 
       
   131     CleanupStack::PopAndDestroy( &uri );
       
   132 
       
   133     aMessage.Complete( KErrNone );
       
   134     }
       
   135 
       
   136 // ---------------------------------------------------------------------------
       
   137 //  CBlacklistSession::RemoveL()
       
   138 // ---------------------------------------------------------------------------
       
   139 //
       
   140 void CBlacklistSession::RemoveL( const RMessage2& aMessage ) 
       
   141     {
       
   142  	RBuf uri;
       
   143     uri.Create( aMessage.GetDesLength( 1 ) );
       
   144     CleanupClosePushL( uri );
       
   145     aMessage.ReadL( 1, uri );
       
   146 
       
   147     TUint32 mediaId ( 0 );
       
   148     TPckg<TUint32> mediaIdPckg( mediaId );
       
   149     aMessage.ReadL( 2, mediaIdPckg );
       
   150  
       
   151     Server().RemoveL( mediaId, uri );
       
   152 
       
   153     CleanupStack::PopAndDestroy( &uri );
       
   154    
       
   155     aMessage.Complete( KErrNone );
       
   156     }
       
   157 
       
   158 // ---------------------------------------------------------------------------
       
   159 //  CBlacklistSession::RemoveFromDBL()
       
   160 // ---------------------------------------------------------------------------
       
   161 //
       
   162 void CBlacklistSession::RemoveFromDBL( const RMessage2& aMessage ) 
       
   163     {
       
   164  	RBuf uri;
       
   165     uri.Create( aMessage.GetDesLength( 1 ) );
       
   166     CleanupClosePushL( uri );
       
   167     aMessage.ReadL( 1, uri );
       
   168 
       
   169     TUint32 mediaId ( 0 );
       
   170     TPckg<TUint32> mediaIdPckg( mediaId );
       
   171     aMessage.ReadL( 2, mediaIdPckg );
       
   172 
       
   173     Server().RemoveFromDBL( uri, mediaId ); 
       
   174 
       
   175     CleanupStack::PopAndDestroy( &uri );  
       
   176 
       
   177     aMessage.Complete( KErrNone );
       
   178     }
       
   179 
       
   180 // ---------------------------------------------------------------------------
       
   181 //  CBlacklistSession::CloseDB()
       
   182 // ---------------------------------------------------------------------------
       
   183 //
       
   184 void CBlacklistSession::CloseDB( const RMessage2& aMessage ) 
       
   185     {
       
   186     Server().CloseDB();
       
   187     if( !aMessage.IsNull() )
       
   188         {
       
   189         aMessage.Complete( KErrNone );
       
   190         }
       
   191     }
       
   192 
       
   193 // End of File