// ETELEXT.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__ETELEXT_H__)
#define __ETELEXT_H__

#if !defined(__E32BASE_H__)
#include <E32BASE.H>
#endif

//
// TEtelDataPackageType
// Data package description that passing between client to Server
// specified in p[1]
//
enum TEtelDataPackageType
	{
	EIsaNull =0,
	EIsaDesTobeSet =1,
	EIsaDesTobeRead =2,
	EIsaDoubleDesTobeSet =3,
	EIsaDoubleDesTobeRead =4,
	EIsaDesTobeReadAndMerged =5,
	EIsaCancelMessage,
	EIsaCancelSubSession,
	EIsaRegistration,
	EIsaDeregistration,
	EIsPriorityClientReqWithNull =0x1000,
	EIsPriorityClientReqWithaDesTobeSet =0x1001,
	EIsPriorityClientReqWithaDesTobeRead =0x1002,
	EIsPriorityClientReqWithaDoubleDesTobeSet =0x1003,
	EIsPriorityClientReqWithaDoubleDesTobeRead =0x1004,
	EIsPriorityClientReqWithaDesTobeReadAndMerged =0x1005
	};

const TInt KPriorityClientReq=0x1000;

//
// ETel Panics
//
enum TEtelPanic
	{
	EEtelPanicBadPhoneHandle,
	EEtelPanicBadDescriptor,
	EEtelPanicInvalidRequestType,
	EEtelPanicRequestAsyncTwice,
	EEtelPanicBadSubSessionHandle,
	EEtelPanicZeroLengthDes,
	EEtelPanicDesLengthNegative,
	EEtelPanicNullPtrArray,
	EEtelPanicNullHandle,
	EEtelPanicHandleNotOpen,
	EEtelPanicIndexOutOfRange,
	EEtelPanicHandleNotClosed,
	EEtelPanicBadCallGroupType
	};

//
// ETel Faults
//
enum TEtelFault
	{
	EEtelFaultMainSchedulerError,
	EEtelFaultSvrCreateServer,
	EEtelFaultSvrStartServer,
	EEtelFaultCommServerNotRunning,
	EEtelFaultCreateTrapCleanup,
	EEtelFaultCompletionReceivedWithNoReqPackage,
	EEtelFaultWaitingReqLostCObject,
	EEtelFaultCompleteReqWithoutReqEntry,
	EETelFaultRequestWithoutBuffer,
	EEtelFaultCallTsyServiceWithoutReqPackage,
	EEtelFaultMessageTypeCorrupted,
	EEtelFaultNotRecognisedTsyHandle,
	EEtelFaultInvalidIpcForCancel,
	EEtelFaultCanNotRelinquishOwnership,
	EEtelFaultBadTelSessionPointer,
	EEtelFaultBadSubSessionHandle,
	EEtelFaultBadPhoneFactoryPointer,
	EEtelFaultBadPhonePointer,
	EEtelFaultBadTelObjectPointer,
	EEtelFaultDes1DoesNotExist,
	EEtelFaultDes2DoesNotExist,
	EEtelFaultNegativeFlowcontrolCount,
	EEtelFaultNegativeSessionCount,
	EEtelFaultNegativeActiveReqCount,
	EEtelFaultBadMessageType,
	EEtelFaultClientNotPostedNotification,
	EEtelFaultUpdatingBufferOfDifferentIpc,
	EEtelFaultUpdatingIdenticalBuffer,
	EEtelFaultBadName,
	EEtelFaultMaxDesLengthNegative,
	EEtelFaultPreviousReqNonNull,
	EEtelFaultNullBooleanArrayPointer,
	EEtelFaultCancelErrorWithoutCancelled
	};

#define ETEL_SERVER_NAME	  _L("EtelServer")

#endif
