williamr@2: // Copyright (c) 2000-2009 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: williamr@2: // MsvSysAgentCondAction.H williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __MSVSYSAGENTCONDACTION_H__ williamr@2: #define __MSVSYSAGENTCONDACTION_H__ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #include williamr@2: williamr@4: // williamr@2: // williamr@2: // System Agent-related Class Declarations williamr@2: // williamr@4: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: Defines a condition which a Publish and Subscribe Uid must satisfy. williamr@2: williamr@2: @see RProperty williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class TMsvCondition williamr@2: { williamr@2: public: williamr@2: /** williamr@2: An enumeration defining the type of test to be made against a Publish williamr@2: and Subscribe property. williamr@2: */ williamr@2: enum TMsvSchSendConditionType williamr@2: { williamr@2: /** Tests that a value is equal to a state variable value. */ williamr@2: EMsvSchSendEquals, williamr@2: /** Tests that a value is unequal to a state variable value. */ williamr@2: EMsvSchSendNotEquals, williamr@2: /** Tests that a value is greater than a state variable value. */ williamr@2: EMsvSchSendGreaterThan, williamr@2: /** Tests that a value is less than a state variable value. */ williamr@2: EMsvSchSendLessThan williamr@2: }; williamr@2: williamr@2: public: williamr@2: /** second UID of the process which set the condition*/ williamr@2: TUid iVariable; williamr@2: /** Integer state of corresponding P&S variable to be tested against*/ williamr@2: TInt iState; williamr@2: /** type of test to be performed */ williamr@2: TMsvSchSendConditionType iType; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: Schedule Send condition must be satisfied before a message sending attempt. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: class TMsvSysAgentConditionAction williamr@2: { williamr@2: public: williamr@2: IMPORT_C TMsvSysAgentConditionAction(); williamr@2: williamr@2: williamr@2: /** Condition to meet. */ williamr@2: TMsvCondition iCondition; williamr@2: williamr@2: /** Error action to use. */ williamr@2: TMsvSendErrorAction iErrorAction; williamr@2: williamr@2: /** Default error action. */ williamr@2: TBool iUseDefaultSysAgentAction; williamr@2: williamr@2: private: williamr@2: }; williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: Defines an array of schedule send conditions that must be satisfied before a message sending attempt. williamr@2: williamr@2: @see TMsvSysAgentConditionAction williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: class CMsvSysAgentActions : public CArrayFixFlat williamr@2: { williamr@2: public: williamr@2: IMPORT_C CMsvSysAgentActions(); williamr@2: IMPORT_C ~CMsvSysAgentActions(); williamr@2: williamr@2: williamr@2: IMPORT_C TBool ConditionsMetL(TMsvSendErrorAction& aErrorAction); williamr@2: williamr@2: /** Default send error action. */ williamr@2: TMsvSendErrorAction iDefault; williamr@2: williamr@2: private: williamr@2: williamr@2: williamr@2: void GetConditionVariablesL(CArrayFix& aUids) const; williamr@2: TBool CheckStates(const CArrayFix& aStates, TMsvSendErrorAction& aErrorAction) const; williamr@2: TBool ConditionOK(const TMsvSysAgentConditionAction& aCondAction, const TInt aState) const; williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // __MSVSYSAGENTCONDACTION_H__