contentstorage/caclient/s60/src/cahandlerproxy.cpp
changeset 66 32469d7d46ff
parent 61 8e5041d13c84
equal deleted inserted replaced
61:8e5041d13c84 66:32469d7d46ff
    17 
    17 
    18 #include <caentry.h>
    18 #include <caentry.h>
    19 #include "cahandler.h"
    19 #include "cahandler.h"
    20 #include "cahandlerproxy.h"
    20 #include "cahandlerproxy.h"
    21 #include "cahandlerloader.h"
    21 #include "cahandlerloader.h"
       
    22 #include "cainnerentry.h"
       
    23 #include "caobjectadapter.h"
    22 
    24 
    23 /*!
    25 /*!
    24     \class CaHandlerProxy
    26     \class CaHandlerProxy
    25     \ingroup 
    27     \ingroup
    26     \brief Forwards execute request to an implemenation provided by specific handler loader.
    28     \brief Forwards execute request to an implemenation provided by specific handler loader.
    27 
    29 
    28     \sa CaHandlerLoader
    30     \sa CaHandlerLoader
    29 */
    31 */
    30 
    32 
    58     CaHandler *const handler = getHandler(entry, commandName);
    60     CaHandler *const handler = getHandler(entry, commandName);
    59 
    61 
    60     TInt result = KErrNotFound;
    62     TInt result = KErrNotFound;
    61 
    63 
    62     if (handler != NULL) {
    64     if (handler != NULL) {
    63         result = handler->execute(entry, commandName);
    65         QScopedPointer<CCaInnerEntry> innerEntry(NULL);
       
    66         TRAP(result,
       
    67             innerEntry.reset(CCaInnerEntry::NewL());
       
    68             CaObjectAdapter::convertL(entry, *innerEntry);
       
    69             )
       
    70         if (result == KErrNone) {
       
    71             result = handler->execute(*innerEntry, commandName);
       
    72         }
    64     }
    73     }
    65 
       
    66     return result;
    74     return result;
    67 }
    75 }
    68 
    76 
    69 /*!
    77 /*!
    70   Looks for handler implementation in local cache or if not found, request it from
    78   Looks for handler implementation in local cache or if not found, request it from