williamr@2: /*
williamr@2: * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@4: * under the terms of "Eclipse Public License v1.0"
williamr@2: * which accompanies this distribution, and is available
williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description:   Encapsulates the ECom plugged sending service data.
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: #ifndef CSENDINGSERVICEINFO_H
williamr@2: #define CSENDINGSERVICEINFO_H
williamr@2: 
williamr@2: // INCLUDES
williamr@2: #include <e32Base.h>
williamr@2: //#include <SendUi.h>     // TSendingCapabilities
williamr@2: 
williamr@2: // FORWARD DECLARATIONS
williamr@2: class TSendingCapabilities;
williamr@2: class CSendingServiceInfoImpl;
williamr@2: 
williamr@2: // CLASS DECLARATION
williamr@2: 
williamr@2: /**
williamr@2:  * Encapsulates the ECom plugged sending service data.
williamr@2:  *
williamr@2:  * @lib Sendui
williamr@2:  * @since Series 60 3.0
williamr@2:  */ 
williamr@2: class CSendingServiceInfo : public CBase
williamr@2:     {
williamr@2:     public:
williamr@2:     
williamr@2:     enum TServiceFeatures
williamr@2:         {
williamr@2:         EServiceInValid = 1,
williamr@2:         EServiceHidden = 2,
williamr@2:         EServiceCanSendDirectly = 4,
williamr@2:         ENotUsed3 = 8
williamr@2:         };
williamr@2:         
williamr@2:     public:  // Constructors and destructor
williamr@2:     
williamr@2:         /**
williamr@2:         * Two-phased constructor.
williamr@2:         * @return Pointer to object of CSendingServiceInfo.
williamr@2:         */
williamr@2:         IMPORT_C static CSendingServiceInfo* NewL();
williamr@2:         
williamr@2:         /**
williamr@2:         * Two-phased constructor.
williamr@2:         * @return Pointer to object of CSendingServiceInfo.
williamr@2:         */
williamr@2:         IMPORT_C static CSendingServiceInfo* NewLC();
williamr@2: 
williamr@2:         /**
williamr@2:         * Destructor.
williamr@2:         */
williamr@2:         IMPORT_C virtual ~CSendingServiceInfo();
williamr@2: 
williamr@2:     public: // New functions
williamr@2: 
williamr@2:         /**
williamr@2:         * Creates a copy of CSendingServiceInfo object.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return A pointer to the new copy of the CSendingServiceInfo object.
williamr@2:         */
williamr@2:         IMPORT_C CSendingServiceInfo* CopyLC() const;
williamr@2: 
williamr@2:         /**
williamr@2:         * Set service human readable name.
williamr@2:         * Service name is used in editors "To"-field.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @param aServiceName Service human readable name.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceNameL( const TDesC& aServiceName );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns service human readable name.
williamr@2:         * Service name is used in editors "To"-field.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return Service human readable name.
williamr@2:         */
williamr@2:         IMPORT_C const TPtrC ServiceName() const;
williamr@2: 
williamr@2:         /**
williamr@2:         * Set service human readable name for the "Send"-menu.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @param aServiceMenuName Service human readable name for the
williamr@2:         *        "Send"-menu.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceMenuNameL( const TDesC& aServiceMenuName );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns service human readable name for the "Send"-menu.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return Service human readable name for the "Send"-menu.
williamr@2:         */
williamr@2:         IMPORT_C const TPtrC ServiceMenuName() const;
williamr@2: 
williamr@2:         /**
williamr@2:         * Set service address.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @param aServiceAddress Service address.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceAddressL( const TDesC& aServiceAddress );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns service address. 
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return Service address.
williamr@2:         */
williamr@2:         IMPORT_C const TPtrC ServiceAddress() const;
williamr@2: 
williamr@2:         /**
williamr@2:         * Set sending service id.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @param aServiceId Service id.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceId( TUid aServiceId );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns sending service id.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return Service id.
williamr@2:         */
williamr@2:         IMPORT_C TUid ServiceId() const;
williamr@2: 
williamr@2:         /**
williamr@2:         * Set sending service provider id.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @param aServiceProviderId Service provider id.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceProviderId( TUid aServiceProviderId );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns sending service provider id.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return Service provider id.
williamr@2:         */
williamr@2:         IMPORT_C TUid ServiceProviderId() const;
williamr@2: 
williamr@2:         
williamr@2:           /**
williamr@2:         * Returns sending service technology type id.
williamr@2:         * @since Series 60 3.2
williamr@2:         * @return Service id.
williamr@2:         */
williamr@2:         IMPORT_C void SetTechnologyTypeId( TUid aTechnologyType );
williamr@2:         /**
williamr@2:         * Returns sending service technology type id.
williamr@2:         * @since Series 60 3.2
williamr@2:         * @return Service id.
williamr@2:         */
williamr@2:         IMPORT_C TUid TechnologyTypeId() const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Set service sending capabilities.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @param aServiceCapabilities Service sending capabilities.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceCapabilities(
williamr@2:             TSendingCapabilities aServiceCapabilities );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns service sending capabilities.
williamr@2:         * @since Series 60 3.0
williamr@2:         * @return Service sending capabilities.
williamr@2:         */
williamr@2:         IMPORT_C TSendingCapabilities ServiceCapabilities() const;
williamr@2: 
williamr@2:        /**
williamr@2:         * Set sending service features
williamr@2:         * @since Series 60 3.2
williamr@2:         * @param aServiceCapabilities Sending service features.
williamr@2:         * @return None.
williamr@2:         */
williamr@2:         IMPORT_C void SetServiceFeatures(
williamr@2:             TInt aServiceFeatures );
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns service features.
williamr@2:         * @since Series 60 3.2
williamr@2:         * @return Sending service features.
williamr@2:         */
williamr@2:         IMPORT_C TInt ServiceFeatures() const;
williamr@2:         
williamr@2: 
williamr@2:     private:
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * C++ default constructor.
williamr@2:         */
williamr@2:         CSendingServiceInfo();
williamr@2: 
williamr@2:         /**
williamr@2:         * By default Symbian 2nd phase constructor is private.
williamr@2:         */
williamr@2:         void ConstructL();
williamr@2: 
williamr@2:     private:  // Data
williamr@2: 
williamr@2:         CSendingServiceInfoImpl*            iServiceInfoImpl;
williamr@2:     };
williamr@2: 
williamr@2: #endif      // CSENDINGSERVICEINFO_H
williamr@2: 
williamr@2: // End of File