ximpfw/presence/srcpresenceoperations/presentitygroups/operationremovepresentitygroupmember.cpp
author hgs
Wed, 03 Nov 2010 09:32:20 +0530
changeset 51 61fad867f68e
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Remove Presentity Group Member operation
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <s32mem.h>
hgs
parents:
diff changeset
    19
#include <ximpprotocolconnection.h>
hgs
parents:
diff changeset
    20
#include <protocolpresentitygroups.h>
hgs
parents:
diff changeset
    21
#include <protocolpresencefeatures.h>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "operationremovepresentitygroupmember.h"
hgs
parents:
diff changeset
    24
#include "ximpidentityimp.h"
hgs
parents:
diff changeset
    25
#include "protocolpresentitygroupsdatahostimp.h"
hgs
parents:
diff changeset
    26
#include "ximphost.h"
hgs
parents:
diff changeset
    27
#include "ximpstatusimp.h"
hgs
parents:
diff changeset
    28
#include "protocolpresencedatahostimp.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include "ximptrace.h"
hgs
parents:
diff changeset
    31
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    34
// COperationRemovePresentityGroupMember::COperationRemovePresentityGroupMember()
hgs
parents:
diff changeset
    35
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    36
//
hgs
parents:
diff changeset
    37
EXPORT_C COperationRemovePresentityGroupMember::COperationRemovePresentityGroupMember()
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    }
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// COperationRemovePresentityGroupMember::ConstructL
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
//
hgs
parents:
diff changeset
    46
void COperationRemovePresentityGroupMember::ConstructL( const TDesC8& aParamPck )
hgs
parents:
diff changeset
    47
    {
hgs
parents:
diff changeset
    48
    RDesReadStream rs;
hgs
parents:
diff changeset
    49
    rs.Open( aParamPck ); // CSI: 65 # Does not return a value.
hgs
parents:
diff changeset
    50
    CleanupClosePushL( rs );
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
    // group id
hgs
parents:
diff changeset
    53
    iGroupId = CXIMPIdentityImp::NewLC();
hgs
parents:
diff changeset
    54
    CleanupStack::Pop( iGroupId );
hgs
parents:
diff changeset
    55
    iGroupId->InternalizeL( rs );
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    // member id
hgs
parents:
diff changeset
    58
    iMemberId = CXIMPIdentityImp::NewLC();
hgs
parents:
diff changeset
    59
    CleanupStack::Pop( iMemberId );
hgs
parents:
diff changeset
    60
    iMemberId->InternalizeL( rs );
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
    CleanupStack::PopAndDestroy( 1 ); // rs
hgs
parents:
diff changeset
    64
    }
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
// COperationRemovePresentityGroupMember::~COperationRemovePresentityGroupMember()
hgs
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
//
hgs
parents:
diff changeset
    70
COperationRemovePresentityGroupMember::~COperationRemovePresentityGroupMember()
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
    delete iGroupId;
hgs
parents:
diff changeset
    73
    delete iMemberId;
hgs
parents:
diff changeset
    74
    }
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    77
// COperationRemovePresentityGroupMember::ProcessL()
hgs
parents:
diff changeset
    78
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    79
//
hgs
parents:
diff changeset
    80
void COperationRemovePresentityGroupMember::ProcessL()
hgs
parents:
diff changeset
    81
    {
hgs
parents:
diff changeset
    82
    TRACE(_L("COperationRemovePresentityGroupMember::ProcessL()" ) );
hgs
parents:
diff changeset
    83
    CXIMPOperationBase::ProcessL();
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    MProtocolPresentityGroups& presentityGroups = iMyHost->GetConnection().ProtocolPresenceFeatures().PresentityGroups();
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
    presentityGroups.DoRemovePresentityGroupMemberL( *iGroupId,
hgs
parents:
diff changeset
    88
                                               *iMemberId,
hgs
parents:
diff changeset
    89
                                               iReqId );
hgs
parents:
diff changeset
    90
    }
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    93
// COperationRemovePresentityGroupMember::RequestCompleted()
hgs
parents:
diff changeset
    94
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    95
//
hgs
parents:
diff changeset
    96
void COperationRemovePresentityGroupMember::RequestCompletedL()
hgs
parents:
diff changeset
    97
    {
hgs
parents:
diff changeset
    98
    TRACE(_L("COperationRemovePresentityGroupMember::RequestCompletedL()" ) );
hgs
parents:
diff changeset
    99
    CXIMPOperationBase::RequestCompletedL();
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    if ( iStatusObj->ResultCode() == KErrNone )
hgs
parents:
diff changeset
   102
        {
hgs
parents:
diff changeset
   103
        iMyHost->PresenceDataAccess().GroupsDataAccess().HandlePresentityGroupMemberRemovedL( iGroupId, iMemberId );
hgs
parents:
diff changeset
   104
        iGroupId = NULL;
hgs
parents:
diff changeset
   105
        iMemberId = NULL;
hgs
parents:
diff changeset
   106
        }
hgs
parents:
diff changeset
   107
    }
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   110
// COperationRemovePresentityGroupMember::Type()
hgs
parents:
diff changeset
   111
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   112
//
hgs
parents:
diff changeset
   113
TInt COperationRemovePresentityGroupMember::Type() const
hgs
parents:
diff changeset
   114
    {
hgs
parents:
diff changeset
   115
    return NPresenceOps::EPrRemovePresentityGroupMember;
hgs
parents:
diff changeset
   116
    }
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
// End of file