commonappservices/alarmserver/Test/ConsoleANTestClient.cpp
changeset 0 2e3d3ce01487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Test/ConsoleANTestClient.cpp	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,379 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <e32base.h>
+#include <asaltdefs.h>
+#include "consoleantestclient.h"
+
+EXPORT_C RANTestClient::RANTestClient()
+	: iAlarmPtr(0, 0, 0),
+	iSoundStartIdPtr(0, 0, 0),
+	iSoundStopIdPtr(0, 0, 0),
+	iVisibleIdPtr(0, 0, 0),
+	iVisibleBoolPtr(0, 0, 0),
+	iStateIdPtr(0, 0, 0),
+	iStateIntPtr(0, 0, 0),
+	iDeleteIdPtr(0, 0, 0)
+	{
+	}
+
+/**
+Connect the the Console Alarm Alert Server. The Console Alarm Alert Server must be running
+otherwise the method will fail.
+
+@return KErrNone on succcess, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::Connect()
+	{
+	const TVersion KVersion(KASAltVersionMajor, KASAltVersionMinor, KASAltVersionBuild);
+	return CreateSession(KAlarmAlertServerName, KVersion);
+	}
+
+/**
+Acknowledges the latest notifying alarm. Do not use this method if Console Alarm Alert Server 
+is in multiple alarm mode.
+*/
+
+EXPORT_C void RANTestClient::AcknowledgeAlarm()
+	{
+	SendReceive(EASAltTestOpCodeAcknowledgeAlarm);
+	}
+
+/**
+Retrieves any data attached to the latest notifying alarm. Do not use this method if Console Alarm Alert Server 
+is in multiple alarm mode.
+@param buf buffer that will contain the data. This buffer must be big enough to contain all the data in the attachement.
+*/
+
+EXPORT_C void RANTestClient::GetAttachment(TDes8& buf)
+	{
+	TIpcArgs args(buf.MaxLength(),&buf);
+	SendReceive(EASAltTestOpCodeGetAttachment, args);
+	}
+
+/**
+Queries wether or not Console Alarm Alert Server is outputting to the console. Do not use this method if Console Alarm Alert Server 
+is in multiple alarm mode.
+
+@return ETrue if outputting, EFalse if not.
+*/
+
+EXPORT_C TBool RANTestClient::IsNotifying()
+	{
+	TPckgBuf<TBool> package;
+	TIpcArgs args(&package);
+	SendReceive(EASAltTestOpCodeGetIsNotifying, args);
+
+	return package();
+	}
+
+/**
+Switches the Console Alarm Alert Server into extended mode giving access to the new functionality.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::SetExtendedMode() const
+	{
+	return Send(EASAltTestOpCodeSetExtendedMode);
+	}
+
+/**
+Returns the Console Alarm Alert Server from extended mode.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::UnsetExtendedMode() const
+	{
+	return Send(EASAltTestOpCodeUnsetExtendedMode);
+	}
+
+/**
+Sets the time returned by the Console Alarm Alert Server when sent EASAltOpCodeGetUserTime.
+
+@param aTime, new time to be set.
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::SetUserTime(const TTime& aTime) const
+	{
+	TPckgC<TTime> pTime(aTime);
+	TIpcArgs args(&pTime);
+	
+	return SendReceive(EASAltTestOpCodeSetUserTime, args);
+ 	}
+
+/**
+Sets the value returned by the Console Alarm Alert Server when sent EASAltOpCodeGetMaxAlarms. 
+If this is not set it defaults to 1. The Alarm Server will query this value when connecting to the Console Alarm Alert Server, if you 
+want it set differently you need to call this method before the Alarm Server is started.
+
+@param aMax, new max alarms value to be set.
+@return KErrNone on success, a system wide error code otherwise.
+*/
+ 	
+EXPORT_C TInt RANTestClient::SetMaxAlarms(const TInt aMax) const
+	{
+	TPckgC<TInt> pMax(aMax);
+	TIpcArgs args(&pMax);
+	
+	return SendReceive(EASAltTestOpCodeSetMaxAlarms, args);
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeSetAlarm is received by the Console Alarm Alert Server.
+
+@param aAlarm, to be filled in with the data of the alarm attached to the message.
+@param aFullname, the owner of the alarm.
+@param aSink, any data attached to the alarm. This descriptor must be big enough to contain all data or no data will be returned.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetAlarm is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::NotifyOnAlarm(TASShdAlarm& aAlarm, TFullName& aFullname, TDes8& aSink, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iAlarmPtr, &aFullname, &aSink, 0);
+
+	iAlarmPtr.Set(reinterpret_cast<TUint8*>(&aAlarm), sizeof(TASShdAlarm), sizeof(TASShdAlarm));
+		
+	SendReceive(EASAltTestOpCodeNotifyOnAlarm, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeSetAlarm is received by the Console Alarm Alert Server.
+
+@param aAlarm, to be filled in with the data of the alarm attached to the message.
+@param aFullname, the owner of the alarm.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetAlarm is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::NotifyOnAlarm(TASShdAlarm& aAlarm, TFullName& aFullname, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iAlarmPtr, &aFullname, 0, 0);
+
+	iAlarmPtr.Set(reinterpret_cast<TUint8*>(&aAlarm), sizeof(TASShdAlarm), sizeof(TASShdAlarm));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnAlarm, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeSetAlarm is received by the Console Alarm Alert Server.
+
+@param aAlarm, to be filled in with the data of the alarm attached to the message.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetAlarm is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::NotifyOnAlarm(TASShdAlarm& aAlarm, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iAlarmPtr, 0, 0, 0);
+
+	iAlarmPtr.Set(reinterpret_cast<TUint8*>(&aAlarm), sizeof(TASShdAlarm), sizeof(TASShdAlarm));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnAlarm, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeStartPlayingSound is received by the Console Alarm Alert Server.
+
+@param aId, id of alarm attached to the message.
+@param aFilename, filename of sound to play. This descriptor must be big enough to contain the entire filename or no filename will be returned.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeStartPlayingSound is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::NotifyOnSoundStart(TAlarmId& aId, TDes& aFilename, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iSoundStartIdPtr, &aFilename);
+	iSoundStartIdPtr.Set(reinterpret_cast<TUint8*>(&aId), sizeof(TAlarmId), sizeof(TAlarmId));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnSoundStart, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeStopPlayingSound is received by the Console Alarm Alert Server.
+
+@param aId, id of alarm attached to the message.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeStopPlayingSound is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::NotifyOnSoundStop(TAlarmId& aId, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iSoundStopIdPtr);
+	iSoundStopIdPtr.Set(reinterpret_cast<TUint8*>(&aId), sizeof(TAlarmId), sizeof(TAlarmId));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnSoundStop, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeVisible is received by the Console Alarm Alert Server.
+
+@param aId, id of alarm attached to the message.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeVisible is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+		
+EXPORT_C TInt RANTestClient::NotifyOnVisible(TAlarmId& aId, TBool& aVisible, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iVisibleIdPtr, &iVisibleBoolPtr);
+	iVisibleIdPtr.Set(reinterpret_cast<TUint8*>(&aId), sizeof(TAlarmId), sizeof(TAlarmId));
+	iVisibleBoolPtr.Set(reinterpret_cast<TUint8*>(&aVisible), sizeof(TBool), sizeof(TBool));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnVisible, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeSetState is received by the Console Alarm Alert Server.
+
+@param aId, id of alarm attached to the message.
+@param aState, new state of alarm.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetState is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::NotifyOnState(TAlarmId& aId, TInt& aState, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iStateIdPtr, &iStateIntPtr);
+	iStateIdPtr.Set(reinterpret_cast<TUint8*>(&aId), sizeof(TAlarmId), sizeof(TAlarmId));
+	iStateIntPtr.Set(reinterpret_cast<TUint8*>(&aState), sizeof(TInt), sizeof(TInt));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnState, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Asynchronously notifies the client when a EASAltOpCodeSetState is received by the Console Alarm Alert Server.
+
+@param aId, id of alarm attached to the message.
+@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetState is received.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::NotifyOnDelete(TAlarmId& aId, TRequestStatus& aStatus)
+	{
+	TIpcArgs args(&iDeleteIdPtr);
+	iDeleteIdPtr.Set(reinterpret_cast<TUint8*>(&aId), sizeof(TAlarmId), sizeof(TAlarmId));
+	
+	SendReceive(EASAltTestOpCodeNotifyOnDelete, args, aStatus);
+	return KErrNone;
+	}
+
+/**
+Instructs the Console Alarm Alert Server to snooze the alarm for the specified amount of time.
+
+@param aId, id of alarm to snooze. This doesn't have to be a valid id.
+@param aTime, time to snooze to in UTC.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::SnoozeAlarm(const TAlarmId& aId, const TTime& aTime) const
+	{
+	TPckgC<TTime> pTime(aTime);
+	TIpcArgs args(aId, &pTime);
+	return SendReceive(EASAltTestOpCodeResponseSnoozeAlarm, args);
+	}
+
+/**
+Instructs the Console Alarm Alert Server to silence the alarm.
+
+@param aId, id of alarm to silence. This doesn't have to be a valid id.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::SilenceAlarm(const TAlarmId& aId) const
+	{
+	TIpcArgs args(aId);
+	return SendReceive(EASAltTestOpCodeResponseSilenceAlarm, args);
+	}
+
+/**
+Instructs the Console Alarm Alert Server to acknowledge the alarm.
+
+@param aId, id of alarm to acknowledge. This doesn't have to be a valid id.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::AcknowledgeAlarm(const TAlarmId& aId) const
+	{
+	TIpcArgs args(aId);
+	return SendReceive(EASAltTestOpCodeResponseAcknowledgeAlarm, args);
+	}
+
+/**
+Instructs the Console Alarm Alert Server to acknowledge all currently notifying alarms.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::AcknowledgeAll() const
+	{
+	return SendReceive(EASAltTestOpCodeResponseAcknowledgeAll);
+	}
+
+/**
+Instructs the Console Alarm Alert Server to silence the alarm.
+
+@param aId, id of alarm to silence. This doesn't have to be a valid id.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+	
+EXPORT_C TInt RANTestClient::PauseSoundForAlarm(const TAlarmId& aId, const TTime& aTime) const
+	{
+	TPckgC<TTime> pTime(aTime);
+	TIpcArgs args(aId, &pTime);
+	
+	return SendReceive(EASAltTestOpCodeResponsePauseSound, args);
+	}
+
+/**
+Cancels all outstanding notifications for this session.
+
+@return KErrNone on success, a system wide error code otherwise.
+*/
+
+EXPORT_C TInt RANTestClient::CancelNotifications()
+	{
+	return Send(EASAltTestOpCodeCancelNotifications);
+	}
+
+
+#ifndef EKA2
+GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
+	{
+	return KErrNone;
+	}
+#endif