mmsharing/inc/musavainterface.h
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
equal deleted inserted replaced
2:b31261fd4e04 15:ccd8e69b5392
     1 /*
       
     2 * Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  ECOM interface definition. This interface is used by
       
    15 *               clients to get availability for Video Charging
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 
       
    21 #ifndef __MUSAVAINTERFACE_H__
       
    22 #define __MUSAVAINTERFACE_H__
       
    23 
       
    24 // SYSTEM
       
    25 #include "musavaobserver.h"
       
    26 #include <e32base.h>
       
    27 #include <ecom/ecom.h>
       
    28 
       
    29 class MMusAvaObserver;
       
    30 class MMusAvaSettings;
       
    31 class MMusAvaObserver;
       
    32 class MMusAvaSettingsObserver;
       
    33 
       
    34 
       
    35 /**
       
    36  *  Interface class definition 
       
    37  *
       
    38  *  ECOM interface definition for MusAvailability Plug-in
       
    39  *
       
    40  *  @lib musavailabilityplugin.lib
       
    41  *  @since S60 v3.2
       
    42  */
       
    43  
       
    44 
       
    45 class CMusAvaInterface : public CBase
       
    46 	{
       
    47 public: 
       
    48 
       
    49     // Constructors and destructor
       
    50 
       
    51     /**
       
    52      * Two-phased constructor
       
    53      *
       
    54      * @since S60 v3.2
       
    55      * @param aObserver Pointer to observer intercase
       
    56      * @return Returns pointer to CMusAvaInterface object
       
    57      */
       
    58      
       
    59 	static CMusAvaInterface* NewL();
       
    60 
       
    61     /**
       
    62      * Destructor
       
    63      *
       
    64      * @since S60 v3.2
       
    65      * @param 
       
    66      * @return 
       
    67      */
       
    68 	virtual ~CMusAvaInterface(); 
       
    69 	
       
    70 public: 
       
    71      
       
    72      /**
       
    73      * Called by the ECOM framework when MusAvailability Plug-in is request
       
    74      * retuns setting interface for the client.
       
    75      *
       
    76      * @since S60 v3.2
       
    77          * @return CMusAvaSettings
       
    78      */
       
    79     virtual MMusAvaSettings& Settings() = 0;
       
    80     
       
    81      /**
       
    82      * Called by the ECOM framework when MusAvailability Plug-in is for
       
    83      * setting Observer interface for the client.
       
    84      *
       
    85      * @since S60 v3.2
       
    86      * @param aObserver Obser interface
       
    87      * @return 
       
    88      */
       
    89      virtual void SetObserver( MMusAvaObserver& aObserver ) = 0;
       
    90              
       
    91     /**
       
    92      * Called by the ECOM framework when MusAvailability Plug-in is for
       
    93      * setting Observer interface for the client.
       
    94      *
       
    95      * @since S60 v3.2
       
    96      * @param aObserver MMusAvaObserver interface
       
    97      */
       
    98     virtual void SetSettingsObserver( MMusAvaSettingsObserver& aObserver ) =0;
       
    99 
       
   100      
       
   101      /**
       
   102      * Called by the ECOM framework when MusAvailability Plug-in is request
       
   103      * to investigate availabilites for the client.
       
   104      *
       
   105      * @since S60 v3.2
       
   106      * @param 
       
   107      * @return 
       
   108      */
       
   109     virtual void StartL() = 0;
       
   110     
       
   111     /**
       
   112      * Called by the ECOM framework when MusAvailability Plug-in is request
       
   113      * to stop investigate or monitoring availabilites for the client.
       
   114      *
       
   115      * @since S60 v3.2
       
   116      * @param 
       
   117      * @return 
       
   118      */
       
   119     virtual void Stop() = 0;
       
   120 
       
   121 // TBD: COMMENTS
       
   122     virtual MMusAvaObserver::TAvailabilityName CurrentAvailability() = 0; // tbd:availabilityname
       
   123     virtual MMusAvaObserver::TAvailabilityStatus AvailabilityStatus() = 0;
       
   124     virtual TBool MinimumAvailability() = 0;
       
   125     virtual TBool MandatoryAvailability() = 0;
       
   126     virtual TBool ExtensionAvailability() = 0;
       
   127     virtual TBool Available( MMusAvaObserver::TAvailabilityName aAvailability ) = 0;
       
   128     virtual MMusAvaObserver::TAvailabilityStatus AvailabilityState( MMusAvaObserver::TAvailabilityName aAvailability ) = 0;
       
   129     
       
   130 private: //Data
       
   131 
       
   132    	/** 
       
   133    	 * Instance identifier key. When instance of an
       
   134 	 * implementation is created by ECOM framework, the
       
   135 	 * framework will assign UID for it. The UID is used in
       
   136 	 * destructor to notify framework that this instance is
       
   137 	 * being destroyed and resources can be released.
       
   138      */
       
   139 	TUid iDtor_ID_Key;
       
   140 
       
   141 	};
       
   142 	
       
   143 #include "musavainterface.inl"
       
   144 
       
   145 #endif
       
   146