javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtserver.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 09 Jun 2010 09:34:07 +0300
branchRCL_3
changeset 19 71c436fe3ce0
parent 14 04becd199f91
permissions -rw-r--r--
Revision: v2.1.28 Kit: 2010123

/*******************************************************************************
 * Copyright (c) 2005, 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Nokia Corporation - S60 implementation
 *******************************************************************************/


#ifndef SWTSERVER_H
#define SWTSERVER_H


#include <e32base.h>
#include "eswt.h"


/**
 * CSwtServer
 * Server to execute methods within the UI thread
 * @lib eswt
 */
NONSHARABLE_CLASS(CSwtServer)
        : public CServer2
{
// Data types
public:
    enum TAction
    {
        EExecute = 0
    };
private:
    class CSwtSession;

// Methods
public:
    IMPORT_C static CSwtServer* NewL(TAny* aObj);
    IMPORT_C virtual ~CSwtServer();

    static TVersion     Version();

private:
    CSwtServer();

// From CServer2
protected:
    TInt RunError(TInt aError);

private:
    CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
};


NONSHARABLE_CLASS(CSwtServer::CSwtSession)
        : public CSession2
{
public:
    inline CSwtSession(CSwtServer& aServer);

private:
    TInt DoServiceL(TAction aAction, const TAny* aParam);

// From CSession2
public:
    void ServiceL(const RMessage2& aMessage);

private:
    CSwtServer& iServer;
};


#endif // SWTSERVER_H