sdkcreationmw/sdkruntimes/msgsimulation/MsgSession/Inc/MsgSession.h
author Shabe Razvi <shaber@symbian.org>
Thu, 04 Nov 2010 17:22:05 +0000
changeset 4 b3b823debf08
parent 0 b26acd06ea60
permissions -rw-r--r--
Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
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
#ifndef MSG_SESSION_H
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    20
#define MSG_SESSION_H
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>
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    23
#include "MsgTypes.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    24
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    25
class CMessageListener;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    26
class CMessageNotifier;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    27
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    28
class CMessageSession : public RSessionBase
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    29
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    30
	friend class CMessageNotifier;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    31
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    32
	/* Request status for notifying incoming messages. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    33
	CMessageNotifier *iIncomingNotify;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    34
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    35
	CMessageListener *iListener;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    36
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    37
	/* Message buffer for new messages. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    38
	HBufC8 *iMessageBuffer;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    39
	TPtr8 *iMessagePtr;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    40
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    41
	IMPORT_C void ConstructL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    42
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    43
	IMPORT_C CMessageSession();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    44
public:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    45
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    46
	IMPORT_C static CMessageSession *NewL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    47
	IMPORT_C static CMessageSession *NewLC();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    48
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    49
	IMPORT_C ~CMessageSession();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    50
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    51
	/* Attaches to server. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    52
	IMPORT_C void AttachL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    53
	
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    54
	/* Sends a message. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    55
	IMPORT_C void SendMessageL(const TPtr8 &aMessage, TMessageType aType);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    56
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    57
	/* Listen messages of given type in a given port. One
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    58
	   session may listen to one port only. 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    59
	   Message listener MUST be set before calling ListenMessageL(...). 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    60
	   Only one type/port may be listened at a time. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    61
	IMPORT_C void ListenMessagesL(TMessageType aType, TUint aPort);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    62
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    63
	/* Stops listening message. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    64
	IMPORT_C void StopListeningL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    65
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    66
	/* Sets the message listener. Listener's ReceiveMessageL(...)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    67
	   is called, when a new message is received. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    68
	IMPORT_C void SetListener(CMessageListener *aListener);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    69
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    70
	/* Returns ETrue, is session set to listening state. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    71
	IMPORT_C TBool IsListening() const;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    72
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    73
	/* Returns ETrue, if file based SMS should be used.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    74
	   Reads the settings from c:\system\data\wma.ini file.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    75
	   File format:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    76
		# Starts a comment line
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    77
		# Set UseSocketOutput=1 to use native sockets implementation,
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    78
		# UseSocketOutput=0 to use file based SMS messaging.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    79
		UseSocketOutput=0								*/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    80
	IMPORT_C static TBool UseFileSMS();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    81
};
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    82
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    83
class CMessageListener
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    84
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    85
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    86
protected:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    87
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    88
	IMPORT_C void ConstructL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    89
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    90
public:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    91
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    92
	IMPORT_C static CMessageListener *NewL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    93
	IMPORT_C static CMessageListener *NewLC();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    94
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    95
	IMPORT_C virtual ~CMessageListener();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    96
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    97
	/* Called when a message is received. */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    98
	IMPORT_C virtual void ReceiveMessageL(const TPtr8 &aMessage);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    99
};
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   100
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   101
#endif /* MSG_SESSION_H */