videoscheduler/SchedulerServer/src/CCseSchedulerServerEngine.cpp
changeset 55 5af11d9814f5
parent 0 822a42b6c3f1
equal deleted inserted replaced
3:bdf78597b41c 55:5af11d9814f5
    54 
    54 
    55 // LOCAL FUNCTION PROTOTYPES
    55 // LOCAL FUNCTION PROTOTYPES
    56 // None.
    56 // None.
    57 
    57 
    58 // ============================ MEMBER FUNCTIONS ===============================
    58 // ============================ MEMBER FUNCTIONS ===============================
       
    59 // -----------------------------------------------------------------------------
       
    60 // CloseEngine
       
    61 // CB method used if ConstructL leaves. Just calls Close to initiate proper
       
    62 // shutdown sequence
       
    63 // -----------------------------------------------------------------------------
       
    64 //
       
    65 void CloseEngine( TAny* aPtr )
       
    66     {
       
    67     static_cast<CCseSchedulerServerEngine*>( aPtr )->Close();
       
    68     }
    59 
    69 
    60 // -----------------------------------------------------------------------------
    70 // -----------------------------------------------------------------------------
    61 // CCseSchedulerServerEngine::CCseSchedulerServerEngine
    71 // CCseSchedulerServerEngine::CCseSchedulerServerEngine
    62 // C++ default constructor can NOT contain any code, that might leave.
    72 // C++ default constructor can NOT contain any code, that might leave.
    63 // -----------------------------------------------------------------------------
    73 // -----------------------------------------------------------------------------
    77 //
    87 //
    78 CCseSchedulerServerEngine* CCseSchedulerServerEngine::NewL( CCseSchedulerServer& aServer ) 
    88 CCseSchedulerServerEngine* CCseSchedulerServerEngine::NewL( CCseSchedulerServer& aServer ) 
    79     {
    89     {
    80     CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::NewL");
    90     CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::NewL");
    81     
    91     
    82     CCseSchedulerServerEngine* self = new( ELeave ) CCseSchedulerServerEngine( aServer );
    92     CCseSchedulerServerEngine* self = new( ELeave ) CCseSchedulerServerEngine( aServer );    
    83     CleanupStack::PushL( self );
    93     CleanupStack::PushL( TCleanupItem( CloseEngine, self ) );
    84     self->ConstructL();
    94     self->ConstructL();
    85     CleanupStack::Pop( self );
    95     CleanupStack::Pop( ); // CleanupItem
    86     
    96     
    87     CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::NewL");
    97     CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::NewL");
    88     return self;
    98     return self;
    89     }
    99     }
    90 
   100 
    93 // Symbian 2nd phase constructor can leave.
   103 // Symbian 2nd phase constructor can leave.
    94 // -----------------------------------------------------------------------------
   104 // -----------------------------------------------------------------------------
    95 //
   105 //
    96 void CCseSchedulerServerEngine::ConstructL()
   106 void CCseSchedulerServerEngine::ConstructL()
    97     {
   107     {
    98     CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::ConstructL");
   108     CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::ConstructL");       
    99         
   109 
   100     iDb = CCseScheduleDB::NewL();
   110     iDb = CCseScheduleDB::NewL();
   101     iCompletitionBreaker = CIdle::NewL( CActive::EPriorityLow );
   111     iCompletitionBreaker = CIdle::NewL( CActive::EPriorityLow );
   102     
   112 
   103 	CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::ConstructL");
   113 	CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::ConstructL");
   104     }
   114     }
   105 
   115 
   106 // -----------------------------------------------------------------------------
   116 // -----------------------------------------------------------------------------
   107 // CCseSchedulerServerEngine::~CCseSchedulerServerEngine
   117 // CCseSchedulerServerEngine::~CCseSchedulerServerEngine
   109 // -----------------------------------------------------------------------------
   119 // -----------------------------------------------------------------------------
   110 //
   120 //
   111 CCseSchedulerServerEngine::~CCseSchedulerServerEngine()
   121 CCseSchedulerServerEngine::~CCseSchedulerServerEngine()
   112     {
   122     {
   113     CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::~CCseSchedulerServerEngine");
   123     CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::~CCseSchedulerServerEngine");
   114     
   124 
   115     delete iDb;
   125     delete iDb;
   116     	
   126     	
   117 	iPluginControllerArray.ResetAndDestroy();
   127 	iPluginControllerArray.ResetAndDestroy();
   118 	iPluginControllerArray.Close();
   128 	iPluginControllerArray.Close();
   119     delete iCompletitionBreaker;    
   129     delete iCompletitionBreaker;
   120 		
   130     
   121     CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::~CCseSchedulerServerEngine");
   131     CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::~CCseSchedulerServerEngine");
   122     }
   132     }
   123 
       
   124 
   133 
   125 // -----------------------------------------------------------------------------
   134 // -----------------------------------------------------------------------------
   126 // CCseSchedulerServerEngine::GeneralServiceL
   135 // CCseSchedulerServerEngine::GeneralServiceL
   127 //
   136 //
   128 // Schedule operations
   137 // Schedule operations
   862 //
   871 //
   863 // -----------------------------------------------------------------------------
   872 // -----------------------------------------------------------------------------
   864 //
   873 //
   865 void CCseSchedulerServerEngine::Close()
   874 void CCseSchedulerServerEngine::Close()
   866 	{
   875 	{
   867 	CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::IsSchedulerActive");
   876 	CSELOGSTRING_HIGH_LEVEL(">>>CCseSchedulerServerEngine::Close");
   868 	
   877 	
   869     while( AccessCount() >= 1 )
   878     while( AccessCount() >= 1 )
   870         {
   879         {
   871         Dec();
   880         Dec();
   872         }
   881         }
   873 	
   882 	
   874 	CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::IsSchedulerActive");
   883 	CSELOGSTRING_HIGH_LEVEL("<<<CCseSchedulerServerEngine::Close");
   875 	}
   884 	}
   876 
   885 
   877 	
   886 	
   878 // -----------------------------------------------------------------------------
   887 // -----------------------------------------------------------------------------
   879 // CCseSchedulerServerEngine::GetScheduleArrayLengthByPluginUidL
   888 // CCseSchedulerServerEngine::GetScheduleArrayLengthByPluginUidL