smsprotocols/smsstack/smsprot/Inc/smspcomm.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Declares the two main notification interfaces for the protocol.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @internalAll
       
    21 */
       
    22 
       
    23 #if !defined(SMSPCOMM_H__)
       
    24 #define SMSPCOMM_H__
       
    25 
       
    26 #include <e32std.h>
       
    27 #include "smspmain.h"
       
    28 #include "smsuact.h"
       
    29 #include "smsuaddr.H"
       
    30 #include "Gsmumsg.h"
       
    31 
       
    32 
       
    33 #include <etel.h>
       
    34 
       
    35 //
       
    36 // Forward declarations
       
    37 //
       
    38 
       
    39 class TSmsAddr;
       
    40 class CSmsMessage;
       
    41 
       
    42 //
       
    43 // Class declarations
       
    44 //
       
    45 
       
    46 
       
    47 /**
       
    48  *  The notification interface used by the protocol to notify Service Access
       
    49  *  Points (SAPs, eg CSmsProvider) or WAP SMS Protocol of completion of a
       
    50  *  previous request.
       
    51  *  
       
    52  *  It is also used to request and set the local address of a SAP.
       
    53  *  @internalComponent
       
    54  */
       
    55 class MSmsMessageObserver
       
    56 	{
       
    57 public:
       
    58 	// Used by the protocol to ask a SAP for its local address.
       
    59 	virtual const TSmsAddr& GetLocalAddress() const=0;
       
    60 
       
    61 	// Used by the protocol to bind (set) the local address for the SAP.
       
    62 	virtual void SetLocalAddress(const TSmsAddr& aSmsAddr)=0;
       
    63 
       
    64 	// Used to notify a SAP that the modem connection status has changed.
       
    65 	virtual void ModemNotificationCompleted(TInt aStatus)=0;
       
    66 
       
    67 	// Used to notify a SAP that sending of a message has completed.
       
    68 	// @param aStatus is EPOC error or -(KFailureCauseOffset+failurecause).
       
    69 	virtual void MessageSendCompleted(TInt aStatus)=0;
       
    70 
       
    71 	// Used to notify a SAP that a message has been successfully received.
       
    72 	// @param aSmsMessage the SMS message received.
       
    73 	// @return aDes a buffer for the deliver report which can be filled in by the observer.
       
    74 	// @return EPOC error or -(KFailureCauseOffset+failurecause) must be returned by the observer.
       
    75 	virtual TInt MessageReceived(const CSmsMessage& aSmsMessage,TDes& aDes)=0;
       
    76 
       
    77 	// Used to notify a SAP that a phone enumeration has completed.
       
    78 	virtual void EnumeratePhoneCompleted(TInt aStatus)=0;
       
    79 
       
    80 	// Used to notify a SAP that writing a message to the phone has completed.
       
    81 	virtual void MessageWriteCompleted(TInt aStatus, const CSmsMessage* aSmsMessage = NULL)=0;
       
    82 
       
    83 	// Used to notify a SAP that a message deletion has completed.
       
    84 	virtual void MessageDeleteCompleted(TInt aStatus)=0;
       
    85 
       
    86 	// Used to notify a SAP that a read all SMS parameters has completed.
       
    87 	virtual void ReadSmsParamsCompleted(TInt aStatus,CMobilePhoneSmspList* aSmspList)=0;
       
    88 
       
    89     // Used to notify a SAP that a write all SMS parameters has completed.
       
    90     virtual void WriteSmsParamsCompleted(TInt aStatus)=0;
       
    91 
       
    92 	// Used to figure out whether entry in reassembly store can be deleted, or confirmation of
       
    93 	// successfull receipt from client is needed
       
    94     virtual TBool ClientConfirmsMessage()const=0;
       
    95 	virtual TBool SmsAddrIsDuplicate(const MSmsMessageObserver* aObserver,const TSmsAddr& aAddr)const=0;
       
    96 	};
       
    97 
       
    98 
       
    99 /**
       
   100  *  The notification interface used by the active object derived state machines
       
   101  *  to notify the protocol of an event or to make a request.
       
   102  *  @internalComponent
       
   103  */
       
   104 class MSmsComm
       
   105 	{
       
   106 public:
       
   107 	// Callback to allow the protocol to notify a SAP of a new (valid) message.
       
   108 	// @param aSmsMessage the received message.
       
   109 	// @return EPOC error or -(KFailureCauseOffset+failurecause) must be returned by the observed.
       
   110 	virtual TInt ProcessMessageL(const CSmsMessage& aSmsMessage,const TSmsAddr* aOriginalSmsAddr,const CSmsMessage* aOriginalSmsMessage,TDes& aDes)=0;
       
   111 
       
   112 	// Callback to request deletion of a number of SMS PDUs from the phone.
       
   113 	// @param aSlotArray the array of SMS PDU slots to delete.
       
   114 	// @param aObserver a reference to an observer if the request is from a SAP.
       
   115 	virtual void DeletePDUs(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray,MSmsMessageObserver* aObserver)=0;
       
   116 
       
   117 	// Callback when the state machine for sending a message has completed.
       
   118 	virtual void MessageSendCompleted(TInt aStatus)=0;
       
   119 
       
   120 	// Callback to notify the protocol that the modem detection status has changed.
       
   121 	virtual void ModemNotificationCompleted(TInt aStatus,RPhone::TModemDetection aState)=0;
       
   122 
       
   123 	// Callback when the state machine for enumerating the phone message stores has completed
       
   124 	virtual void PhoneEnumerationCompleted(TInt aStatus)=0;
       
   125 
       
   126 	// Callback when the state machine for deleting a PDU from the phone has completed
       
   127 	virtual TBool ClosingDown() const =0;
       
   128 	virtual void CloseNowWrap() = 0;
       
   129 
       
   130     // Check if observer is still present.
       
   131     // @param a reference to an observer.
       
   132     virtual TBool ObserverIsPresent(const MSmsMessageObserver& aObserver) const =0;
       
   133 	// Callback to get network info
       
   134 	virtual const RMobilePhone::TMobilePhoneNetworkInfoV1& NetworkInfo()const=0;
       
   135 	virtual TBool NetworkInfoAvailable()const=0;
       
   136 
       
   137 	// Callback to notify the protocol that the Disk Space Monitor has changed state.
       
   138 	virtual void DiskSpaceMonitorStateChange(TSmsDiskSpaceMonitorStatus aStatus)=0;
       
   139 	};
       
   140 
       
   141 #endif // SMSPCOMM_H__