javauis/javalegacyutils/inc/mevents.h
changeset 76 4ad59aaee882
parent 69 773449708c84
child 79 2f468c1958d0
--- a/javauis/javalegacyutils/inc/mevents.h	Thu Sep 02 20:20:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
-/*
-* Copyright (c) 1999-2001 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:
-*
-*/
-
-
-#ifndef MEVENTS_H
-#define MEVENTS_H
-
-#include <jutils.h>
-
-#include "logger.h"
-
-/**
- * Callback interface for event server thread.
- */
-class MEventServer
-{
-public:
-
-    /**
-     * Event server started.
-     */
-    virtual void Started(TInt aError, RServer2 server) = 0;
-
-    /**
-     * Argument for event server thread.
-     */
-    virtual TAny* Arg() const = 0;
-};
-
-class CJavaEventServer;
-class TJavaEventServer
-{
-    friend class CJavaEventServer;
-public:
-    IMPORT_C static TJavaEventServer NewL(const TDesC& aName, TThreadFunction aServerThread=NULL, TAny* aServerArg=NULL);
-    IMPORT_C static TJavaEventServer NewL(const TDesC& aName, TThreadFunction aServerThread, TAny* aServerArg, TUint aStackSize, RAllocator* aHeap = 0);
-
-    inline TJavaEventServer()
-    {}
-    inline TJavaEventServer(TInt aServer)
-            :iServer(JavaUnhand<CJavaEventServer>(aServer))
-    {}
-    inline CJavaEventServer* operator->() const
-    {
-        return iServer;
-    }
-    static inline TInt Handle(CJavaEventServer* aServer)
-    {
-        return JavaMakeHandle(aServer);
-    }
-    inline TInt Handle() const
-    {
-        return Handle(iServer);
-    }
-    IMPORT_C void Shutdown();
-private:
-    inline TJavaEventServer(CJavaEventServer* aServer);
-private:
-    CJavaEventServer* iServer;
-};
-
-#pragma warning(disable: 4786) // Truncated browser info for long mangled names
-
-class CJavaEventBase;
-class CJavaEventSourceBase : public CBase
-{
-    enum {KMaxExecuteArgumentSize=32};
-    static inline void CallCheck(TInt aSize)
-    {       // fault at run time for invalid JpServer calls
-#pragma warning(disable: 4127)
-        if (aSize>KMaxExecuteArgumentSize) Panic(aSize);
-#pragma warning(default: 4127)
-    }
-public:
-    inline TInt Handle() const
-    {
-        return JavaMakeHandle(this);
-    }
-    inline jweak Peer() const
-    {
-        return iPeer;
-    }
-    inline TJavaEventServer Server() const
-    {
-        return iServer;
-    }
-    inline void Dispose(JNIEnv& aJni)
-    {
-        iDead=ETrue;
-        Close(aJni);
-    }
-    inline TBool IsDisposed() const
-    {
-        return iDead;
-    }
-    TBool Open();
-    IMPORT_C void Close(JNIEnv& aJni);
-
-
-    void OnVmClose();
-
-    template <class R,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
-    inline R Execute(R(*aFuncL)(T1,T2,T3,T4,T5,T6,T7,T8),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6,T7 aT7,T8 aT8)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6)+sizeof(T7)+sizeof(T8));
-        return (R)DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6,aT7,aT8);
-    }
-    template <class R,class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-    inline R Execute(R(*aFuncL)(T1,T2,T3,T4,T5,T6,T7),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6,T7 aT7)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6)+sizeof(T7));
-        return (R)DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6,aT7);
-    }
-    template <class R,class T1,class T2,class T3,class T4,class T5,class T6>
-    inline R Execute(R(*aFuncL)(T1,T2,T3,T4,T5,T6),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6));
-        return (R)DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6);
-    }
-    template <class R,class T1,class T2,class T3,class T4,class T5>
-    inline R Execute(R(*aFuncL)(T1,T2,T3,T4,T5),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5));
-        return (R)DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5);
-    }
-    template <class R,class T1,class T2,class T3,class T4>
-    inline R Execute(R(*aFunc)(T1,T2,T3,T4),T1 aT1,T2 aT2,T3 aT3,T4 aT4)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4));
-        return (R)DoExecute((TAny*)aFunc,aT1,aT2,aT3,aT4);
-    }
-    template <class R,class T1,class T2,class T3>
-    inline R Execute(R(*aFunc)(T1,T2,T3),T1 aT1,T2 aT2,T3 aT3)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3));
-        return (R)DoExecute((TAny*)aFunc,aT1,aT2,aT3);
-    }
-    template <class R,class T1,class T2>
-    inline R Execute(R(*aFunc)(T1,T2),T1 aT1,T2 aT2)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2));
-        return (R)DoExecute((TAny*)aFunc,aT1,aT2);
-    }
-    template <class R,class T1>
-    inline R Execute(R(*aFunc)(T1),T1 aT1)
-    {
-        CallCheck(sizeof(T1));
-        return (R)DoExecute((TAny*)aFunc,aT1);
-    }
-    template <class R>
-    inline R Execute(R(*aFunc)())
-    {
-        return (R)DoExecute((TAny*)aFunc);
-    }
-
-    template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-    inline void ExecuteV(void (*aFuncL)(T1,T2,T3,T4,T5,T6,T7),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6,T7 aT7)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6)+sizeof(T7));
-        DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6,aT7);
-    }
-    template <class T1,class T2,class T3,class T4,class T5,class T6>
-    inline void ExecuteV(void (*aFuncL)(T1,T2,T3,T4,T5,T6),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6));
-        DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6);
-    }
-    template <class T1,class T2,class T3,class T4,class T5>
-    inline void ExecuteV(void (*aFuncL)(T1,T2,T3,T4,T5),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5));
-        DoExecute((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5);
-    }
-    template <class T1,class T2,class T3,class T4>
-    inline void ExecuteV(void (*aFunc)(T1,T2,T3,T4),T1 aT1,T2 aT2,T3 aT3,T4 aT4)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4));
-        DoExecute((TAny*)aFunc,aT1,aT2,aT3,aT4);
-    }
-    template <class T1,class T2,class T3>
-    inline void ExecuteV(void (*aFunc)(T1,T2,T3),T1 aT1,T2 aT2,T3 aT3)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3));
-        DoExecute((TAny*)aFunc,aT1,aT2,aT3);
-    }
-    template <class T1,class T2>
-    inline void ExecuteV(void (*aFunc)(T1,T2),T1 aT1,T2 aT2)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2));
-        DoExecute((TAny*)aFunc,aT1,aT2);
-    }
-    template <class T1>
-    inline void ExecuteV(void (*aFunc)(T1),T1 aT1)
-    {
-        CallCheck(sizeof(T1));
-        DoExecute((TAny*)aFunc,aT1);
-    }
-    inline void ExecuteV(void (*aFunc)())
-    {
-        DoExecute((TAny*)aFunc);
-    }
-
-    template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3,T4,T5,T6,T7,T8,T9),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6,T7 aT7,T8 aT8,T9 aT9)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6)+sizeof(T7)+sizeof(T8)+sizeof(T9));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6,aT7,aT8,aT9);
-    }
-    template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3,T4,T5,T6,T7,T8),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6,T7 aT7,T8 aT8)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6)+sizeof(T7)+sizeof(T8));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6,aT7,aT8);
-    }
-    template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3,T4,T5,T6,T7),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6,T7 aT7)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6)+sizeof(T7));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6,aT7);
-    }
-    template <class T1,class T2,class T3,class T4,class T5,class T6>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3,T4,T5,T6),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5,T6 aT6)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5)+sizeof(T6));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5,aT6);
-    }
-    template <class T1,class T2,class T3,class T4,class T5>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3,T4,T5),T1 aT1,T2 aT2,T3 aT3,T4 aT4,T5 aT5)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4)+sizeof(T5));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3,aT4,aT5);
-    }
-    template <class T1,class T2,class T3,class T4>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3,T4),T1 aT1,T2 aT2,T3 aT3,T4 aT4)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3)+sizeof(T4));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3,aT4);
-    }
-    template <class T1,class T2,class T3>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2,T3),T1 aT1,T2 aT2,T3 aT3)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2)+sizeof(T3));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2,aT3);
-    }
-    template <class T1,class T2>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1,T2),T1 aT1,T2 aT2)
-    {
-        CallCheck(sizeof(T1)+sizeof(T2));
-        return DoExecuteTrap((TAny*)aFuncL,aT1,aT2);
-    }
-    template <class T1>
-    inline TInt ExecuteTrap(void (*aFuncL)(T1),T1 aT1)
-    {
-        CallCheck(sizeof(T1));
-        return DoExecuteTrap((TAny*)aFuncL,aT1);
-    }
-    inline int ExecuteTrap(void (*aFuncL)())
-    {
-        return DoExecuteTrap((TAny*)aFuncL);
-    }
-protected:
-    IMPORT_C CJavaEventSourceBase();
-    IMPORT_C ~CJavaEventSourceBase();
-    IMPORT_C void ConstructL(JNIEnv& aJni, jobject aPeer,TJavaEventServer aServer);
-
-    IMPORT_C TBool DoPostEvent(CJavaEventBase* aEvent, TInt aPriority);
-
-    IMPORT_C virtual TBool CheckEvent(CJavaEventBase* aEvent);
-private:
-    IMPORT_C virtual void FinalizeSvr();
-
-    IMPORT_C virtual void FinalizeJni(JNIEnv& aJni);
-
-    IMPORT_C TInt DoExecute(TAny* aFunc,...);
-    IMPORT_C TInt DoExecuteTrap(TAny* aFuncL,...);
-    static void DoFinalize(CJavaEventSourceBase* aThis);
-
-    IMPORT_C static void Panic(TInt aPanic);
-public:
-    class TConstructorBase
-    {
-    public:
-        inline TInt GetHandle()
-        {
-            CleanupStack::Pop();
-            return iObject->Handle();
-        }
-    protected:
-        IMPORT_C TConstructorBase(CJavaEventSourceBase* aObject, JNIEnv& aJni);
-    private:
-        static void Disposer(TAny* aThis);
-    protected:
-        CJavaEventSourceBase* iObject;
-        JNIEnv& iJni;
-    };
-private:
-    jweak iPeer;
-    TJavaEventServer iServer;
-    TInt iRef;
-    TBool iDead;
-};
-
-#pragma warning(default: 4786)
-
-class CJavaEventBase : public CBase
-{
-    friend class CJavaEventSourceBase;
-    friend class CJavaEventServer;
-
-public:
-    enum {EEventPriority = 0, ENotifyPriority = 1, ELastPriority = 1};
-    enum TDisposability { EDisposableEvent, EReusableEvent };
-public:
-    inline TBool IsDisposable() const
-    {
-        return iDisposableState == EDisposableEvent;
-    }
-protected:
-    CJavaEventBase(TDisposability aDisposable)
-            : iDisposableState(aDisposable) {}
-
-public:
-    inline CJavaEventSourceBase& Object() const
-    {
-        return *iObject;
-    }
-
-    void Run(JNIEnv& aJni);
-
-private:
-    virtual void Dispatch(JNIEnv& aJni) =0;
-    TSglQueLink iLink;
-    CJavaEventSourceBase* iObject;
-    TDisposability iDisposableState;
-};
-
-template <class T>
-class CJavaEvent : public CJavaEventBase
-{
-protected:
-    CJavaEvent(TDisposability aDisposable = EDisposableEvent)
-            : CJavaEventBase(aDisposable) {}
-    inline T& Object() const
-    {
-        return static_cast<T&>(CJavaEventBase::Object());
-    }
-};
-
-template <class T>
-class CJavaEventSource : public CJavaEventSourceBase
-{
-protected:
-    class TConstructor : public CJavaEventSourceBase::TConstructorBase
-    {
-    public:
-        inline TConstructor(T* aObject,JNIEnv& aJni)
-                :TConstructorBase(aObject,aJni)
-        {}
-        inline TConstructor(JNIEnv& aJni)
-                :TConstructorBase(new(ELeave) T,aJni)
-        {}
-        inline T* operator->() const
-        {
-            return static_cast<T*>(iObject);
-        }
-    };
-public:
-    inline static T& Unhand(TInt aHandle)
-    {
-        return *JavaUnhand<T>(aHandle);
-    }
-    inline TBool PostEvent(CJavaEvent<T>* aEvent, TInt aPriority = CJavaEventBase::EEventPriority)
-    {
-        return DoPostEvent(aEvent, aPriority);
-    }
-    static TInt New(JNIEnv& aJni,jobject aPeer,TJavaEventServer aServer)
-    {
-        TRAPD(h,TConstructor self(aJni); self->ConstructL(aJni,aPeer,aServer); h=self.GetHandle());
-        return h;
-    }
-};
-
-#endif // MEVENTS_H