smsprotocols/smsstack/smsu/src/smsuact.cpp
branchRCL_3
changeset 20 07a122eea281
parent 19 630d2f34d719
equal deleted inserted replaced
19:630d2f34d719 20:07a122eea281
     1 // Copyright (c) 1998-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    17 
    17 
    18 /**
    18 /**
    19  @file
    19  @file
    20 */
    20 */
    21 
    21 
    22 
       
    23 #include "OstTraceDefinitions.h"
       
    24 #ifdef OST_TRACE_COMPILER_IN_USE
       
    25 #include "smsuactTraces.h"
       
    26 #endif
       
    27 
       
    28 #include "smsuact.h"
    22 #include "smsuact.h"
    29 #include "SmsuTimer.h"
    23 #include "SmsuTimer.h"
    30 #include "smsstacklog.h"
    24 #include "smsstacklog.h"
    31 #include "smsumain.h"
    25 #include "smsumain.h"
    32 
    26 
    60  *  This is required before use of TimedSetActive().
    54  *  This is required before use of TimedSetActive().
    61  *  @capability None
    55  *  @capability None
    62  */
    56  */
    63 EXPORT_C void CSmsuActiveBase::ConstructTimeoutL()
    57 EXPORT_C void CSmsuActiveBase::ConstructTimeoutL()
    64 	{
    58 	{
    65 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_CONSTRUCTTIMEOUTL_1, "CSmsuActiveBase::ConstructTimeoutL()");
    59 	LOGSMSU1("CSmsuActiveBase::ConstructTimeoutL()");
    66 
    60 
    67 	iSmsuTimeout = CSmsuTimeout::NewL(*this);
    61 	iSmsuTimeout = CSmsuTimeout::NewL(*this);
    68 	} // CSmsuActiveBase::ConstructTimeoutL
    62 	} // CSmsuActiveBase::ConstructTimeoutL
    69 
    63 
    70 
    64 
    74  *  @param aTimeIntervalMicroSeconds32 Time after which to complete the object
    68  *  @param aTimeIntervalMicroSeconds32 Time after which to complete the object
    75  *  @capability None
    69  *  @capability None
    76  */
    70  */
    77 EXPORT_C void CSmsuActiveBase::TimedSetActive(const TTimeIntervalMicroSeconds32& aTimeIntervalMicroSeconds32)
    71 EXPORT_C void CSmsuActiveBase::TimedSetActive(const TTimeIntervalMicroSeconds32& aTimeIntervalMicroSeconds32)
    78 	{
    72 	{
    79 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_TIMEDSETACTIVE_1, "CSmsuActiveBase::TimedSetActive(): aTimeIntervalMicroSeconds32=%d",aTimeIntervalMicroSeconds32.Int());
    73 	LOGSMSU2("CSmsuActiveBase::TimedSetActive(): aTimeIntervalMicroSeconds32=%d",
       
    74 			 aTimeIntervalMicroSeconds32.Int());
    80 
    75 
    81 	__ASSERT_DEBUG(iSmsuTimeout != NULL, SmsuPanic(ESmsuTimeoutNull));
    76 	__ASSERT_DEBUG(iSmsuTimeout != NULL, SmsuPanic(ESmsuTimeoutNull));
    82 	
    77 	
    83 	if (iSmsuTimeout != NULL)
    78 	if (iSmsuTimeout != NULL)
    84 		{
    79 		{
    94  *
    89  *
    95  *  @see TimedSetActive
    90  *  @see TimedSetActive
    96  */
    91  */
    97 EXPORT_C void CSmsuActiveBase::TimedSetActiveCancel()
    92 EXPORT_C void CSmsuActiveBase::TimedSetActiveCancel()
    98 	{
    93 	{
    99 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_TIMEDSETACTIVECANCEL_1, "CSmsuActiveBase::TimedSetActiveCancel()");
    94 	LOGSMSU1("CSmsuActiveBase::TimedSetActiveCancel()");
   100 
    95 
   101 	if (iSmsuTimeout != NULL)
    96 	if (iSmsuTimeout != NULL)
   102 		{
    97 		{
   103 		iSmsuTimeout->Cancel();
    98 		iSmsuTimeout->Cancel();
   104 		}
    99 		}
   110  *
   105  *
   111  *  @see TimedSetActive
   106  *  @see TimedSetActive
   112  */
   107  */
   113 EXPORT_C TBool CSmsuActiveBase::TimedOut() const
   108 EXPORT_C TBool CSmsuActiveBase::TimedOut() const
   114 	{
   109 	{
   115 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_TIMEDOUT_1, "CSmsuActiveBase::TimedOut()");
   110 	LOGSMSU1("CSmsuActiveBase::TimedOut()");
   116 
   111 
   117 	if (iSmsuTimeout != NULL)
   112 	if (iSmsuTimeout != NULL)
   118 		{
   113 		{
   119 		return iSmsuTimeout->TimedOut();
   114 		return iSmsuTimeout->TimedOut();
   120 		}
   115 		}
   129  *  @param aStatus Asynchronous status word of the observer
   124  *  @param aStatus Asynchronous status word of the observer
   130  *  @capability None
   125  *  @capability None
   131  */
   126  */
   132 EXPORT_C void CSmsuActiveBase::Queue(TRequestStatus& aStatus)
   127 EXPORT_C void CSmsuActiveBase::Queue(TRequestStatus& aStatus)
   133 	{
   128 	{
   134 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_QUEUE_1, "CSmsuActiveBase::Queue()");
   129 	LOGSMSU1("CSmsuActiveBase::Queue()");
   135 
   130 
   136 	__ASSERT_DEBUG(iReport==NULL, SmsuPanic(ESmsuAlreadyActive));
   131 	__ASSERT_DEBUG(iReport==NULL, SmsuPanic(ESmsuAlreadyActive));
   137 
   132 
   138 	aStatus=KRequestPending;
   133 	aStatus=KRequestPending;
   139 	iReport=&aStatus;
   134 	iReport=&aStatus;
   147  *  is then called. If, after this, the object is not active, Complete() is called.
   142  *  is then called. If, after this, the object is not active, Complete() is called.
   148  *  @capability None
   143  *  @capability None
   149  */
   144  */
   150 EXPORT_C void CSmsuActiveBase::RunL()
   145 EXPORT_C void CSmsuActiveBase::RunL()
   151 	{
   146 	{
   152 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_RUNL_1, "CSmsuActiveBase::RunL()");
   147 	LOGSMSU1("CSmsuActiveBase::RunL()");
   153 
   148 
   154 	if (iSmsuTimeout != NULL)
   149 	if (iSmsuTimeout != NULL)
   155 		{
   150 		{
   156 		iSmsuTimeout->Cancel();
   151 		iSmsuTimeout->Cancel();
   157 		}
   152 		}
   177  *  @param aStatus Active object status word
   172  *  @param aStatus Active object status word
   178  *  @capability None
   173  *  @capability None
   179  */
   174  */
   180 EXPORT_C void CSmsuActiveBase::Complete(TInt aStatus)
   175 EXPORT_C void CSmsuActiveBase::Complete(TInt aStatus)
   181 	{
   176 	{
   182 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_COMPLETE_1, "CSmsuActiveBase::Complete(): aStatus=%d", aStatus);
   177 	LOGSMSU2("CSmsuActiveBase::Complete(): aStatus=%d", aStatus);
   183 
   178 
   184 	if (iReport)
   179 	if (iReport)
   185 		{
   180 		{
   186 		DoComplete(aStatus);
   181 		DoComplete(aStatus);
   187 		User::RequestComplete(iReport, aStatus);
   182 		User::RequestComplete(iReport, aStatus);
   199  *  @return KErrNone
   194  *  @return KErrNone
   200  *  @capability None
   195  *  @capability None
   201  */
   196  */
   202 EXPORT_C TInt CSmsuActiveBase::RunError(TInt aError)
   197 EXPORT_C TInt CSmsuActiveBase::RunError(TInt aError)
   203 	{
   198 	{
   204 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_RUNERROR_1, "CSmsuActiveBase::RunError(): aError=%d", aError);
   199 	LOGSMSU2("CSmsuActiveBase::RunError(): aError=%d", aError);
   205 
   200 
   206 	__ASSERT_DEBUG(!IsActive(), User::Invariant());
   201 	__ASSERT_DEBUG(!IsActive(), User::Invariant());
   207 
   202 
   208 	Complete(aError);
   203 	Complete(aError);
   209 
   204 
   220  */
   215  */
   221 EXPORT_C void CSmsuActiveBase::CompleteMyself(TInt aStatus, TBool aSetActive /* = ETrue */)
   216 EXPORT_C void CSmsuActiveBase::CompleteMyself(TInt aStatus, TBool aSetActive /* = ETrue */)
   222     {
   217     {
   223     // Ignore in code coverage - not used within the SMS stack.
   218     // Ignore in code coverage - not used within the SMS stack.
   224     BULLSEYE_OFF
   219     BULLSEYE_OFF
   225     OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_COMPLETEMYSELF_1, "CSmsuActiveBase::CompleteMyself(): aStatus=%d, aSetActive=%d",aStatus, aSetActive);
   220     LOGSMSU3("CSmsuActiveBase::CompleteMyself(): aStatus=%d, aSetActive=%d",
       
   221              aStatus, aSetActive);
   226     
   222     
   227     // Initialise iStatus with a pending request...
   223     // Initialise iStatus with a pending request...
   228     iStatus = KRequestPending;
   224     iStatus = KRequestPending;
   229     
   225     
   230     // Set active if required...
   226     // Set active if required...
   256  *
   252  *
   257  *  @capability None
   253  *  @capability None
   258  */
   254  */
   259 EXPORT_C void CSmsuActiveBase::CompleteMyselfAfterTimeout(TInt aStatus)
   255 EXPORT_C void CSmsuActiveBase::CompleteMyselfAfterTimeout(TInt aStatus)
   260 	{
   256 	{
   261 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSUACTIVEBASE_COMPLETEMYSELFAFTERTIMEOUT_1, "CSmsuActiveBase::CompleteMyselfAfterTimeout(): aStatus=%d", aStatus);
   257 	LOGSMSU2("CSmsuActiveBase::CompleteMyselfAfterTimeout(): aStatus=%d", aStatus);
   262 
   258 
   263 	__ASSERT_DEBUG(iSmsuTimeout != NULL, SmsuPanic(ESmsuTimeoutNull));
   259 	__ASSERT_DEBUG(iSmsuTimeout != NULL, SmsuPanic(ESmsuTimeoutNull));
   264 	
   260 	
   265 	if (iSmsuTimeout != NULL  &&  iSmsuTimeout->TimedOut())
   261 	if (iSmsuTimeout != NULL  &&  iSmsuTimeout->TimedOut())
   266 		{
   262 		{