sdkcreationmw/sdkruntimes/msgsimulation/MsgSession/Src/MsgSessionDll.cpp
author rajpuroh
Wed, 21 Apr 2010 09:56:53 +0530
changeset 1 ac50fd48361b
parent 0 b26acd06ea60
permissions -rw-r--r--
Second Contribution
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     1
/*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     2
* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     3
* All rights reserved.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     8
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     9
* Initial Contributors:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    11
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    12
* Contributors:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    13
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    14
* Description: 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    15
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    16
*/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    17
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    18
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    19
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    20
//  Include Files  
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    21
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    22
#include <e32std.h>         // GLDEF_C
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    23
#include <e32base.h>
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    24
#include "MsgSession.h"
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
    25
#include "..\..\..\..\sdkcommonutils\util\Inc\sysini.h"
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    26
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    27
#define KInitialMessageBufferSize		1024
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    28
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    29
TVersion MessageRelayVersion = TVersion(1, 0, 0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    30
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    31
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    32
/****************************************************************************
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    33
*   CMessageNotifier
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    34
*****************************************************************************
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    35
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    36
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    37
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    38
****************************************************************************/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    39
class CMessageNotifier : public CActive
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    40
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    41
	CMessageSession *iOwner;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    42
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    43
	void ConstructL(CMessageSession *aOwner);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    44
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    45
	CMessageNotifier();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    46
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    47
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    48
public:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    49
	static CMessageNotifier *NewL(CMessageSession *aOwner);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    50
	static CMessageNotifier *NewLC(CMessageSession *aOwner);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    51
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    52
	void RunL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    53
	void DoCancel();	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    54
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    55
	void StartReceiveL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    56
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    57
	TRequestStatus *GetStatusPtr() { return &iStatus;}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    58
};
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    59
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    60
CMessageNotifier::CMessageNotifier() :
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    61
CActive(EPriorityNormal)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    62
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    63
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    64
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    65
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    66
void CMessageNotifier::ConstructL(CMessageSession *aOwner)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    67
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    68
	iOwner = aOwner;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    69
	CActiveScheduler::Add(this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    70
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    71
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    72
CMessageNotifier *CMessageNotifier::NewL(CMessageSession *aOwner)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    73
	{	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    74
	CMessageNotifier *self = CMessageNotifier::NewLC(aOwner);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    75
	CleanupStack::Pop();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    76
	return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    77
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    78
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    79
CMessageNotifier *CMessageNotifier::NewLC(CMessageSession *aOwner)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    80
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    81
	CMessageNotifier *self = new (ELeave) CMessageNotifier();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    82
	CleanupStack::PushL(self);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    83
	self->ConstructL(aOwner);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    84
	return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    85
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    86
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    87
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    88
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    89
void CMessageNotifier::RunL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    90
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    91
	/* RunL(...) is called only when a message is received. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    92
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    93
	ASSERT(iOwner != NULL);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    94
	ASSERT(iOwner->iListener != NULL);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    95
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    96
  if (iStatus.Int() == KErrNone) {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    97
    if (iOwner->iMessageBuffer->Length() > 0) {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    98
	    iOwner->iListener->ReceiveMessageL(iOwner->iMessageBuffer->Des());
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    99
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   100
    StartReceiveL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   101
  }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   102
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   103
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   104
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   105
void CMessageNotifier::DoCancel()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   106
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   107
  iOwner->SendReceive(KCancelReceive, TIpcArgs()); 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   108
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   109
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   110
void CMessageNotifier::StartReceiveL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   111
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   112
    iStatus = KRequestPending;	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   113
    SetActive();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   114
    iOwner->iMessagePtr->Zero();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   115
    TIpcArgs args(iOwner->iMessagePtr);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   116
    iOwner->SendReceive(KReceive, args, iStatus);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   117
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   118
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   119
/****************************************************************************
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   120
*   CMessageSession
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   121
*****************************************************************************
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   122
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   123
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   124
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   125
****************************************************************************/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   126
EXPORT_C CMessageSession::CMessageSession() : 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   127
RSessionBase()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   128
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   129
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   130
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   131
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   132
EXPORT_C void CMessageSession::ConstructL()	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   133
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   134
	iMessageBuffer = HBufC8::NewL(KMaxSmsBufferSize);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   135
	iMessagePtr = new (ELeave) TPtr8(iMessageBuffer->Des());
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   136
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   137
	iListener = NULL;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   138
	iIncomingNotify = CMessageNotifier::NewL(this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   139
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   140
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   141
EXPORT_C CMessageSession *CMessageSession::NewL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   142
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   143
	CMessageSession *self = CMessageSession::NewLC();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   144
	CleanupStack::Pop();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   145
	return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   146
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   147
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   148
EXPORT_C CMessageSession *CMessageSession::NewLC()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   149
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   150
	CMessageSession *self = new (ELeave) CMessageSession;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   151
	CleanupStack::PushL(self);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   152
	self->ConstructL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   153
	return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   154
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   155
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   156
EXPORT_C CMessageSession::~CMessageSession()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   157
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   158
	StopListeningL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   159
	delete iIncomingNotify;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   160
	delete iMessageBuffer;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   161
	delete iMessagePtr;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   162
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   163
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   164
/* Attaches to server. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   165
EXPORT_C void CMessageSession::AttachL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   166
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   167
	User::LeaveIfError(CreateSession(KRelayServiceName, MessageRelayVersion));
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   168
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   169
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   170
/* Sends a message. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   171
EXPORT_C void CMessageSession::SendMessageL(const TPtr8 &aMessage, TMessageType aType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   172
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   173
	TIpcArgs args( aMessage.Length(), &aMessage, aType );
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   174
	User::LeaveIfError( SendReceive( KNewMessage, args ) );
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   175
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   176
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   177
/* Listen messages of given type in a given port. One
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   178
   session may listen to one port only. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   179
EXPORT_C void CMessageSession::ListenMessagesL(TMessageType aType, TUint aPort)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   180
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   181
	ASSERT(iListener != NULL);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   182
	TIpcArgs args( iMessagePtr, aType, aPort);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   183
    User::LeaveIfError(SendReceive(KStartListening, args));
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   184
	iIncomingNotify->StartReceiveL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   185
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   186
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   187
/* Stops listening message. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   188
EXPORT_C void CMessageSession::StopListeningL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   189
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   190
	User::LeaveIfError(SendReceive(KStopListening, TIpcArgs()));
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   191
	iIncomingNotify->Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   192
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   193
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   194
/* Sets the message listener. Listener's ReceiveMessageL(...)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   195
   is called, when a new message is received. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   196
EXPORT_C void CMessageSession::SetListener(CMessageListener *aListener)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   197
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   198
	iListener = aListener;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   199
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   200
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   201
/* Returns ETrue, is session set to listening state. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   202
EXPORT_C TBool CMessageSession::IsListening() const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   203
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   204
	if( iIncomingNotify->IsActive() )
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   205
		return ETrue;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   206
	else 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   207
		return EFalse;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   208
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   209
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   210
/* Returns ETrue, if file based SMS should be used.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   211
   Reads the settings from c:\system\data\wma.ini file.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   212
   File format:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   213
	# Starts a comment line
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   214
	# Set UseSocketOutput=1 to use native sockets implementation,
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   215
	# UseSocketOutput=0 to use file based SMS messaging.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   216
	UseSocketOutput=0								*/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   217
EXPORT_C TBool CMessageSession::UseFileSMS()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   218
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   219
	/* The config file. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   220
	_LIT(KWMAIniFile, "c:\\system\\data\\wma.ini");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   221
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   222
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   223
	/* The write mode; 0 == file (default), 1 == socket. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   224
	int mode = 0;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   225
	CSysIni *ini = NULL;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   226
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   227
	/* Open the config file. NewLC leaves, if the file is not found, in which
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   228
	   case we default to writing to file. */ 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   229
	TRAPD(err, ini = CSysIni::NewL(KWMAIniFile));
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   230
	CleanupStack::PushL(ini);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   231
	switch ( err )
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   232
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   233
	case KErrNone:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   234
	   if (ini->SeekBool("UseSocketOutput"))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   235
	      mode = 1; // Use socket output
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   236
	   break;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   237
	case KErrNotFound:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   238
		mode = 0;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   239
       break;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   240
	default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   241
		User::Panic(_L("CMessageSession::UseFileSms() panic:"), err);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   242
	} 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   243
		
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   244
	//delete ini;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   245
	CleanupStack::PopAndDestroy();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   246
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   247
	if (mode == 1)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   248
		return EFalse;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   249
	else
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   250
		return ETrue;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   251
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   252
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   253
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   254
/****************************************************************************
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   255
*   CMessageListener
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   256
*****************************************************************************
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   257
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   258
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   259
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   260
****************************************************************************/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   261
EXPORT_C void CMessageListener::ConstructL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   262
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   263
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   264
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   265
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   266
EXPORT_C CMessageListener *CMessageListener::NewL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   267
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   268
	CMessageListener *self = CMessageListener::NewLC();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   269
	CleanupStack::Pop();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   270
	return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   271
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   272
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   273
EXPORT_C CMessageListener *CMessageListener::NewLC()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   274
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   275
	CMessageListener *self = new (ELeave) CMessageListener;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   276
	CleanupStack::PushL(self);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   277
	self->ConstructL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   278
	return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   279
	}	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   280
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   281
EXPORT_C CMessageListener::~CMessageListener()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   282
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   283
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   284
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   285
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   286
/* Called when a message is received. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   287
EXPORT_C void CMessageListener::ReceiveMessageL(const TPtr8 &/*aMessage*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   288
	{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   289
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   290
	}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   291
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   292
// End of file