/*
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: CS general definitions
*
*/
#ifndef __C_CSSERVER_DEFS_H__
#define __C_CSSERVER_DEFS_H__
// INCLUDES FILES
// SYSTEM INCLUDES
#include <e32base.h>
#include <e32math.h>
#include <s32strm.h>
#include <s32mem.h>
#include <e32def.h>
//-----------------------------------------------------------------------------
// Conversation Server Details
//-----------------------------------------------------------------------------
/**
* Name of the conversation server.
*/
_LIT(KCsServerName, "CsServer");
/**
* Name of the conversation server executable.
*/
_LIT(KCsServerExeName, "CsServer.exe");
/**
* Conversation Server data plugin interface UID
*/
const TUid KCsPluginInterfaceUid = { 0x2002A545 };
//-----------------------------------------------------------------------------
// Conversation Server general constants
//-----------------------------------------------------------------------------
/**
* Number of digits to compare (from right) for two phone numbers to match.
*/
const TInt KDefaultGsmNumberMatchLength = 7;
/**
* Maximum internal buffer length used for IPC between conversation server and
* clients.
*/
const TInt KBufferMaxLen = 16000; // 16K
/**
* Maximum number of special conversations that are being reserved
*
*/
const TInt8 KMaxSpecialConversations = 3;
//-----------------------------------------------------------------------------
// Conversation Server event codes
//-----------------------------------------------------------------------------
const TUint32 KConversationEventNone = 0x00000000;
const TUint32 KConversationListEventNew = 0x00000001;
const TUint32 KConversationListEventUpdate = 0x00000002;
const TUint32 KConversationListEventDelete = 0x00000004;
const TUint32 KConversationEventNew = 0x00000008;
const TUint32 KConversationEventUpdate = 0x00000010;
const TUint32 KConversationEventDelete = 0x00000020;
const TUint32 KConversationCachingEventStarted = 0x00000040;
const TUint32 KConversationCachingEventCompleted = 0x00000080;
const TUint32 KConversationCachingEventError = 0x00000100;
const TUint32 KConversationEventListRefresh = 0x00000200;
const TUint32 KConversationEventRefresh = 0x00000400;
//-----------------------------------------------------------------------------
// Conversation Server caching status codes
//-----------------------------------------------------------------------------
const TUint8 KCachingStatusUnknown = 0x00;
const TUint8 KCachingStatusStarted = 0x01;
const TUint8 KCachingStatusCompleted = 0x02;
const TUint8 KCachingStatusError = 0x04;
//-----------------------------------------------------------------------------
// Conversation Server special conversation codes
//-----------------------------------------------------------------------------
const TUint8 KUnknownConversationId = 0x00;
const TUint8 KBluetoothMsgsConversationId = 0x01;
const TUint8 KInfraRedMsgsConversationId = 0x02;
//-----------------------------------------------------------------------------
// Request commands to the conversation server
//-----------------------------------------------------------------------------
enum TCsServerRequestCommands
{
EGetConversationList,
EGetConversationUnreadList,
EGetConversations,
EGetTotalUnreadCount,
ERequestChangeEvent,
ERemoveChangeEvent,
EGetCachingStatus,
ESetConversationListChangeObserver,
EResetConversationListChangeObserver,
ESetConversationChangeObserver,
EResetConversationChangeObserver,
ESetCachingStatusObserver,
EResetCachingStatusObserver,
EShutdown,
EUserDeleteConversation,
EGetConversationId,
EGetConversationIdFromAddress,
EGetConversationFromMessageId,
EUserMarkReadConversation
};
//-----------------------------------------------------------------------------
// Response commands from the conversation server
//-----------------------------------------------------------------------------
enum TCsServerResponseCommand
{
EGetConversationListOperationComplete,
EGetConversationOperationComplete,
EGetConversationListBufferOverflow,
EGetConversationBufferOverflow,
EAddConversationListEvent,
EDeleteConversationListEvent,
EModifyConversationListEvent,
EAddConversationEvent,
EDeleteConversationEvent,
EModifyConversationEvent,
ECachingStartedEvent,
ECachingCompletedEvent,
ECachingErrorEvent,
EInitRequestChange, //initiate request change request to server
EUserDeleteConversationComplete,
ERefreshConversationListEvent,
ERefreshConversationEvent,
EGetConversationIdComplete,
EGetConversationIdFromAddressComplete,
EGetConversationFromMessageIdComplete,
EUserMarkReadConversationComplete
};
//-----------------------------------------------------------------------------
// Conversation Server data types
//-----------------------------------------------------------------------------
/**
* Conversation Identifier
*/
typedef TInt TCsConversationEntryID;
/**
* Direction of a conversation event.
* @attention This enum can have values from 0 to 255 only.
*/
enum
{
ECsDirectionIncoming = 0,
ECsDirectionOutgoing,
ECsDirectionMissed,
ECsDirectionUnknown
};
/**
* @typedef TCsDirection
* typedef to denoting direction of a conversation event.
*/
typedef TUint8 TCsDirection;
/**
* Type of a conversation event.
* @attention This enum can have values from 0 to 255 only.
*/
enum
{
ECsSMS = 0,
ECsMMS,
ECsMmsNotification,
ECsAudio,
ECsBioMsg,
ECsBlueTooth,
ECsRingingTone,
ECsProvisioning,
ECsBioMsg_VCard,
ECsBioMsg_VCal,
ECsUnknown
};
/**
* @typedef TCsType
* typedef denoting type of a conversation event.
*/
typedef TUint8 TCsType;
/**
* Attributes associated with a conversation event.
* These are bitmask values.
* Use CCsConversationEntry::ChangeAttributes() to set/ change
* @attention This enum can have values from 0 to 65535 only.
*/
enum
{
ECsAttributeNone = 0x0000,
ECsAttributeNew = 0x0001,
ECsAttributeDraft = 0x0002,
ECsAttributeAttachment = 0x0004, // Attachment present
ECsAttributeHighPriority = 0x0008, // Priority high
ECsAttributeLowPriority = 0x0010, // Low high
ECsAttributeUnread = 0x0020, // Unread
ECsAttributeSent = 0x0040,
ECsAttributeNewEntryAdded = 0x0080 // When a new entry added
};
/**
* @typedef TCsAttribute
* typedef denoting attributes associated with a conversation event.
*/
typedef TUint16 TCsAttribute;
/**
* Transit sending state of a conversation event.
* @attention This enum can have values from 0 to 255 only.
*/
enum
{
ECsSendStateUnknown = 0,
ECsSendStateUponRequest,
ECsSendStateWaiting,
ECsSendStateSending,
ECsSendStateScheduled,
ECsSendStateResend,
ECsSendStateSuspended,
ECsSendStateFailed,
ECsSendStateSent,
ECsSendStateNotApplicable
};
/**
* @typedef TCsSendState
* typedef denoting transit sending state of a conversation event.
*/
typedef TUint8 TCsSendState;
/**
* @typedef TCsMmsNotificationMsgState
* @attention This enum can have values from 0 to 255 only.
*/
enum
{
EMsgStatusNull = 0, // unknown status
EMsgStatusReadyForFetching = 1, // first state when received in inbox
EMsgStatusRetrieving = 2, // when MM is fetching ongoin
EMsgStatusForwarding = 3, // forwarding without retrival
EMsgStatusForwarded = 4, // state after successful forwarding
EMsgStatusWaiting = 5, // when settings changed manual->automatic
EMsgStatusExpired = 6, // expired time has exceed
EMsgStatusFailed = 7, // when fetching has failed (forwarding?)
EMsgStatusDeleted = 8 // when msg deleted from server
};
typedef TUint8 TCsMmsNotificationMsgState;
/**
* Constant for defining the contacts db
* This shall be used for converting contact link to id's
*/
_LIT(KVPbkDefaultCntDbURI, "cntdb://c:contacts.cdb"); //Phone Store
/**
* Internal offset used to identify SIM contacts.
*/
const TInt KSimIdOffset = 99999;
#endif // __C_CSSERVER_DEFS_H__
// End of file