applicationmanagement/server/inc/nsmldmiapmatcher.h
author hgs
Tue, 13 Jul 2010 04:01:20 +0530
changeset 47 d316aecb87fd
permissions -rw-r--r--
201025_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
 * Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
 * Description:  DM Tree module
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
 */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
#ifndef __NSMLDMIAPMATCHER_H__
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    19
#define __NSMLDMIAPMATCHER_H__
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    22
// Includes
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    23
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    24
#include <e32base.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
#include "nsmldmuri.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
//CLASS FORWARDS
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    28
class MSmlDmCallback;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    30
_LIT8( KNSmlDMIAPUri, "AP" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
_LIT8( KNSmlDMSeparator8, "/" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    32
_LIT8( KNSmlDMIAPUriDotSlash, "./" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
const TUint8 KNSmlDMSlash = 0x2f; //forward slash
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
/**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
 * CNSmlDMIAPMatcher contains services for generating URI from IAPId and
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
 * vice versa in DM plug-in adapters. The class needs the working
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
 * MSmlDmCallback callback interface for operating, so ths can be used only
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
 * by DM plug-in adapters
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
 *  @since
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
 */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
class CNSmlDMIAPMatcher : public CBase
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    47
     * Destructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    48
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    49
    ~CNSmlDMIAPMatcher();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
     * Two-phased constructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
     * @param	aDmCallback			Pointer to callback interface
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
     * @return						Pointer to newly created module instance
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
    static CNSmlDMIAPMatcher* NewL(MSmlDmCallback* aDmCallback);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
     * Two-phased constructor, pushes pointer to cleanup stack.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
     * @param	aDmCallback			Pointer to callback interface
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
     * @return						Pointer to newly created module instance
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
    static CNSmlDMIAPMatcher* NewLC(MSmlDmCallback* aDmCallback);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
     * Gets the IAP id which corresponds to given URI
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
     * @param	aURI				Accespoint URI
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
     * @return						Accespoint id in AP database
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
    TInt IAPIdFromURIL(const TDesC8& aURI);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
     * Generates the URI which corresponds to given IAP Id
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    74
     * @param	aIAPId				Accespoint Id
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    75
     * @return						Accesspoint URI in DM
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    76
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    77
    HBufC8* URIFromIAPIdL(TInt aIAPId);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    78
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
private:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
     * Second phase constructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
     * @param	aDmCallback			Pointer to callback interface
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
    void ConstructL(MSmlDmCallback* aDmCallback);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
     * Changes the given descriptor to Integer
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
     * @param	aLuid				Luid in descriptor format
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
     * @return						Luid in TInt type
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
    TInt DesToInt(const TDesC8& aLuid);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
     * Return the URI without ./ at the beginning, if those exist
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
     * @param	aURI		Uri
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
     * @return 		 		Uri without ./
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
    TPtrC8 RemoveDotSlash(const TDesC8& aURI) const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
     * Return the last uri segment of the aURI
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
     * @param	aURI		Uri
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
     * @return 		 		The last uri segment
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
    TPtrC8 LastURISeg(const TDesC8& aURI) const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
private:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
     * Pointer to callback interface
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
    MSmlDmCallback* iCallback;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
    };
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
#endif // __NSMLDMIAPMATCHER_H__