presencefwsimpleadpt/src/simplepluginxdmutils.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:23:14 +0100
branchRCL_3
changeset 35 fbd2e7cec7ef
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201027 Kit: 201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     1
/*
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     3
* All rights reserved.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     8
*
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
     9
* Initial Contributors:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    11
*
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    12
* Contributors:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    13
*
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    14
* Description:    SIMPLE Protocol implementation for Presence Framework
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    15
*
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    16
*/
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    17
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    18
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    19
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    20
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    21
#include <e32std.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    22
#include <utf.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    23
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    24
#include <simplefactory.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    25
#include <msimpleconnection.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    26
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    27
#include <pressettingsapi.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    28
#include <cpresencexdm.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    29
#include <rlspresxdmconsts.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    30
#include <XdmErrors.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    31
#include <prescondmisc.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    32
#include <prescondidentityone.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    33
#include <presenceactionxdm.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    34
#include <presencetransformxdm.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    35
#include <crlsxdm.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    36
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    37
#include <XdmEngine.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    38
#include <XdmDocument.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    39
#include <XdmProtocolInfo.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    40
#include <XdmDocumentNode.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    41
#include <XdmNodeAttribute.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    42
#include <XdmSettingsApi.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    43
#include <XdmErrors.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    44
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    45
#include "simpleplugindebugutils.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    46
#include "simpleplugincommon.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    47
#include "simplepluginxdmutils.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    48
#include "simpleplugindata.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    49
#include "simplepluginvariation.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    50
#include "msimplepluginsettings.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    51
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    52
// Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    53
#include "msimpleplugintestobs.h"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    54
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    55
// This is for debugging and local test mode oly
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    56
#include <in_sock.h>
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    57
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    58
// URI prefixies
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    59
const TInt KMyLenPrefix = 4;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    60
_LIT16( KMySip, "sip:" );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    61
_LIT16( KMyTel, "tel:" );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    62
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    63
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    64
// ======== MEMBER FUNCTIONS ========
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    65
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    67
// CSimplePluginXdmUtils::CSimplePluginXdmUtils
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    69
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    70
CSimplePluginXdmUtils::CSimplePluginXdmUtils(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    71
    MSimplePluginSettings& aConnSets, TInt aXmdId )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    72
: CActive( EPriorityStandard ),
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    73
  iConnSets(aConnSets), iSettingsId(aXmdId),
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    74
  iXdmState(EStateIdle), iOperation( ENoOperation), iTestObs( NULL )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    75
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    76
    CActiveScheduler::Add( this );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    77
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    78
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    79
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    80
// CSimplePluginXdmUtils::ConstructL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    81
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    82
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    83
void CSimplePluginXdmUtils::ConstructL(  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    84
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    85
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    86
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    87
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    88
// CSimplePluginXdmUtils::NewL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    89
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    90
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    91
CSimplePluginXdmUtils* CSimplePluginXdmUtils::NewL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    92
    MSimplePluginSettings& aConnSets,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    93
    TInt aXmdId )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    94
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    95
    CSimplePluginXdmUtils* self =
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    96
        new( ELeave ) CSimplePluginXdmUtils( aConnSets, aXmdId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    97
    CleanupStack::PushL( self );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    98
    self->ConstructL(   );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
    99
    CleanupStack::Pop( self );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   100
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   101
    PluginLogger::Log(_L("PluginXdm: NewL this=%d"), (TInt)self);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   102
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   103
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   104
    return self;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   105
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   106
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   107
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   108
// CSimplePluginXdmUtils::~CSimplePluginXdmUtils()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   110
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   111
CSimplePluginXdmUtils::~CSimplePluginXdmUtils()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   112
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   113
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   114
    Cancel();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   115
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   116
    CancelWrappers();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   117
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   118
    if ( iXdmDoc && iXdmEngine )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   119
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   120
        TRAP_IGNORE( iXdmEngine->DeleteDocumentModelL( iXdmDoc ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   121
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   122
    delete iRlsXdm;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   123
    delete iPresenceXdm;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   124
    delete iXdmEngine;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   125
    delete iAuxBuffer;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   126
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   127
    delete iAuxBuffer2;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   128
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   129
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   130
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   131
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   132
// CSimplePluginXdmUtils::InitializeXdmL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   133
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   134
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   135
void CSimplePluginXdmUtils::InitializeXdmL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   136
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   137
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   138
    PluginLogger::Log(_L("PluginXdm: InitializeXdmL") );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   139
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   140
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   141
    iOperation = EXdmInit;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   142
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   143
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   144
    if ( !iXdmOk )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   145
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   146
        GetXdmOMAListsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   147
        iXdmState = EGetXdmOMALists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   148
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   149
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   150
    else if ( !iPresXdmOk )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   151
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   152
        GetXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   153
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   154
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   155
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   156
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   157
        // All is ok
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   158
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   159
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   160
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   161
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   162
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   163
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   164
// CSimplePluginXdmUtils::InitializeXdmsOnlyL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   165
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   166
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   167
void CSimplePluginXdmUtils::InitializeXdmsOnlyL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   168
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   169
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   170
    PluginLogger::Log(_L("PluginXdm: InitializeXdmsOnlyL") );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   171
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   172
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   173
    iOperation = EXdmInitXdmsOnly;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   174
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   175
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   176
    if ( !iXdmOk )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   177
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   178
        GetXdmOMAListsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   179
        iXdmState = EGetXdmOMAListsOnly;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   180
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   181
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   182
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   183
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   184
        // All is ok
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   185
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   186
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   187
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   188
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   189
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   190
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   191
// CSimplePluginXdmUtils::RunL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   192
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   193
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   194
void CSimplePluginXdmUtils::RunL(  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   195
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   196
    TPluginXdmState origState = iXdmState;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   197
    iXdmState = EStateIdle;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   198
    TInt myStatus = iStatus.Int();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   199
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   200
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   201
    PluginLogger::Log(_L("PluginXdm: RunL %d"), myStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   202
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   203
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   204
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   205
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   206
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   207
        iTestObs->TestCallbackInRunL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   208
            myStatus, origState, iOperation, KNullDesC );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   209
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   210
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   211
#ifdef FAKE_XDM_OK
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   212
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   213
    // -191 = KErrHostUnreach in_sock.h
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   214
    if ( myStatus == KErrTimedOut || myStatus == KXcapErrorNetworkNotAvailabe || -191 )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   215
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   216
        PluginLogger::Log(_L("PluginXdmUtils : RunL FAKE_XDM_OK resets error code %d"), myStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   217
        myStatus = 0;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   218
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   219
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   220
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   221
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   222
    DoXdmRunL( origState, myStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   223
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   224
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   225
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   226
// CSimplePluginXdmUtils::DoXdmRunL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   227
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   228
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   229
void CSimplePluginXdmUtils::DoXdmRunL( TPluginXdmState aOrigState, TInt aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   230
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   231
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   232
    switch ( aOrigState )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   233
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   234
        case EGetXdmOMALists:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   235
        case EGetXdmOMAListsOnly:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   236
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   237
            // no OMA resource-list, let's start to create it.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   238
            if ( CreateXdmOMAListsIfNeededL() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   239
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   240
                iXdmState = aOrigState == EGetXdmOMALists ? ECreateXdmOMALists : ECreateXdmOMAListsOnly;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   241
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   242
            else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   243
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   244
                iXdmOk = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   245
                if ( !iPresXdmOk && aOrigState == EGetXdmOMALists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   246
                    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   247
                    GetXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   248
                    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   249
                else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   250
                    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   251
                    CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   252
                    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   253
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   254
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   255
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   256
        case ECreateXdmOMALists:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   257
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   258
            if ( aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   259
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   260
                CompleteClientReq( aStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   261
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   262
            else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   263
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   264
                iXdmOk = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   265
                GetXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   266
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   267
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   268
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   269
        case ECreateXdmOMAListsOnly:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   270
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   271
            if ( !aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   272
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   273
                iXdmOk = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   274
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   275
            CompleteClientReq( aStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   276
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   277
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   278
        default:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   279
            // complete reqular request
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   280
            CompleteClientReq( aStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   281
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   282
        };
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   283
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   284
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   285
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   286
// CSimplePluginXdmUtils::CancelWrappers()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   287
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   288
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   289
void CSimplePluginXdmUtils::CancelWrappers( )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   290
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   291
    iOperation = EXdmCancel;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   292
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   293
    // Cancel M-class interface methods that calls callback method.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   294
    if ( iXdmState == EGetRlsServices ||
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   295
         iXdmState == EUpdateRlsServices ||
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   296
         iXdmState == EReUpdateRlsServices )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   297
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   298
        iXdmState = ECancelDocument;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   299
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   300
        PluginLogger::Log(_L("PluginXdm: -> iRlsXdm->Cancel"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   301
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   302
        // Better call Cancel() instead of CancelUpdateL().
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   303
        // It works and is easier to implement. Otherwise we should have here
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   304
        // SetActive(); iStatus=KRequestPending; User::WaitForRequest(iStatus)
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   305
        // and we should have implemented HandleRLSUpdateCancelL that completes
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   306
        // own iStatus.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   307
        iRlsXdm->Cancel();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   308
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   309
    else if ( iXdmState == EGetXdmRules ||
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   310
              iXdmState == EUpdateXdmRules )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   311
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   312
        iXdmState = ECancelDocument;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   313
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   314
        PluginLogger::Log(_L("PluginXdm: -> iPresenceXdm->Cancel"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   315
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   316
        iPresenceXdm->Cancel();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   317
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   318
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   319
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   320
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   321
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   322
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   323
// CSimplePluginXdmUtils::DoCancel()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   324
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   325
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   326
void CSimplePluginXdmUtils::DoCancel(  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   327
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   328
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   329
    PluginLogger::Log(_L("PluginXdm: DoCancel"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   330
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   331
    iOperation = EXdmCancel;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   332
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   333
    if ( iXdmState == EGetXdmOMALists || iXdmState == ECreateXdmOMALists ||
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   334
         iXdmState == EGetXdmOMAListsOnly || iXdmState == ECreateXdmOMAListsOnly ||
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   335
         iXdmState == EUpdateXdmOMAList )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   336
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   337
        // Cancel a request made to XDM Engine.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   338
        iXdmState = ECancelDocument;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   339
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   340
      PluginLogger::Log(_L("PluginXdm: iXdmEngine->CancelUpdate"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   341
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   342
        iXdmEngine->CancelUpdate( iXdmDoc );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   343
        CompleteClientReq( KErrCancel );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   344
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   345
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   346
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   347
        // Cancel a request where we have completed our own iStatus.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   348
        // Very rare posibility that this happens when GetXdmOMALists is not ready.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   349
        // It's very hard to make it happen in test suite.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   350
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   351
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   352
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   353
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   354
// CSimplePluginXdmUtils::RunError
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   355
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   356
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   357
TInt CSimplePluginXdmUtils::RunError( TInt aError )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   358
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   359
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   360
    PluginLogger::Log(_L("PluginXdm: RunError"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   361
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   362
    // complete the open request
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   363
    CompleteClientReq( aError );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   364
    return KErrNone;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   365
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   366
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   367
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   368
// CSimplePluginXdmUtils::FetchRlsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   369
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   370
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   371
void CSimplePluginXdmUtils::FetchRlsL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   372
    TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   373
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   374
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   375
    PluginLogger::Log(_L("PluginXdm: FetchRlsL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   376
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   377
    _LIT( KMyOper, "FetchRlsL");
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   378
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   379
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   380
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   381
    iOperation = EXdmRlsFetch;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   382
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   383
    if ( !iRlsXdm )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   384
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   385
        iRlsXdm = CRLSXDM::NewL( iSettingsId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   386
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   387
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   388
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   389
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   390
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   391
        iTestObs->TestCallbackAsynchL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   392
            KErrNone, iXdmState, iOperation, KMyOper );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   393
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   394
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   395
    // The following returns in MRLSPresXDMAsyncHandler callback
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   396
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   397
    PluginLogger::Log(_L("PluginXdm: -> iRlsXdm->UpdateAllFromServerL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   398
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   399
    User::LeaveIfError( iRlsXdm->UpdateAllFromServerL( this ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   400
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   401
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   402
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   403
    iXdmState = EGetRlsServices;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   404
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   405
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   406
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   407
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   408
// CSimplePluginXdmUtils::AddRlsGroupL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   409
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   410
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   411
void CSimplePluginXdmUtils::AddRlsGroupL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   412
    const TDesC&  aName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   413
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   414
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   415
    PluginLogger::Log(_L("PluginXdm: AddRlsGroupL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   416
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   417
    iOperation = EXdmRlsAdd;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   418
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   419
    HBufC16* buf = CreateRlsDocumentUri16LC(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   420
        aName, iConnSets.CurrentSipPresentity(), iConnSets.CurrentDomain() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   421
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   422
    // KErrAlreadyExists
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   423
    TInt errx = iRlsXdm->AddServiceURIL( buf->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   424
    if ( errx && errx != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   425
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   426
        User::Leave( errx );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   427
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   428
    User::LeaveIfError( iRlsXdm->SwitchToServiceURIL( buf->Des() ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   429
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   430
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   431
    CleanupStack::PushL( xcapUri );             // << xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   432
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   433
    HBufC* listUri = MakeRlsBuddyUriL( xcapUri->Des(), aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   434
    CleanupStack::PushL( listUri );             // << listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   435
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   436
    TInt err = iRlsXdm->AddElementL( KPresResourceList,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   437
        listUri->Des(), aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   438
    if ( err && err != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   439
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   440
        User::Leave( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   441
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   442
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   443
    // Save aName for RLS Service URI negoriation handling (HTTP error 409).
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   444
    // Notice: We assume that only one AddRlsGroupL is called between CommitRlsL methods.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   445
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   446
    delete iAuxBuffer;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   447
    iAuxBuffer = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   448
    iAuxBuffer = aName.AllocL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   449
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   450
    CleanupStack::PopAndDestroy( listUri );     // >> listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   451
    CleanupStack::PopAndDestroy( xcapUri );     // >> xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   452
    CleanupStack::PopAndDestroy( buf );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   453
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   454
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   455
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   456
// CSimplePluginXdmUtils::RemoveRlsGroupL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   457
// Use RemoveRlsServiceByResourceListL when possible
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   458
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   459
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   460
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   461
void CSimplePluginXdmUtils::RemoveRlsGroupL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   462
    const TDesC&  aName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   463
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   464
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   465
    PluginLogger::Log(_L("PluginXdm: RemoveRlsGroupL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   466
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   467
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   468
    iOperation = EXdmRlsRemove;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   469
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   470
    HBufC16* buf = CreateRlsDocumentUri16LC(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   471
        aName, iConnSets.CurrentSipPresentity(), iConnSets.CurrentDomain() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   472
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   473
    User::LeaveIfError( iRlsXdm->RemoveServiceURIL( buf->Des()));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   474
    CleanupStack::PopAndDestroy( buf );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   475
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   476
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   477
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   478
// CSimplePluginXdmUtils::AddEntityToGrantedL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   479
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   480
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   481
void CSimplePluginXdmUtils::AddEntityToGrantedL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   482
    const TDesC&  aUri, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   483
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   484
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   485
    PluginLogger::Log(_L("PluginXdm: AddEntityToGrantedL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   486
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   487
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   488
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   489
    iOperation = EXdmAddUserToGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   490
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   491
    DoAddUserToListL( iConnSets.Variation().GrantListName(), aUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   492
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   493
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   494
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   495
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   496
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   497
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   498
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   499
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   500
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   501
// CSimplePluginXdmUtils::AddEntityToBlockedL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   502
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   503
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   504
void CSimplePluginXdmUtils::AddEntityToBlockedL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   505
    const TDesC&  aUri, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   506
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   507
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   508
    PluginLogger::Log(_L("PluginXdm: AddEntityToBlockedL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   509
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   510
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   511
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   512
    iOperation = EXdmAddUserToGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   513
    DoAddUserToListL( KSimpleOMABlockedList, aUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   514
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   515
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   516
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   517
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   518
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   519
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   520
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   521
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   522
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   523
// CSimplePluginXdmUtils::DoAddUserToListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   524
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   525
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   526
void CSimplePluginXdmUtils::DoAddUserToListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   527
    const TDesC& aList, const TDesC&  aUri )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   528
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   529
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   530
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   531
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   532
    RPointerArray<CXdmDocumentNode> lists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   533
    CleanupClosePushL( lists );                 // <<  lists
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   534
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   535
    CXdmDocumentNode* root = iXdmDoc->DocumentRoot();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   536
    CXdmDocumentNode* foundNode = SearchListUnderParentL( root, aList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   537
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   538
    if ( foundNode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   539
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   540
        if ( foundNode->IsEmptyNode() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   541
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   542
            foundNode->SetEmptyNode( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   543
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   544
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   545
        CXdmDocumentNode* newNode = foundNode->CreateChileNodeL( KSimpleEntry );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   546
        CXdmNodeAttribute* attributeEntryUri = newNode->CreateAttributeL( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   547
        attributeEntryUri->SetAttributeValueL( aUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   548
        iXdmDoc->AppendL( newNode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   549
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   550
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   551
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   552
        User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   553
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   554
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   555
    CleanupStack::PopAndDestroy( &lists  );     // >> lists
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   556
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   557
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   558
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   559
// CSimplePluginXdmUtils::RemoveEntityFromGrantedL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   560
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   561
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   562
void CSimplePluginXdmUtils::RemoveEntityFromGrantedL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   563
    const TDesC&  aUri, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   564
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   565
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   566
    PluginLogger::Log(_L("PluginXdm: RemoveEntityFromGrantedL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   567
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   568
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   569
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   570
    iOperation = EXdmRemoveUserFromGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   571
    DoRemoveUserFromListL( iConnSets.Variation().GrantListName(), aUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   572
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   573
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   574
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   575
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   576
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   577
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   578
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   579
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   580
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   581
// CSimplePluginXdmUtils::RemoveEntityFromBlockedL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   582
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   583
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   584
void CSimplePluginXdmUtils::RemoveEntityFromBlockedL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   585
    const TDesC&  aUri, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   586
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   587
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   588
    PluginLogger::Log(_L("PluginXdm: RemoveEntityFromBlockedL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   589
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   590
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   591
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   592
    iOperation = EXdmRemoveUserFromGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   593
    DoRemoveUserFromListL( KSimpleOMABlockedList, aUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   594
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   595
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   596
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   597
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   598
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   599
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   600
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   601
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   602
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   603
// CSimplePluginXdmUtils::DoRemoveUserFromListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   604
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   605
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   606
void CSimplePluginXdmUtils::DoRemoveUserFromListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   607
    const TDesC& aList, const TDesC&  aUri )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   608
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   609
    CXdmNodeAttribute* attr = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   610
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   611
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   612
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   613
    RPointerArray<CXdmDocumentNode> lists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   614
    CleanupClosePushL( lists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   615
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   616
    RPointerArray<CXdmDocumentNode> nodes;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   617
    CleanupClosePushL( nodes );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   618
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   619
    CXdmDocumentNode* root = iXdmDoc->DocumentRoot();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   620
    CXdmDocumentNode* foundNode = SearchListUnderParentL( root, aList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   621
    if ( foundNode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   622
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   623
        User::LeaveIfError( foundNode->Find( KSimpleEntry, nodes ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   624
        TInt nodeCount = nodes.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   625
        for ( TInt i = 0; i < nodeCount; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   626
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   627
            CXdmDocumentNode* currNode = nodes[i];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   628
            attr = ( currNode )->Attribute( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   629
            if ( attr && !attr->AttributeValue().CompareF( aUri ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   630
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   631
                // This is the user we are looking for deletion.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   632
                iXdmDoc->DeleteDataL( currNode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   633
                break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   634
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   635
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   636
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   637
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   638
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   639
        User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   640
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   641
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   642
    CleanupStack::PopAndDestroy( &nodes ); // >>> nodes
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   643
    CleanupStack::PopAndDestroy( &lists ); // >>> lists
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   644
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   645
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   646
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   647
// CSimplePluginXdmUtils::RemoveGroupFromGrantedL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   648
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   649
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   650
void CSimplePluginXdmUtils::RemoveGroupFromGrantedL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   651
    const TDesC&  aName, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   652
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   653
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   654
    PluginLogger::Log(_L("PluginXdm: RemoveGroupFromGrantedL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   655
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   656
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   657
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   658
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   659
    CleanupStack::PushL( xcapUri );             // << xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   660
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   661
    HBufC* listUri = MakeRlsBuddyUriL( xcapUri->Des(), aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   662
    CleanupStack::PushL( listUri );             // << listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   663
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   664
    DoRemoveListFromGrantRuleL( listUri->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   665
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   666
    CleanupStack::PopAndDestroy( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   667
    CleanupStack::PopAndDestroy( xcapUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   668
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   669
    iOperation = EXdmWithdrawGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   670
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   671
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   672
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   673
// CSimplePluginXdmUtils::DoRemoveListFromGrantRuleL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   674
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   675
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   676
void CSimplePluginXdmUtils::DoRemoveListFromGrantRuleL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   677
    const TDesC&  aListUri )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   678
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   679
    TPresCondMisc misc;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   680
    misc.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   681
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   682
    if ( !misc.DeleteExternalListL( iConnSets.Variation().GrantRuleName(), aListUri ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   683
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   684
        // update document in the server only if there was a modification.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   685
        UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   686
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   687
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   688
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   689
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   690
        // Complete without server operation
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   691
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   692
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   693
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   694
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   695
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   696
// CSimplePluginXdmUtils::AddGroupToGrantedL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   697
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   698
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   699
void CSimplePluginXdmUtils::AddGroupToGrantedL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   700
    const TDesC&  aName, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   701
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   702
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   703
    PluginLogger::Log(_L("PluginXdm: AddGroupToGrantedL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   704
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   705
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   706
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   707
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   708
    if ( !DoesUserListExistsL( aName )  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   709
      {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   710
      User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   711
      }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   712
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   713
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   714
    CleanupStack::PushL( xcapUri );             // << xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   715
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   716
    HBufC* listUri = MakeRlsBuddyUriL( xcapUri->Des(), aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   717
    CleanupStack::PushL( listUri );             // << listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   718
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   719
    iOperation = EXdmGrantGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   720
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   721
    DoAddListIntoGrantRuleL( listUri->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   722
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   723
    CleanupStack::PopAndDestroy( listUri );     // >> listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   724
    CleanupStack::PopAndDestroy( xcapUri );     // >> xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   725
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   726
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   727
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   728
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   729
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   730
// CSimplePluginXdmUtils::DoAddListIntoGrantRuleL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   731
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   732
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   733
void CSimplePluginXdmUtils::DoAddListIntoGrantRuleL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   734
    const TDesC& aListUri)
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   735
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   736
    TPresCondMisc misc;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   737
    misc.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   738
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   739
    User::LeaveIfError( misc.AddExternListL( iConnSets.Variation().GrantRuleName(), aListUri ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   740
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   741
    UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   742
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   743
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   744
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   745
// CSimplePluginXdmUtils::GrantForEveryoneL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   746
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   747
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   748
void CSimplePluginXdmUtils::GrantForEveryoneL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   749
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   750
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   751
    PluginLogger::Log(_L("PluginXdm: GrantForEveryoneL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   752
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   753
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   754
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   755
    iOperation = EXdmGrantForAll;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   756
    DoGrantForAllL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   757
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   758
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   759
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   760
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   761
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   762
// CSimplePluginXdmUtils::WithdrawFromEveryoneL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   763
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   764
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   765
void CSimplePluginXdmUtils::WithdrawFromEveryoneL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   766
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   767
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   768
    PluginLogger::Log(_L("PluginXdm: WithdrawFromEveryoneL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   769
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   770
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   771
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   772
    iOperation = EXdmWithdrawFromAll;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   773
    DoWithdrawFromAllL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   774
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   775
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   776
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   777
// CSimplePluginXdmUtils::SetReactiveAuthL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   778
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   779
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   780
void CSimplePluginXdmUtils::SetReactiveAuthL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   781
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   782
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   783
    PluginLogger::Log(_L("PluginXdm: SetReactiveAuthL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   784
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   785
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   786
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   787
    iOperation = EXdmSetReactiveAuth;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   788
    DoSetReactiveAuthL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   789
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   790
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   791
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   792
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   793
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   794
// CSimplePluginXdmUtils::SetProactiveAuthL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   795
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   796
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   797
void CSimplePluginXdmUtils::SetProactiveAuthL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   798
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   799
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   800
    PluginLogger::Log(_L("PluginXdm: SetProactiveAuthL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   801
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   802
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   803
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   804
    iOperation = EXdmSetProactiveAuth;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   805
    DoSetProactiveAuthL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   806
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   807
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   808
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   809
// CSimplePluginXdmUtils::SubscribeBlockListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   810
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   811
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   812
void CSimplePluginXdmUtils::SubscribeBlockListL( CPtrCArray& aMembers )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   813
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   814
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   815
    PluginLogger::Log(_L("PluginXdm: SubscribeBlockListL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   816
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   817
    iOperation = EXdmGetBlockedList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   818
    DoGetListMembersL( KSimpleOMABlockedList, aMembers );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   819
    // The cient will call a method GetEntitiesL that access those arrays
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   820
    // Those member arrays will be emptied after the call. + in destrcutor.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   821
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   822
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   823
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   824
// CSimplePluginXdmUtils::UnsubscribeBlockListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   825
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   826
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   827
void CSimplePluginXdmUtils::UnsubscribeBlockListL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   828
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   829
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   830
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   831
    // Subscription state is always terminated
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   832
    CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   833
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   834
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   835
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   836
// CSimplePluginXdmUtils::DoGetListMembersL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   837
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   838
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   839
void CSimplePluginXdmUtils::DoGetListMembersL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   840
    const TDesC& aList, CPtrCArray& aMembers  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   841
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   842
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   843
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   844
    aMembers.Reset();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   845
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   846
    RPointerArray<CXdmDocumentNode> nodes;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   847
    CleanupClosePushL( nodes );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   848
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   849
    CXdmNodeAttribute* attr = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   850
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   851
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   852
    CXdmDocumentNode* foundNode = SearchListUnderParentL( buddylist, aList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   853
    if ( foundNode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   854
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   855
        nodes.Reset();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   856
        // Do not leave if there is nobody blocked
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   857
        TRAP_IGNORE( foundNode->Find( KSimpleEntry, nodes ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   858
        TInt nodeCount = nodes.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   859
        for ( TInt i = 0; i < nodeCount; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   860
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   861
            attr = (nodes[i])->Attribute( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   862
            if ( attr )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   863
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   864
                aMembers.AppendL( attr->AttributeValue() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   865
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   866
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   867
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   868
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   869
    CleanupStack::PopAndDestroy( &nodes );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   870
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   871
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   872
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   873
// CSimplePluginXdmUtils::HandleRLSUpdateDocumentL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   874
// RLS Callback
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   875
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   876
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   877
void CSimplePluginXdmUtils::HandleRLSUpdateDocumentL( TInt aErrorCode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   878
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   879
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   880
    PluginLogger::Log(_L("PluginXdm: HandleRLSUpdateDocumentL %d"), aErrorCode);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   881
#ifdef FAKE_XDM_OK
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   882
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   883
    if ( aErrorCode == KErrTimedOut || aErrorCode == KXcapErrorNetworkNotAvailabe || aErrorCode == KErrHostUnreach )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   884
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   885
        PluginLogger::Log(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   886
            _L("PluginXdm : HandleRLSUpdateDocumentL FAKE_XDM_OK resets error code %d"),
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   887
            aErrorCode  );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   888
        aErrorCode  = 0;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   889
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   890
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   891
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   892
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   893
    TRAPD( err, DoHandleRLSUpdateDocumentL( aErrorCode ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   894
    if ( err )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   895
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   896
        // Complete with ok or error the last initial opreration
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   897
        CompleteClientReq( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   898
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   899
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   900
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   901
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   902
// CSimplePluginXdmUtils::DoHandleRLSUpdateDocumentL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   903
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   904
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   905
void CSimplePluginXdmUtils::DoHandleRLSUpdateDocumentL( TInt aErrorCode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   906
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   907
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   908
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   909
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   910
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   911
        iTestObs->TestCallbackInRunL( aErrorCode, iXdmState, iOperation, KNullDesC );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   912
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   913
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   914
    // Resend 409 failed request only if the server sent a preposal for the right URI
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   915
    // and only once, so that this do not remain in endless loop between server and
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   916
    // a client.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   917
    if ( aErrorCode == KXcapErrorHttpConflict &&
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   918
         iOperation == EXdmRlsAdd &&
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   919
         iRlsXdm->NegotiatedServiceUri().Length() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   920
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   921
        RlsServiceUriNegotiationL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   922
        return;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   923
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   924
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   925
    switch ( iXdmState )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   926
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   927
        case EGetRlsServices:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   928
            if ( aErrorCode == KXcapErrorHttpNotFound || aErrorCode == KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   929
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   930
                aErrorCode = KErrNone;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   931
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   932
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   933
        default:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   934
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   935
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   936
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   937
    CompleteClientReq( aErrorCode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   938
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   939
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   940
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   941
// CSimplePluginXdmUtils::HandleRLSUpdateCancelL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   942
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   943
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   944
void CSimplePluginXdmUtils::HandleRLSUpdateCancelL( TInt /*aErrorCode*/ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   945
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   946
    // notice: not needed
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   947
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   948
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   949
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   950
// CSimplePluginXdmUtils::HandleRLSDeleteAllEmptyListsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   951
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   952
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   953
void CSimplePluginXdmUtils::HandleRLSDeleteAllEmptyListsL( TInt /*aErrorCode*/ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   954
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   955
    // Notice: Not needed
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   956
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   957
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   958
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   959
// CSimplePluginXdmUtils::HandlePresUpdateDocumentL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   960
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   961
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   962
void CSimplePluginXdmUtils::HandlePresUpdateDocumentL( TInt aErrorCode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   963
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   964
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   965
    PluginLogger::Log(_L("PluginXdm: HandlePresUpdateDocumentL %d"), aErrorCode);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   966
#ifdef FAKE_XDM_OK
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   967
        if ( aErrorCode == KErrTimedOut || aErrorCode == KXcapErrorNetworkNotAvailabe || aErrorCode == KErrHostUnreach )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   968
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   969
            PluginLogger::Log(_L("PluginXdm : HandlePresUpdateDocumentL FAKE_XDM_OK resets error code %d"), aErrorCode  );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   970
            aErrorCode  = 0;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   971
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   972
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   973
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   974
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   975
    TRAPD( err, DoHandlePresUpdateDocumentL( aErrorCode ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   976
    if ( err )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   977
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   978
        // Complete with ok or error the last initial opreration
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   979
        CompleteClientReq( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   980
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   981
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   982
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   983
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   984
// CSimplePluginXdmUtils::DoHandlePresUpdateDocumentL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   985
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   986
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   987
void CSimplePluginXdmUtils::DoHandlePresUpdateDocumentL( TInt aErrorCode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   988
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   989
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   990
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   991
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   992
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   993
        iTestObs->TestCallbackInRunL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   994
            aErrorCode, iXdmState, iOperation, KNullDesC );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   995
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   996
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   997
    if ( iXdmState == EGetXdmRules )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   998
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
   999
        iXdmState = EStateIdle;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1000
        if ( aErrorCode && aErrorCode != KXcapErrorHttpNotFound &&
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1001
             aErrorCode != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1002
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1003
            User::Leave( aErrorCode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1004
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1005
        // check and create the rules when needed
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1006
        MakeInitialXdmsDocumentL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1007
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1008
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1009
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1010
        iPresXdmOk = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1011
        // Complete with ok or error the last initial opreration
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1012
        CompleteClientReq( aErrorCode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1013
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1014
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1015
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1016
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1017
// CSimplePluginXdmUtils::HandlePresUpdateCancelL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1018
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1019
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1020
void CSimplePluginXdmUtils::HandlePresUpdateCancelL( TInt /*aErrorCode*/ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1021
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1022
    // notice: not needed
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1023
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1024
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1025
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1026
// CSimplePluginXdmUtils::GetXdmOMAListsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1027
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1028
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1029
void CSimplePluginXdmUtils::GetXdmOMAListsL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1030
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1031
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1032
    PluginLogger::Log(_L("PluginXdm: GetXdmOMAListsL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1033
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1034
    if ( !iXdmEngine )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1035
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1036
        // get data from a network if not done so yet
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1037
        CXdmProtocolInfo* info = CXdmProtocolInfo::NewL( iSettingsId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1038
        CleanupStack::PushL( info );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1039
        // Notice: we don't use cache for XDM
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1040
        info->SetCacheUsage( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1041
        iXdmEngine = CXdmEngine::NewL( *info );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1042
        CleanupStack::PopAndDestroy( info );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1043
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1044
    if ( !iXdmOk )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1045
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1046
        using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1047
        if ( iXdmDoc )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1048
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1049
            // Clean a document from s previous failed case.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1050
            iXdmEngine->DeleteDocumentModelL( iXdmDoc );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1051
            iXdmDoc = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1052
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1053
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1054
        // Get data from network
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1055
        iXdmDoc = iXdmEngine->CreateDocumentModelL( KSimpleIndex, EXdmSharedXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1056
        iXdmDoc->FetchDataL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1057
        UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1058
        iXdmState = EGetXdmOMALists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1059
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1060
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1061
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1062
        // Document already exists, no need to search from a server
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1063
        iStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1064
        TRequestStatus* s= &iStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1065
        User::RequestComplete( s, KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1066
        SetActive();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1067
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1068
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1069
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1070
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1071
// CSimplePluginXdmUtils::CreateXdmOMAListsIfNeededL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1072
// Notice: separate CheckXdmOMAListsL method  (validity)
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1073
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1074
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1075
TBool CSimplePluginXdmUtils::CreateXdmOMAListsIfNeededL( )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1076
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1077
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1078
    PluginLogger::Log(_L("PluginXdm: CreateXdmOMAListsIfNeededL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1079
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1080
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1081
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1082
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1083
    CXdmDocumentNode* root = iXdmDoc->DocumentRoot();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1084
    if ( !root )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1085
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1086
        root = iXdmDoc->CreateRootL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1087
        root->SetNameL( KSimpleResourceLists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1088
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1089
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1090
    if ( root->IsEmptyNode() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1091
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1092
        root->SetEmptyNode( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1093
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1094
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1095
    TInt isCreated = 0;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1096
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1097
    // add all the list nodes
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1098
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1099
    isCreated += CreateXdmOMAListIfNeededL( root, iConnSets.Variation().SharedXdmTop() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1100
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1101
    isCreated += CreateXdmOMAListIfNeededL( root, KSimpleOMABlockedList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1102
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1103
    // grant-list name is variable issue
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1104
    isCreated += CreateXdmOMAListIfNeededL( root, iConnSets.Variation().GrantListName()  );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1105
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1106
    if ( !isCreated )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1107
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1108
        return EFalse;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1109
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1110
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1111
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1112
    iXdmDoc->AppendL( root );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1113
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1114
    iXdmState = ECreateXdmOMALists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1115
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1116
    return ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1117
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1118
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1119
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1120
// CSimplePluginXdmUtils::CreateXdmOMAListIfNeededL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1121
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1122
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1123
TBool CSimplePluginXdmUtils::CreateXdmOMAListIfNeededL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1124
    CXdmDocumentNode* aRoot, const TDesC& aName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1125
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1126
    TBool isCreated( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1127
    CXdmDocumentNode* nodeFound = SearchListUnderParentL( aRoot, aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1128
    if ( !nodeFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1129
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1130
        CreateResourceListL( aRoot, aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1131
        isCreated = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1132
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1133
    return isCreated;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1134
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1135
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1136
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1137
// CSimplePluginXdmUtils::CreateResourceListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1138
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1139
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1140
void CSimplePluginXdmUtils::CreateResourceListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1141
    CXdmDocumentNode* aParent, const TDesC& aName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1142
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1143
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1144
    PluginLogger::Log(_L("PluginXdm: CreateResourceListL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1145
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1146
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1147
    CXdmDocumentNode* child1 = aParent->CreateChileNodeL( KSimpleList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1148
    CXdmNodeAttribute* name = child1->CreateAttributeL( KSimpleName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1149
    name->SetAttributeValueL( aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1150
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1151
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1152
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1153
// CSimplePluginXdmUtils::SearchListUnderParentL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1154
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1155
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1156
CXdmDocumentNode* CSimplePluginXdmUtils::SearchListUnderParentL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1157
    CXdmDocumentNode* aParent, const TDesC& aName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1158
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1159
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1160
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1161
    if ( !aParent )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1162
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1163
        return NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1164
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1165
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1166
    RPointerArray<CXdmDocumentNode> resultArray;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1167
    RPointerArray<SXdmAttribute16>  attributeArray;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1168
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1169
    CleanupClosePushL( resultArray );           // <<< resultArray
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1170
    CleanupClosePushL( attributeArray );        // <<< attributeArray
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1171
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1172
    SXdmAttribute16 attr;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1173
    attr.iName.Set( KSimpleName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1174
    attr.iValue.Set( aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1175
    attributeArray.AppendL( &attr );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1176
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1177
    CXdmDocumentNode* currNode = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1178
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1179
    aParent->Find( KSimpleList, resultArray, attributeArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1180
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1181
    TInt count = resultArray.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1182
    for ( TInt i=0; i < count; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1183
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1184
        currNode = resultArray[i];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1185
        CXdmDocumentNode* parent = currNode->Parent();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1186
        if ( parent == aParent )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1187
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1188
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1189
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1190
        currNode = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1191
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1192
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1193
    CleanupStack::PopAndDestroy( &attributeArray); // >>> attributeArray
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1194
    CleanupStack::PopAndDestroy( &resultArray );   // >>> resultArray
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1195
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1196
    return currNode;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1197
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1198
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1199
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1200
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1201
// CSimplePluginXdmUtils::MakeRlsUriL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1202
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1203
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1204
HBufC* CSimplePluginXdmUtils::MakeRlsUriL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1205
    const TDesC& aXcapUri, const TDesC& aListName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1206
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1207
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1208
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1209
    PluginLogger::Log(_L("PluginXdm: MakeRlsUriL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1210
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1211
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1212
    /* example:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1213
        "http://XCAP.EXAMPLE.COM/resource-lists/users/
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1214
        sip:USER@EXAMPLE.COM/index/~~/resource-lists/list%5b@name=%22oma_blockedlist%22%5d"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1215
        */
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1216
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1217
    using namespace NSimplePlugin::NSimpleRls;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1218
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1219
    TInt myLen = totalSize;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1220
    myLen += aXcapUri.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1221
    myLen += aListName.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1222
    myLen += iConnSets.CurrentSipPresentity().Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1223
    HBufC* myBuf = HBufC::NewL( myLen );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1224
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1225
    myBuf->Des().Append( KOne );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1226
    myBuf->Des().Append( aXcapUri);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1227
    myBuf->Des().Append( KThree );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1228
    myBuf->Des().Append( iConnSets.CurrentSipPresentity() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1229
    myBuf->Des().Append( KFive );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1230
    myBuf->Des().Append( aListName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1231
    myBuf->Des().Append( KSeven );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1232
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1233
    return myBuf;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1234
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1235
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1236
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1237
// CSimplePluginXdmUtils::MakeRlsBuddyUriL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1238
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1239
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1240
HBufC* CSimplePluginXdmUtils::MakeRlsBuddyUriL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1241
    const TDesC& aXcapUri, const TDesC& aListName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1242
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1243
    /* example:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1244
        "http://XCAP.EXAMPLE.COM/resource-lists/users/
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1245
        sip:USER@EXAMPLE.COM/~~/resource-lists/list%5b@name=%22oma_buddylist%22%5d/
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1246
        list5d@name=%22my_friends%22%5d"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1247
        */
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1248
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1249
    using namespace NSimplePlugin::NSimpleRlsBuddy;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1250
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1251
    TInt myLen = totalSize + aXcapUri.Length() + aListName.Length() +
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1252
                 iConnSets.CurrentSipPresentity().Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1253
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1254
    HBufC* myBuf = HBufC::NewL( myLen );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1255
    TPtr temp = myBuf->Des();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1256
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1257
    temp.Append( KOne );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1258
    temp.Append( aXcapUri);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1259
    temp.Append( KThree );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1260
    temp.Append( iConnSets.CurrentSipPresentity() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1261
    temp.Append( KFive );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1262
    temp.Append( aListName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1263
    temp.Append( KSeven );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1264
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1265
    return myBuf;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1266
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1267
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1268
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1269
// CSimplePluginXdmUtils::GetXdmRulesL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1270
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1271
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1272
void CSimplePluginXdmUtils::GetXdmRulesL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1273
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1274
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1275
    PluginLogger::Log(_L("PluginXdm: GetXdmRulesL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1276
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1277
    if ( !iPresenceXdm )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1278
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1279
        // get data from a network if not done so yet
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1280
        iPresenceXdm = CPresenceXDM::NewL( iSettingsId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1281
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1282
    User::LeaveIfError( iPresenceXdm->UpdateAllFromServerL( this ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1283
    iXdmState = EGetXdmRules;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1284
    // The is completed in a callback method, not in RunL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1285
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1286
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1287
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1288
// CSimplePluginXdmUtils::MakeInitialXdmsDocumentL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1289
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1290
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1291
void CSimplePluginXdmUtils::MakeInitialXdmsDocumentL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1292
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1293
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1294
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1295
    PluginLogger::Log(_L("PluginXdm: MakeInitialXdmsDocumentL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1296
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1297
    TBuf<KSimplePluginMaxRuleLength> myRuleId;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1298
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1299
    TBool ruleAdded( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1300
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1301
    TPresenceActionXDM action;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1302
    action.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1303
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1304
    TPresenceTransformXDM transform;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1305
    transform.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1306
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1307
    TPresCondMisc misc;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1308
    misc.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1309
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1310
    TPresCondIdentityOne one;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1311
    one.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1312
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1313
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1314
    CleanupStack::PushL( xcapUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1315
    HBufC* listUri = MakeRlsUriL( xcapUri->Des(), KSimpleOMABlockedList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1316
    CleanupStack::PushL( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1317
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1318
    // Default rule
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1319
    // get the rule id, use run-time variation
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1320
    myRuleId = iConnSets.Variation().DefaultRuleName(); // KSimpleXdmDefaultRule;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1321
    if ( myRuleId.Length() && !iPresenceXdm->IsRuleExist( myRuleId ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1322
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1323
        // If default rule does not exist in the variation then do not create it.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1324
        MakeDefaultRuleL( myRuleId, action, transform, misc );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1325
        ruleAdded = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1326
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1327
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1328
    // Block rule
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1329
    // get the rule id, use run-time variation
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1330
    myRuleId = iConnSets.Variation().BlockRuleName();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1331
    // ruleCreate = EFalse;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1332
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1333
    if ( !iPresenceXdm->IsRuleExist( myRuleId ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1334
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1335
        iPresenceXdm->CreateNewRuleL( myRuleId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1336
        ruleAdded = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1337
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1338
        // use run-time variation for rule action
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1339
        CSimplePluginVariation::TSimplePluginAuthRule authRule =
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1340
            iConnSets.Variation().BlockRuleAction();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1341
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1342
        User::LeaveIfError( misc.AddExternListL( myRuleId, listUri->Des() ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1343
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1344
        switch (authRule)
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1345
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1346
            case CSimplePluginVariation::ERulePoliteBlock:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1347
                User::LeaveIfError( action.AddOrReplaceActionL(myRuleId, KPresPoliteBlock ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1348
                break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1349
            default:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1350
                User::LeaveIfError( action.AddOrReplaceActionL(myRuleId, KPresBlock ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1351
            };
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1352
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1353
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1354
    // Grant rule
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1355
    // get the rule id, use run-time variation
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1356
    myRuleId = iConnSets.Variation().GrantRuleName();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1357
    if ( !iPresenceXdm->IsRuleExist( myRuleId ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1358
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1359
        iPresenceXdm->CreateNewRuleL( myRuleId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1360
        ruleAdded = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1361
        CleanupStack::PopAndDestroy( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1362
        listUri = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1363
        listUri = MakeRlsUriL( xcapUri->Des(), iConnSets.Variation().GrantListName() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1364
        CleanupStack::PushL( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1365
        User::LeaveIfError( misc.AddExternListL( myRuleId, listUri->Des() ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1366
        User::LeaveIfError( action.AddOrReplaceActionL( myRuleId, KPresAllow ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1367
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1368
            myRuleId, KPresProvideAllAttributes ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1369
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1370
            myRuleId, KPresProvidePersons ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1371
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1372
            myRuleId, KPresProvideDevices ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1373
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1374
            myRuleId, KPresProvideServices ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1375
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1376
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1377
    // Grant own subscription rule
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1378
    // get the rule id, use run-time variation
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1379
    myRuleId = iConnSets.Variation().GrantOwnRuleName();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1380
    if ( !iPresenceXdm->IsRuleExist( myRuleId ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1381
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1382
        iPresenceXdm->CreateNewRuleL( myRuleId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1383
        ruleAdded = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1384
        User::LeaveIfError( action.AddOrReplaceActionL( myRuleId, KPresAllow ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1385
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1386
            myRuleId, KPresProvideAllAttributes ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1387
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1388
            myRuleId, KPresProvidePersons ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1389
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1390
            myRuleId, KPresProvideDevices ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1391
        User::LeaveIfError( transform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1392
            myRuleId, KPresProvideServices ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1393
        // own sip identity
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1394
        User::LeaveIfError( one.AddIdentityL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1395
            myRuleId, iConnSets.CurrentSipPresentity() ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1396
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1397
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1398
    // Update into server only when needed.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1399
    if ( ruleAdded )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1400
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1401
        UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1402
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1403
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1404
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1405
        iXdmState = EUpdateXdmRules;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1406
        iPresXdmOk = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1407
        // Complete with ok or error the last initial opreration
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1408
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1409
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1410
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1411
    CleanupStack::PopAndDestroy( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1412
    CleanupStack::PopAndDestroy( xcapUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1413
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1414
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1415
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1416
// CSimplePluginXdmUtils::DoGrantForAllL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1417
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1418
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1419
void CSimplePluginXdmUtils::DoGrantForAllL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1420
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1421
    const TInt KMyPresRuleIDLength(30);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1422
    TBuf<KMyPresRuleIDLength> myRuleId;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1423
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1424
    TInt err( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1425
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1426
    TPresenceActionXDM action;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1427
    action.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1428
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1429
    // Default rule id is searched
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1430
    myRuleId = iConnSets.Variation().DefaultRuleName(); // KSimpleXdmDefaultRule;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1431
    TRAP( err, iPresenceXdm->CreateNewRuleL( myRuleId ) );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1432
    if ( err && err != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1433
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1434
        User::Leave( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1435
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1436
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1437
    // modify the rule in the server.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1438
    User::LeaveIfError( action.AddOrReplaceActionL( myRuleId, KPresAllow ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1439
    UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1440
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1441
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1442
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1443
// CSimplePluginXdmUtils::DoWithdrawFromAllL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1444
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1445
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1446
void CSimplePluginXdmUtils::DoWithdrawFromAllL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1447
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1448
    const TInt KMyPresRuleIDLength(30);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1449
    TBuf<KMyPresRuleIDLength> myRuleId;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1450
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1451
    /* pseudo code:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1452
        if current rule is ALLOW then {  BLOCK  }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1453
        otherwise no action.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1454
    */
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1455
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1456
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1457
    PluginLogger::Log(_L("PluginWatcher: DoWithdrawFromAllL TEST COVERS 3"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1458
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1459
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1460
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1461
    TInt err( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1462
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1463
    TPresenceActionXDM action;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1464
    action.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1465
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1466
    // Default rule id is searched
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1467
    myRuleId = iConnSets.Variation().DefaultRuleName();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1468
    TRAP( err, iPresenceXdm->CreateNewRuleL( myRuleId ) );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1469
    if ( err && err != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1470
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1471
        User::Leave( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1472
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1473
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1474
    TBuf<KMyPresRuleIDLength> myActionBuf;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1475
    err = action.GetActionL( myRuleId, myActionBuf);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1476
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1477
    if ( !myActionBuf.CompareF( KPresAllow )  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1478
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1479
        User::LeaveIfError( action.AddOrReplaceActionL( myRuleId, KPresPoliteBlock ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1480
        UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1481
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1482
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1483
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1484
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1485
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1486
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1487
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1488
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1489
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1490
// CSimplePluginXdmUtils::DoSetReactiveAuthL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1491
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1492
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1493
void CSimplePluginXdmUtils::DoSetReactiveAuthL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1494
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1495
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1496
    PluginLogger::Log(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1497
            _L("PluginWatcher: DoSetReactiveAuthL TEST COVERS 5"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1498
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1499
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1500
    // Default rule is modified to CONFIRM
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1501
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1502
    const TInt KMyPresRuleIDLength(30);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1503
    TBuf<KMyPresRuleIDLength> myRuleId;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1504
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1505
    TInt err( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1506
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1507
    TPresenceActionXDM action;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1508
    action.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1509
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1510
    // Default rule id is searched
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1511
    myRuleId = iConnSets.Variation().DefaultRuleName();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1512
    TRAP( err, iPresenceXdm->CreateNewRuleL( myRuleId ) );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1513
    if ( err && err != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1514
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1515
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1516
        PluginLogger::Log( _L("PluginWatcher: TEST COVERS 5b"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1517
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1518
        User::Leave( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1519
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1520
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1521
    // modify the rule in the server.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1522
    User::LeaveIfError( action.AddOrReplaceActionL( myRuleId, KPresConfirm ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1523
    UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1524
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1525
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1526
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1527
// CSimplePluginXdmUtils::DoSetProactiveAuthL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1528
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1529
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1530
void CSimplePluginXdmUtils::DoSetProactiveAuthL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1531
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1532
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1533
    PluginLogger::Log(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1534
            _L("PluginWatcher: DoSetProactiveAuthL TEST COVERS 6"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1535
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1536
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1537
    /* pseudo code:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1538
        if current rule is CONFIRM then {  ALLOW  }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1539
        otherwise no action.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1540
    */
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1541
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1542
    const TInt KMyPresRuleIDLength(30);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1543
    TBuf<KMyPresRuleIDLength> myRuleId;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1544
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1545
    TInt err( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1546
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1547
    TPresenceActionXDM action;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1548
    action.Init( iPresenceXdm );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1549
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1550
    // Default rule id is searched
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1551
    myRuleId = iConnSets.Variation().DefaultRuleName();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1552
    TRAP( err, iPresenceXdm->CreateNewRuleL( myRuleId ) );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1553
    if ( err && err != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1554
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1555
        User::Leave( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1556
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1557
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1558
    // modify the rule in the server.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1559
    TBuf<KMyPresRuleIDLength> myActionBuf;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1560
    err = action.GetActionL( myRuleId, myActionBuf);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1561
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1562
    if ( !myActionBuf.CompareF( KPresConfirm )  )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1563
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1564
        User::LeaveIfError( action.AddOrReplaceActionL( myRuleId, KPresAllow ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1565
        UpdateXdmRulesL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1566
        *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1567
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1568
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1569
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1570
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1571
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1572
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1573
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1574
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1575
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1576
// CSimplePluginXdmUtils::CreateEntityGroupL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1577
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1578
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1579
void CSimplePluginXdmUtils::CreateEntityGroupL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1580
    const TDesC&  aName, const TDesC&  aDisplayName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1581
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1582
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1583
    PluginLogger::Log(_L("PluginXdm: CreateEntityGroupL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1584
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1585
    iOperation = EXdmCreateGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1586
    DoCreateEntityGroupL( aName, aDisplayName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1587
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1588
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1589
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1590
// CSimplePluginXdmUtils::DeleteEntityGroupL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1591
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1592
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1593
void CSimplePluginXdmUtils::DeleteEntityGroupL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1594
    const TDesC&  aName)
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1595
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1596
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1597
    PluginLogger::Log(_L("PluginXdm: DeleteEntityGroupL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1598
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1599
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1600
    iOperation = EXdmDeleteGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1601
    DoDeleteEntityGroupL( aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1602
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1603
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1604
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1605
// CSimplePluginXdmUtils::AddPresentityGroupMemberL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1606
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1607
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1608
void CSimplePluginXdmUtils::AddPresentityGroupMemberL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1609
    const TDesC&  aGroup,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1610
    const TDesC&  aUser,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1611
    const TDesC&  aDispName,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1612
    TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1613
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1614
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1615
    PluginLogger::Log(_L("PluginXdm: AddPresentityGroupMemberL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1616
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1617
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1618
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1619
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1620
    iOperation = EXdmAddUserToGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1621
    DoAddUserToUserListL( aGroup, aUser, aDispName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1622
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1623
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1624
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1625
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1626
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1627
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1628
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1629
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1630
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1631
// CSimplePluginXdmUtils::RemovePresentityGroupMemberL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1632
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1633
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1634
void CSimplePluginXdmUtils::RemovePresentityGroupMemberL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1635
    const TDesC&  aGroup,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1636
    const TDesC&  aUser,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1637
    TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1638
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1639
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1640
    PluginLogger::Log(_L("PluginXdm: RemovePresentityGroupMemberL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1641
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1642
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1643
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1644
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1645
    iOperation = EXdmAddUserToGroup;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1646
    DoRemoveUserFromUserListL( aGroup, aUser );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1647
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1648
    // send to the server and start wait a response
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1649
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1650
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1651
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1652
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1653
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1654
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1655
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1656
// CSimplePluginXdmUtils::GetUserListsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1657
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1658
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1659
void CSimplePluginXdmUtils::GetUserListsL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1660
    CDesCArrayFlat& aIds, CDesCArrayFlat& aDispNames )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1661
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1662
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1663
    PluginLogger::Log(_L("PluginXdm: GetUserListsL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1664
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1665
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1666
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1667
    aIds.Reset();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1668
    aDispNames.Reset();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1669
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1670
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1671
    CXdmDocumentNode* entry = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1672
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1673
    RPointerArray<CXdmDocumentNode> lists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1674
    CleanupClosePushL( lists );         // <<< lists
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1675
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1676
    RPointerArray<CXdmDocumentNode> lists2;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1677
    CleanupClosePushL( lists2 );        // <<< lists2
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1678
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1679
    buddylist->Find( KSimpleList, lists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1680
    TInt count = lists.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1681
    for ( TInt i=0; i < count; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1682
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1683
        // Name
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1684
        entry = lists[i];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1685
        CXdmNodeAttribute* attr = entry->Attribute( KSimpleName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1686
        if ( attr )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1687
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1688
            aIds.AppendL( attr->AttributeValue() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1689
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1690
            TBuf<200> debug_buffer;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1691
            debug_buffer = attr->AttributeValue();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1692
            PluginLogger::Log(_L("PluginXdm: add group id into aIds : %S"), &debug_buffer );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1693
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1694
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1695
        else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1696
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1697
            continue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1698
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1699
        // Display name
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1700
        TInt err = entry->Find( KSimpleDisplayName, lists2 );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1701
        // Notice: assume there is only one display-name.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1702
        // Always when an item is added into aIds we have to add an itmem also into aDispNames.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1703
        if ( !err )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1704
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1705
            CXdmDocumentNode* disName = lists2[0];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1706
            if ( !disName->IsEmptyNode() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1707
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1708
                // Convert Display-Name to Unicode.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1709
                HBufC16* uri16 = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1710
                uri16 = CnvUtfConverter::ConvertToUnicodeFromUtf8L( disName->LeafNodeContent() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1711
                CleanupStack::PushL( uri16 );  // << uri16
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1712
                aDispNames.AppendL( uri16->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1713
                CleanupStack::PopAndDestroy( uri16 );  // >> uri16
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1714
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1715
                else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1716
                    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1717
                    aDispNames.AppendL( KNullDesC );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1718
                    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1719
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1720
            else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1721
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1722
                aDispNames.AppendL( KNullDesC );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1723
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1724
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1725
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1726
    CleanupStack::PopAndDestroy( &lists2 ); // >>> lists2
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1727
    CleanupStack::PopAndDestroy( &lists ); // >>> lists
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1728
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1729
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1730
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1731
// CSimplePluginXdmUtils::GetEntitiesInListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1732
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1733
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1734
void CSimplePluginXdmUtils::GetEntitiesInListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1735
    const TDesC&  aList, CPtrCArray& aIds, CPtrCArray& aDispNames )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1736
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1737
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1738
    PluginLogger::Log(_L("PluginXdm: GetEntitiesInListL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1739
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1740
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1741
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1742
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1743
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1744
    CXdmDocumentNode* target = DoGetUserListL( aList, buddylist );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1745
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1746
    // make a collection of MPresentityGroupMemberInfo
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1747
    RPointerArray<CXdmDocumentNode> entries;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1748
    CleanupClosePushL(entries);       // <<< entries
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1749
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1750
    RPointerArray<CXdmDocumentNode> nodes;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1751
    CleanupClosePushL(nodes);         // <<< nodes
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1752
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1753
    target->Find( KSimpleEntry, entries );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1754
    TInt count = entries.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1755
    for ( TInt i=0; i < count; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1756
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1757
        // ID
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1758
        CXdmDocumentNode* entry = entries[i];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1759
        CXdmNodeAttribute* attr = entry->Attribute( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1760
        if ( attr )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1761
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1762
            aIds.AppendL( attr->AttributeValue() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1763
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1764
            TBuf<200> debug_buffer;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1765
            debug_buffer = attr->AttributeValue();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1766
            PluginLogger::Log(_L("PluginXdm: add member into collection : %S"), &debug_buffer );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1767
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1768
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1769
        else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1770
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1771
            continue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1772
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1773
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1774
        // Display name
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1775
        TInt err = entry->Find( KSimpleDisplayName, nodes );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1776
        // Notice: assume there is only one display-name
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1777
        if ( !err )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1778
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1779
            CXdmDocumentNode* disName = nodes[0];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1780
            HBufC16* uri16 = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1781
            uri16 = CnvUtfConverter::ConvertToUnicodeFromUtf8L( disName->LeafNodeContent() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1782
            CleanupStack::PushL( uri16 );  // << uri16
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1783
            aDispNames.AppendL( uri16->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1784
            CleanupStack::PopAndDestroy( uri16 );  // >> uri16
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1785
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1786
        else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1787
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1788
            aDispNames.AppendL( TPtrC() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1789
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1790
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1791
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1792
    CleanupStack::PopAndDestroy( &nodes ); // >>> nodes
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1793
    CleanupStack::PopAndDestroy( &entries ); // >>> entries
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1794
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1795
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1796
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1797
// CSimplePluginXdmUtils::CommitXdmL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1798
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1799
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1800
void CSimplePluginXdmUtils::CommitXdmL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1801
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1802
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1803
    PluginLogger::Log(_L("PluginXdm: CommitXdmL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1804
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1805
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1806
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1807
    UpdateXdmsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1808
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1809
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1810
    iXdmState = EUpdateXdmOMAList;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1811
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1812
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1813
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1814
// CSimplePluginXdmUtils::CommitRlsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1815
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1816
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1817
void CSimplePluginXdmUtils::CommitRlsL( TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1818
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1819
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1820
    PluginLogger::Log(_L("PluginXdm: CommitRlsL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1821
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1822
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1823
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1824
    UpdateRlsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1825
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1826
    iXdmState = EUpdateRlsServices;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1827
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1828
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1829
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1830
// CSimplePluginXdmUtils::DoCreateEntityGroupL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1831
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1832
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1833
void CSimplePluginXdmUtils::DoCreateEntityGroupL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1834
    const TDesC& aList, const TDesC&  aDisName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1835
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1836
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1837
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1838
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1839
    if ( buddylist->IsEmptyNode() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1840
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1841
        buddylist->SetEmptyNode( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1842
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1843
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1844
    CXdmDocumentNode* foundNode = SearchListUnderParentL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1845
        buddylist, aDisName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1846
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1847
    if ( foundNode )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1848
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1849
        User::Leave( KErrAlreadyExists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1850
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1851
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1852
    CXdmDocumentNode* newNode = buddylist->CreateChileNodeL( KSimpleList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1853
    CXdmNodeAttribute* attributeName = newNode->CreateAttributeL( KSimpleName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1854
    attributeName->SetAttributeValueL( aList );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1855
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1856
    // Display name
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1857
    CXdmDocumentNode* displayName = newNode->CreateChileNodeL( KSimpleDisplayName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1858
    displayName->SetLeafNode( ETrue );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1859
    displayName->SetLeafNodeContentL( aDisName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1860
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1861
    iXdmDoc->AppendL( newNode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1862
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1863
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1864
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1865
// CSimplePluginXdmUtils::DoDeleteEntityGroupL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1866
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1867
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1868
void CSimplePluginXdmUtils::DoDeleteEntityGroupL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1869
    const TDesC& aList )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1870
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1871
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1872
    CXdmDocumentNode* target = DoGetUserListL( aList, buddylist );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1873
    iXdmDoc->DeleteDataL( target );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1874
    // iXdmEngine is asked to be updated to a server by CSimplePlugingGroups later.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1875
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1876
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1877
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1878
// CSimplePluginXdmUtils::DoAddUserToUserListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1879
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1880
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1881
void CSimplePluginXdmUtils::DoAddUserToUserListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1882
    const TDesC& aList, const TDesC&  aUser, const TDesC&  aDisName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1883
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1884
    RPointerArray<CXdmDocumentNode> resultArray;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1885
    RPointerArray<SXdmAttribute16>  attributeArray;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1886
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1887
    CleanupClosePushL( resultArray );           // << resultArray
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1888
    CleanupClosePushL( attributeArray );        // << attributeArray
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1889
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1890
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1891
    CXdmDocumentNode* target = DoGetUserListL( aList, buddylist );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1892
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1893
    if ( target->IsEmptyNode() )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1894
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1895
        target->SetEmptyNode( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1896
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1897
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1898
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1899
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1900
    SXdmAttribute16 attr;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1901
    attr.iName.Set( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1902
    attr.iValue.Set( aUser );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1903
    attributeArray.AppendL( &attr );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1904
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1905
    // If member already exists then leave
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1906
    target->Find( KSimpleEntry, resultArray, attributeArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1907
    if ( resultArray.Count() > 0 )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1908
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1909
        User::Leave( KErrAlreadyExists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1910
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1911
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1912
    CXdmDocumentNode* newNode = target->CreateChileNodeL( KSimpleEntry );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1913
    CXdmNodeAttribute* attributeName = newNode->CreateAttributeL( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1914
    attributeName->SetAttributeValueL( aUser );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1915
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1916
    // Display name
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1917
    CXdmDocumentNode* displayName = newNode->CreateChileNodeL( KSimpleDisplayName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1918
    displayName->SetLeafNode( ETrue );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1919
    displayName->SetLeafNodeContentL( aDisName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1920
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1921
    iXdmDoc->AppendL( newNode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1922
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1923
    CleanupStack::PopAndDestroy( &attributeArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1924
    CleanupStack::PopAndDestroy( &resultArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1925
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1926
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1927
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1928
// CSimplePluginXdmUtils::DoRemoveUserFromUserListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1929
// ----------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1930
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1931
void CSimplePluginXdmUtils::DoRemoveUserFromUserListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1932
    const TDesC& aList, const TDesC&  aUri )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1933
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1934
    CXdmNodeAttribute* attr = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1935
    TBool myFound( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1936
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1937
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1938
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1939
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1940
    CXdmDocumentNode* target = DoGetUserListL( aList, buddylist );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1941
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1942
    RPointerArray<CXdmDocumentNode> entries;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1943
    CleanupClosePushL( entries );           // <<< entries
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1944
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1945
    User::LeaveIfError( target->Find( KSimpleEntry, entries ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1946
    TInt nodeCount = entries.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1947
    for ( TInt i = 0; i < nodeCount; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1948
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1949
        CXdmDocumentNode* currNode = entries[i];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1950
        attr = currNode->Attribute( KSimpleUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1951
        if ( attr && !attr->AttributeValue().CompareF( aUri ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1952
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1953
            // This is the user we are looking for deletion.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1954
            iXdmDoc->DeleteDataL( currNode );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1955
            myFound = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1956
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1957
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1958
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1959
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1960
    CleanupStack::PopAndDestroy( &entries ); // >>> entries
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1961
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1962
    if ( !myFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1963
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1964
        // If the member is not found then leave
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1965
        User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1966
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1967
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1968
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1969
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1970
// CSimplePluginXdmUtils::DoGetBuddyListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1971
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1972
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1973
CXdmDocumentNode* CSimplePluginXdmUtils::DoGetBuddyListL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1974
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1975
    CXdmDocumentNode* root = iXdmDoc->DocumentRoot();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1976
    CXdmDocumentNode* ret = SearchListUnderParentL( root, iConnSets.Variation().SharedXdmTop() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1977
    if ( !ret )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1978
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1979
        User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1980
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1981
    return ret;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1982
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1983
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1984
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1985
// CSimplePluginXdmUtils::DoGetUserListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1986
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1987
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1988
CXdmDocumentNode* CSimplePluginXdmUtils::DoGetUserListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1989
    const TDesC& aList, CXdmDocumentNode* aBuddyList )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1990
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1991
    CXdmDocumentNode* listNode = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1992
    CXdmNodeAttribute* attr = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1993
    TBool found( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1994
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1995
    using namespace NSimplePlugin::NSimpleOma;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1996
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1997
    RPointerArray<CXdmDocumentNode> lists;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1998
    CleanupClosePushL( lists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  1999
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2000
    User::LeaveIfError( aBuddyList->Find( KSimpleList, lists ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2001
    TInt count = lists.Count();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2002
    for ( TInt i=0; i < count; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2003
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2004
        listNode = lists[i];
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2005
        attr = listNode->Attribute( KSimpleName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2006
        if ( attr && !attr->AttributeValue().CompareF( aList ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2007
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2008
            // List is found
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2009
            found = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2010
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2011
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2012
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2013
    if ( !found )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2014
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2015
        User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2016
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2017
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2018
    CleanupStack::PopAndDestroy( &lists );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2019
    return listNode;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2020
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2021
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2022
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2023
// CSimplePluginXdmUtils::UpdateXdmRulesL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2024
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2025
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2026
void CSimplePluginXdmUtils::UpdateXdmRulesL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2027
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2028
    _LIT( KMyOper, "UpdateXdmRulesL");
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2029
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2030
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2031
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2032
        iTestObs->TestCallbackAsynchL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2033
            KErrNone, iXdmState, iOperation, KMyOper );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2034
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2035
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2036
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2037
    PluginLogger::Log(_L("PluginXdm: UpdateXdmRulesL -> iPresenceXdm->UpdateToServerL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2038
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2039
    User::LeaveIfError( iPresenceXdm->UpdateToServerL( this ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2040
    iXdmState = EUpdateXdmRules;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2041
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2042
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2043
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2044
// CSimplePluginXdmUtils::UpdateXdmsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2045
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2046
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2047
void CSimplePluginXdmUtils::UpdateXdmsL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2048
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2049
    _LIT( KMyOper, "UpdateXdmsL");
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2050
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2051
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2052
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2053
        iTestObs->TestCallbackAsynchL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2054
            KErrNone, iXdmState, iOperation, KMyOper );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2055
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2056
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2057
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2058
    PluginLogger::Log(_L("PluginXdm: UpdateXdmsL -> iXdmEngine->UpdateToServerL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2059
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2060
    iXdmEngine->UpdateL( iXdmDoc, iStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2061
    SetActive();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2062
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2063
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2064
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2065
// CSimplePluginXdmUtils::UpdateRlsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2066
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2067
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2068
void CSimplePluginXdmUtils::UpdateRlsL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2069
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2070
    _LIT( KMyOper, "UpdateRlsL");
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2071
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2072
    if ( iTestObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2073
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2074
        // Test suite
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2075
        iTestObs->TestCallbackAsynchL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2076
            KErrNone, iXdmState, iOperation, KMyOper );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2077
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2078
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2079
    PluginLogger::Log(_L("PluginXdm: -> iRlsXdm->UpdateToServerL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2080
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2081
    User::LeaveIfError( iRlsXdm->UpdateToServerL( this ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2082
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2083
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2084
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2085
// CSimplePluginXdmUtils::SetTestObserver
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2086
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2087
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2088
void CSimplePluginXdmUtils::SetTestObserver( MSimplePluginTestObs* aObs )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2089
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2090
    iTestObs = aObs;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2091
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2092
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2093
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2094
// CSimplePluginXdmUtils::CreateRlsDocumentUri16LC
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2095
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2096
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2097
HBufC16* CSimplePluginXdmUtils::CreateRlsDocumentUri16LC(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2098
    const TDesC16& aGroup,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2099
    const TDesC16& aPresentityUri,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2100
    const TDesC16& aDomain )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2101
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2102
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2103
    TPtrC uriTemplate( iConnSets.Variation().RlsGroupUriTemplate() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2104
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2105
    // Calculate URI length
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2106
    TInt uriSize = uriTemplate.Length() + KMyLenPrefix;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2107
    if ( uriTemplate.Find( KSimpleGroupTag ) != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2108
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2109
        TPtrC p8( KSimpleGroupTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2110
        uriSize = uriSize - p8.Length() + aGroup.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2111
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2112
    if ( uriTemplate.Find( KSimpleUserTag ) != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2113
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2114
        TPtrC p8( KSimpleUserTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2115
        uriSize = uriSize - p8.Length() + aPresentityUri.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2116
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2117
    if ( uriTemplate.Find( KSimpleDomainTag ) != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2118
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2119
        TPtrC p8( KSimpleDomainTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2120
        uriSize = uriSize - p8.Length() + aDomain.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2121
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2122
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2123
    // allocate new buffer for URI
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2124
    // Temporarily the buffer might need more space then the final URI length
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2125
    // (when tags are longer than the real values replacing them).
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2126
    if ( uriSize < uriTemplate.Length() + KMyLenPrefix )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2127
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2128
        uriSize = uriTemplate.Length() + KMyLenPrefix +
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2129
                  aGroup.Length() + aPresentityUri.Length() + aDomain.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2130
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2131
    HBufC16* buf = HBufC16::NewLC( uriSize );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2132
    TPtr16 pBuf(buf->Des());
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2133
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2134
    // Append "sip:" prefix
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2135
    pBuf.Append( KMySip );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2136
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2137
    // Append template
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2138
    pBuf.Append( uriTemplate );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2139
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2140
    // Replace tags in URI template with the real values.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2141
    ReplaceGroupTag( buf, aGroup );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2142
    ReplaceDomainTag( buf, aDomain );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2143
    ReplaceUserTag( buf, aPresentityUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2144
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2145
    return buf;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2146
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2147
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2148
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2149
// CSimplePluginXdmUtils::DoesUserListExistsL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2150
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2151
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2152
TBool CSimplePluginXdmUtils::DoesUserListExistsL( const TDesC& aName )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2153
  {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2154
    CXdmDocumentNode* buddylist = DoGetBuddyListL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2155
    CXdmDocumentNode* foundNode = SearchListUnderParentL( buddylist, aName );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2156
    return foundNode ? ETrue : EFalse;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2157
  }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2158
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2159
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2160
// CSimplePluginXdmUtils::AuxBuffer
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2161
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2162
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2163
TPtrC CSimplePluginXdmUtils::AuxBuffer( )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2164
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2165
    return iAuxBuffer ? iAuxBuffer->Des() : TPtrC();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2166
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2167
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2168
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2169
// CSimplePluginXdmUtils::RemoveRlsServiceByResourceListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2170
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2171
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2172
void CSimplePluginXdmUtils::RemoveRlsServiceByResourceListL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2173
    const TDesC& aGroup, TRequestStatus& aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2174
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2175
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2176
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2177
    PluginLogger::Log(_L("PluginXdm: RemoveRlsServiceByResourceListL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2178
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2179
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2180
    TBool ret( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2181
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2182
    iOperation = EXdmRlsRemove;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2183
    iClientStatus = &aStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2184
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2185
    // convert a Group into resource-list value
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2186
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2187
    CleanupStack::PushL( xcapUri );             // << xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2188
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2189
    HBufC* listUri = MakeRlsBuddyUriL( xcapUri->Des(), aGroup );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2190
    CleanupStack::PushL( listUri );             // << listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2191
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2192
    // remove service-uri in the rls-services document
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2193
    ret = DoRemoveRlsServiceByResourceListL( listUri->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2194
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2195
    CleanupStack::PopAndDestroy( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2196
    CleanupStack::PopAndDestroy( xcapUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2197
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2198
    *iClientStatus = KRequestPending;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2199
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2200
    if ( ret )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2201
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2202
        // Update RLS document when needed.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2203
        UpdateRlsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2204
        iXdmState = EUpdateRlsServices;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2205
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2206
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2207
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2208
        CompleteClientReq( KErrNone );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2209
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2210
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2211
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2212
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2213
// CSimplePluginXdmUtils::DoRemoveRlsServiceByResourceListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2214
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2215
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2216
TBool CSimplePluginXdmUtils::DoRemoveRlsServiceByResourceListL( const TDesC& aResourceList )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2217
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2218
    TBool ret( EFalse );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2219
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2220
    CDesC16Array* myArray = new (ELeave) CDesC16ArraySeg(10);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2221
    CleanupStack::PushL( myArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2222
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2223
    CDesC16Array* myValues = new (ELeave) CDesC16ArraySeg(10);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2224
    CleanupStack::PushL( myValues );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2225
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2226
    iRlsXdm->GetServiceUrisL( *myArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2227
    TInt myCount = myArray->MdcaCount();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2228
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2229
    for ( TInt i=0; i < myCount && !ret; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2230
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2231
        iRlsXdm->SwitchToServiceURIL( myArray->MdcaPoint( i ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2232
        iRlsXdm->GetElementsL( KPresResourceList, *myValues);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2233
        TInt myValuesCount = myValues->MdcaCount();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2234
        for ( TInt j=0; j < myValuesCount; j++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2235
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2236
            if ( !myValues->MdcaPoint( i ).Compare( aResourceList ) )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2237
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2238
                // delete service with the URI
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2239
                iRlsXdm->RemoveServiceURIL( myArray->MdcaPoint( i ) );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2240
                ret = ETrue;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2241
                break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2242
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2243
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2244
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2245
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2246
    CleanupStack::PopAndDestroy( myValues );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2247
    CleanupStack::PopAndDestroy( myArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2248
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2249
    return ret;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2250
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2251
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2252
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2253
// CSimplePluginXdmUtils::RlsServiceByResourceListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2254
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2255
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2256
HBufC* CSimplePluginXdmUtils::RlsServiceByResourceListLC(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2257
    const TDesC& aGroup )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2258
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2259
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2260
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2261
    PluginLogger::Log(_L("PluginXdm: :RlsServiceByResourceListLC"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2262
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2263
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2264
    HBufC* myRet = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2265
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2266
    // convert a Group into resource-list value
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2267
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2268
    CleanupStack::PushL( xcapUri );             // << xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2269
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2270
    HBufC* listUri = MakeRlsBuddyUriL( xcapUri->Des(), aGroup );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2271
    CleanupStack::PushL( listUri );             // << listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2272
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2273
    // remove service-uri in the rls-services document
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2274
    myRet = DoGetRlsServiceByResourceListL( listUri->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2275
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2276
    CleanupStack::PopAndDestroy( listUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2277
    CleanupStack::PopAndDestroy( xcapUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2278
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2279
    CleanupStack::PushL( myRet );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2280
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2281
    return myRet;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2282
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2283
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2284
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2285
// CSimplePluginXdmUtils::DoGetRlsServiceByResourceListL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2286
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2287
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2288
HBufC* CSimplePluginXdmUtils::DoGetRlsServiceByResourceListL( const TDesC& aResourceList )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2289
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2290
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2291
    HBufC* ret = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2292
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2293
    CDesC16Array* myArray = new (ELeave) CDesC16ArraySeg(10);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2294
    CleanupStack::PushL( myArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2295
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2296
    CDesC16Array* myValues = new (ELeave) CDesC16ArraySeg(10);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2297
    CleanupStack::PushL( myValues );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2298
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2299
    iRlsXdm->GetServiceUrisL( *myArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2300
    TInt myCount = myArray->MdcaCount();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2301
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2302
    for ( TInt i=0; i < myCount && !ret; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2303
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2304
        iRlsXdm->SwitchToServiceURIL( myArray->MdcaPoint( i ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2305
        iRlsXdm->GetElementsL( KPresResourceList, *myValues);
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2306
        TInt myValuesCount = myValues->MdcaCount();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2307
        for ( TInt j=0; j < myValuesCount; j++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2308
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2309
            if ( !myValues->MdcaPoint( i ).Compare( aResourceList ) )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2310
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2311
                // save the URI
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2312
                ret = myArray->MdcaPoint( i ).AllocL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2313
                break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2314
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2315
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2316
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2317
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2318
    CleanupStack::PopAndDestroy( myValues );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2319
    CleanupStack::PopAndDestroy( myArray );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2320
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2321
    if ( !ret )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2322
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2323
        User::Leave( KErrNotFound );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2324
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2325
    return ret;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2326
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2327
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2328
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2329
// CSimplePluginXdmUtils::RlsServiceUriNegotiationL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2330
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2331
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2332
void CSimplePluginXdmUtils::RlsServiceUriNegotiationL()
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2333
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2334
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2335
    PluginLogger::Log(_L("PluginXdm: :RlsServiceUriNegotiationL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2336
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2337
    // Handle RLS Service URI negotiation
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2338
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2339
    HBufC16* buf = CreateRlsDocumentUri16LC(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2340
        AuxBuffer(), iConnSets.CurrentSipPresentity(), iConnSets.CurrentDomain() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2341
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2342
    TRAP_IGNORE( iRlsXdm->RemoveServiceURIL( buf->Des() ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2343
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2344
    TInt errx = iRlsXdm->AddServiceURIL( iRlsXdm->NegotiatedServiceUri() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2345
    if ( errx && errx != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2346
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2347
        User::Leave( errx );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2348
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2349
    User::LeaveIfError( iRlsXdm->SwitchToServiceURIL( iRlsXdm->NegotiatedServiceUri() ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2350
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2351
    HBufC* xcapUri = TXdmSettingsApi::PropertyL( iSettingsId, EXdmPropUri );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2352
        CleanupStack::PushL( xcapUri );             // << xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2353
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2354
    HBufC* listUri = MakeRlsBuddyUriL( xcapUri->Des(), AuxBuffer() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2355
    CleanupStack::PushL( listUri );             // << listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2356
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2357
    TInt err = iRlsXdm->AddElementL( KPresResourceList, listUri->Des(), AuxBuffer() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2358
    if ( err && err != KErrAlreadyExists )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2359
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2360
        User::Leave( err );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2361
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2362
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2363
    CleanupStack::PopAndDestroy( listUri );     // >> listUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2364
    CleanupStack::PopAndDestroy( xcapUri );     // >> xcapUri
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2365
    CleanupStack::PopAndDestroy( buf );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2366
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2367
    delete iAuxBuffer;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2368
    iAuxBuffer = NULL;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2369
    iAuxBuffer = iRlsXdm->NegotiatedServiceUri().AllocL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2370
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2371
    UpdateRlsL();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2372
    iXdmState = EReUpdateRlsServices;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2373
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2374
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2375
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2376
// CSimplePluginXdmUtils::MakeDefaultRuleL
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2377
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2378
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2379
void CSimplePluginXdmUtils::MakeDefaultRuleL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2380
    TDes& aRuleId,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2381
    TPresenceActionXDM& aAction,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2382
    TPresenceTransformXDM& aTransform,
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2383
    TPresCondMisc& aMisc )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2384
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2385
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2386
#ifdef _DEBUG
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2387
    PluginLogger::Log(_L("PluginXdm: :MakeDefaultRuleL"));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2388
#endif
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2389
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2390
    iPresenceXdm->CreateNewRuleL( aRuleId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2391
    User::LeaveIfError( aMisc.AddOtherIdentityL(aRuleId) );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2392
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2393
    // use run-time variation for rule action
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2394
    CSimplePluginVariation::TSimplePluginAuthRule authRule =
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2395
        iConnSets.Variation().DefaultRuleAction();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2396
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2397
    switch (authRule)
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2398
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2399
        case CSimplePluginVariation::ERuleConfirm:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2400
            User::LeaveIfError( aAction.AddOrReplaceActionL(aRuleId, KPresConfirm ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2401
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2402
        case CSimplePluginVariation::ERulePoliteBlock:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2403
            User::LeaveIfError( aAction.AddOrReplaceActionL(aRuleId, KPresPoliteBlock ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2404
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2405
        case CSimplePluginVariation::ERuleBlock:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2406
            User::LeaveIfError( aAction.AddOrReplaceActionL(aRuleId, KPresBlock ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2407
            break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2408
        default:
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2409
            User::LeaveIfError( aAction.AddOrReplaceActionL(aRuleId, KPresAllow ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2410
        };
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2411
    User::LeaveIfError( aTransform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2412
        aRuleId, KPresProvideAllAttributes ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2413
    User::LeaveIfError( aTransform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2414
        aRuleId, KPresProvidePersons ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2415
    User::LeaveIfError( aTransform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2416
        aRuleId, KPresProvideDevices ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2417
    User::LeaveIfError( aTransform.AddOrRepProvideAllTransComplexL(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2418
        aRuleId, KPresProvideServices ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2419
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2420
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2421
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2422
// CSimplePluginXdmUtils::ReplaceGroupTag
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2423
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2424
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2425
void CSimplePluginXdmUtils::ReplaceGroupTag( HBufC16* aBuf, const TDesC16& aGroup )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2426
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2427
    // Replace group if found
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2428
    TPtr pBuf( aBuf->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2429
    TInt pos = pBuf.Find( KSimpleGroupTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2430
    if ( pos != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2431
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2432
        TPtrC p8( KSimpleGroupTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2433
        pBuf.Replace( pos, p8.Length(), aGroup );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2434
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2435
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2436
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2437
        // No tag
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2438
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2439
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2440
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2441
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2442
// CSimplePluginXdmUtils::ReplaceDomainTag
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2443
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2444
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2445
void CSimplePluginXdmUtils::ReplaceDomainTag( HBufC16* aBuf, const TDesC16& aDomain )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2446
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2447
    // Replace domain if found
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2448
    TPtr pBuf( aBuf->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2449
    TInt pos = pBuf.Find( KSimpleDomainTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2450
    if ( pos != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2451
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2452
        // remove leading "@"
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2453
        TPtrC p8( KSimpleDomainTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2454
        if ( aDomain[0] == '@')
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2455
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2456
            pBuf.Replace( pos, p8.Length(), aDomain.Mid( 1 ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2457
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2458
        else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2459
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2460
            pBuf.Replace( pos, p8.Length(), aDomain );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2461
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2462
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2463
    else
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2464
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2465
        // No tag
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2466
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2467
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2468
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2469
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2470
// CSimplePluginXdmUtils::ReplaceUserTag
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2471
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2472
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2473
void CSimplePluginXdmUtils::ReplaceUserTag(
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2474
    HBufC16* aBuf, const TDesC16& aPresentityUri )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2475
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2476
    TPtr pBuf( aBuf->Des() );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2477
    TInt presentityUriLen = aPresentityUri.Length();
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2478
    // Replace user if found
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2479
    TInt pos = pBuf.Find( KSimpleUserTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2480
    if ( pos != KErrNotFound )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2481
        {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2482
        TPtrC p8( KSimpleUserTag );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2483
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2484
        // Remove leading "sip:" or "tel:" prefix and strip off domain part from aPresentityUri.
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2485
        TInt domainPos = presentityUriLen;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2486
        TInt userIdPos = 0;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2487
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2488
        if ( !aPresentityUri.Left( KMyLenPrefix ).CompareF( KMySip ) ||
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2489
             !aPresentityUri.Left( KMyLenPrefix ).CompareF( KMyTel ))
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2490
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2491
            userIdPos = KMyLenPrefix;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2492
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2493
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2494
        for ( TInt i = userIdPos; i < presentityUriLen; i++ )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2495
            {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2496
            if ( aPresentityUri[i] == '@' )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2497
                {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2498
                domainPos = i;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2499
                break;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2500
                }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2501
            }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2502
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2503
        TPtrC userId( aPresentityUri.Mid( userIdPos, domainPos - userIdPos ));
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2504
        pBuf.Replace( pos, p8.Length(), userId );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2505
        }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2506
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2507
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2508
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2509
// CSimplePluginXdmUtils::CompleteClientReq
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2510
// ---------------------------------------------------------------------------
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2511
//
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2512
void CSimplePluginXdmUtils::CompleteClientReq( TInt aStatus )
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2513
    {
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2514
    iXdmState = EStateIdle;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2515
    iOperation = ENoOperation;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2516
    TRequestStatus* s = iClientStatus;
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2517
    User::RequestComplete( s, aStatus );
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2518
    }
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2519
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2520
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2521
// End of file
fbd2e7cec7ef Revert incorrect RCL_3 drop:
Pat Downey <patd@symbian.org>
parents:
diff changeset
  2522