locationtriggering/ltserver/ltserverlogic/src/lbtglobal.cpp
author hgs
Wed, 03 Nov 2010 23:28:39 +0530
changeset 56 4e949f03ecc5
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2007 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:  Global services for LBT server logic
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// INCLUDE FILES
hgs
parents:
diff changeset
    20
#include <lbterrors.h>
hgs
parents:
diff changeset
    21
#include "lbtglobal.h"
hgs
parents:
diff changeset
    22
#include "lbtlogger.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// ================= LOCAL FUNCTIONS =======================
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
TInt DataSizeL(
hgs
parents:
diff changeset
    27
    const RMessage2& aMessage, 
hgs
parents:
diff changeset
    28
    const TInt aClientBufferParam)
hgs
parents:
diff changeset
    29
    {
hgs
parents:
diff changeset
    30
    FUNC_ENTER("LbtGlobal::DataSizeL");
hgs
parents:
diff changeset
    31
    TInt dataSize = aMessage.GetDesLength(aClientBufferParam);
hgs
parents:
diff changeset
    32
    if (dataSize < 0)
hgs
parents:
diff changeset
    33
        {
hgs
parents:
diff changeset
    34
        User::Leave(KErrBadDescriptor);
hgs
parents:
diff changeset
    35
        }
hgs
parents:
diff changeset
    36
    return dataSize;
hgs
parents:
diff changeset
    37
    }
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// ================= MEMBER FUNCTIONS =======================
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ---------------------------------------------------------
hgs
parents:
diff changeset
    43
// LbtGlobal::Write
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------
hgs
parents:
diff changeset
    45
//
hgs
parents:
diff changeset
    46
TInt LbtGlobal::Write(const RMessage2& aMessage,
hgs
parents:
diff changeset
    47
               	      const TInt aParam,
hgs
parents:
diff changeset
    48
               	      const TDesC8& aDes,
hgs
parents:
diff changeset
    49
               	      TInt aOffset)
hgs
parents:
diff changeset
    50
	{
hgs
parents:
diff changeset
    51
	FUNC_ENTER("LbtGlobal::Write");
hgs
parents:
diff changeset
    52
	TInt ret = aMessage.Write(aParam, aDes, aOffset);
hgs
parents:
diff changeset
    53
	if (ret != KErrNone)
hgs
parents:
diff changeset
    54
        {
hgs
parents:
diff changeset
    55
        aMessage.Panic(KLbtClientPanicCategory, KErrBadDescriptor);
hgs
parents:
diff changeset
    56
        }
hgs
parents:
diff changeset
    57
    return ret;
hgs
parents:
diff changeset
    58
	}
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
// ---------------------------------------------------------
hgs
parents:
diff changeset
    61
// LbtGlobal::Read
hgs
parents:
diff changeset
    62
// ---------------------------------------------------------
hgs
parents:
diff changeset
    63
//
hgs
parents:
diff changeset
    64
TInt LbtGlobal::Read(const RMessage2& aMessage,
hgs
parents:
diff changeset
    65
	                 const TInt aParam,
hgs
parents:
diff changeset
    66
	                 TDes8& aDes,
hgs
parents:
diff changeset
    67
	                 TInt aOffset)
hgs
parents:
diff changeset
    68
    {
hgs
parents:
diff changeset
    69
    FUNC_ENTER("LbtGlobal::Read");
hgs
parents:
diff changeset
    70
	TInt ret = aMessage.Read(aParam, aDes, aOffset);
hgs
parents:
diff changeset
    71
    if (ret != KErrNone)
hgs
parents:
diff changeset
    72
        {
hgs
parents:
diff changeset
    73
        aMessage.Panic(KLbtClientPanicCategory, KErrBadDescriptor);
hgs
parents:
diff changeset
    74
        }
hgs
parents:
diff changeset
    75
    return ret;
hgs
parents:
diff changeset
    76
    }
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
// ---------------------------------------------------------
hgs
parents:
diff changeset
    79
// LbtGlobal::RequestComplete
hgs
parents:
diff changeset
    80
// ---------------------------------------------------------
hgs
parents:
diff changeset
    81
//
hgs
parents:
diff changeset
    82
void LbtGlobal::RequestComplete(const RMessage2& aMessage, TInt aError)
hgs
parents:
diff changeset
    83
	{
hgs
parents:
diff changeset
    84
	FUNC_ENTER("LbtGlobal::RequestComplete");	
hgs
parents:
diff changeset
    85
	if(!aMessage.IsNull())	
hgs
parents:
diff changeset
    86
		{
hgs
parents:
diff changeset
    87
		// Complete the IPC message only if it is a valid message.
hgs
parents:
diff changeset
    88
		aMessage.Complete(aError);
hgs
parents:
diff changeset
    89
		}
hgs
parents:
diff changeset
    90
	}
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
// ---------------------------------------------------------
hgs
parents:
diff changeset
    93
// LbtGlobal::CopyClientBuffer8LC
hgs
parents:
diff changeset
    94
// ---------------------------------------------------------
hgs
parents:
diff changeset
    95
//
hgs
parents:
diff changeset
    96
HBufC8* LbtGlobal::CopyClientBuffer8LC( const RMessage2& aMessage, 
hgs
parents:
diff changeset
    97
									    const TInt aClientBufferParam)
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
    FUNC_ENTER("LbtGlobal::CopyClientBuffer8LC");
hgs
parents:
diff changeset
   100
    
hgs
parents:
diff changeset
   101
    if( aMessage.IsNull() )	
hgs
parents:
diff changeset
   102
		{
hgs
parents:
diff changeset
   103
		return NULL;
hgs
parents:
diff changeset
   104
		}
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    // Create an empty server side buffer that will contain client data
hgs
parents:
diff changeset
   107
    TInt dataSize = DataSizeL(aMessage, aClientBufferParam);
hgs
parents:
diff changeset
   108
    HBufC8* buffer = HBufC8::NewLC(dataSize);
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    // Populate server side buffer with client data
hgs
parents:
diff changeset
   111
    TPtr8 ptrToBuf = buffer->Des();
hgs
parents:
diff changeset
   112
    TInt retVal = LbtGlobal::Read(aMessage, aClientBufferParam, ptrToBuf);
hgs
parents:
diff changeset
   113
    if(retVal != KErrNone)
hgs
parents:
diff changeset
   114
    	{
hgs
parents:
diff changeset
   115
    	User::Leave(KErrBadDescriptor);
hgs
parents:
diff changeset
   116
    	}
hgs
parents:
diff changeset
   117
    return buffer;
hgs
parents:
diff changeset
   118
    }
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
// end of file