diff -r e5618cc85d74 -r 6c158198356e javamanager/javainstaller/iconsizenotifplugin/src/iconsizenotifier.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javainstaller/iconsizenotifplugin/src/iconsizenotifier.cpp Thu Aug 19 09:48:13 2010 +0300 @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2010 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 +#include +#include +#include + +#include "iconsizenotifier.h" +#include "iconsizeutils.h" + +const TUid KUidScreenOutput = { 0x10009D48 }; + +CIconSizeNotifier* CIconSizeNotifier::NewLC() +{ + CIconSizeNotifier* self = new(ELeave) CIconSizeNotifier(); + CleanupStack::PushL(self); + self->ConstructL(); + return self; +} + +CIconSizeNotifier::~CIconSizeNotifier() +{ +} + +CIconSizeNotifier::CIconSizeNotifier() +{ +} + +void CIconSizeNotifier::ConstructL() +{ +} + +void CIconSizeNotifier::Release() +{ + delete this; +} + +CIconSizeNotifier::TNotifierInfo CIconSizeNotifier::RegisterL() +{ + iInfo.iUid = KUidIconSizeNotifPlugin; + iInfo.iChannel = KUidScreenOutput; + iInfo.iPriority = ENotifierPriorityHigh; + return iInfo; +} + +CIconSizeNotifier::TNotifierInfo CIconSizeNotifier::Info() const +{ + return iInfo; +} + +void CIconSizeNotifier::StartL(const TDesC8& /*aBuffer*/, TInt aReplySlot, const RMessagePtr2& aMessage) +{ + TPckgBuf res(IconSizeUtils::GetIconSizes()); + aMessage.WriteL(aReplySlot, res); + aMessage.Complete(KErrNone); +} + +TPtrC8 CIconSizeNotifier::StartL(const TDesC8& /*aBuffer*/) +{ + return KNullDesC8(); +} + +void CIconSizeNotifier::Cancel() +{ +} + +TPtrC8 CIconSizeNotifier::UpdateL(const TDesC8& /*aBuffer*/) +{ + return KNullDesC8(); +} + +void CIconSizeNotifier::UpdateL(const TDesC8& /*aBuffer*/, TInt /*aReplySlot*/, const RMessagePtr2& aMessage) +{ + aMessage.Complete(KErrNotSupported); +} + +void CreateNotifiersL(CArrayPtrFlat& aNotifiers) +{ + CIconSizeNotifier* notifier1 = CIconSizeNotifier::NewLC(); + aNotifiers.AppendL(notifier1); + CleanupStack::Pop(notifier1); +} + +CArrayPtr* NotifierArray() +{ + CArrayPtrFlat* notifiers = new CArrayPtrFlat(1); + if (notifiers) + { + TRAPD(err, CreateNotifiersL(*notifiers)); + if (err) + { + TInt count = notifiers->Count(); + while (count--) + { + (*notifiers)[count]->Release(); + } + delete notifiers; + notifiers = NULL; + } + } + return notifiers; +} + +TInt CIconSizeNotifier::NotifierCapabilites() +{ + return ENoSpecialCapabilities; +} + +// ECom plugin entry point +const TImplementationProxy ImplementationTable[] = +{ + IMPLEMENTATION_PROXY_ENTRY(0x101FD68A, NotifierArray) +}; + +EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) +{ + aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); + return ImplementationTable; +} +