Source: kjavaappletserver.h

# Source: kjavaappletserver.h |
Annotated List
Files
Globals
Hierarchy
Index

    // -*- c++ -*-

    /* This file is part of the KDE project
     *
     * Copyright (C) 2000 Richard Moore
     *               2000 Wynn Wilkes
     *
     * This library is free software; you can redistribute it and/or
     * modify it under the terms of the GNU Library General Public
     * License as published by the Free Software Foundation; either
     * version 2 of the License, or (at your option) any later version.
     *
     * This library is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     * Library General Public License for more details.
     *
     * You should have received a copy of the GNU Library General Public License
     * along with this library; see the file COPYING.LIB.  If not, write to
     * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
     * Boston, MA 02111-1307, USA.
     */

    #ifndef KJAVAAPPLETSERVER_H
    #define KJAVAAPPLETSERVER_H

    #include "kjavaprocess.h"
    #include
    #include

    /**
     * @short Communicates with a KJAS server to display and control Java applets.
     *
     * @version $Id: kjavaappletserver.h,v 1.21.2.1 2003/05/06 20:56:39 vriezen Exp $
     * @author Richard J. Moore, rich@kde.org
     */

    class KJavaAppletContext;
    class KJavaAppletServerPrivate;

    class KJavaAppletServer : public QObject
    {
    Q_OBJECT

    public:
        /**
         * Create the applet server.  These shouldn't be used directly,
         * use allocateJavaServer instead
         */
        KJavaAppletServer();
        ~KJavaAppletServer();

        /**
         * A factory method that returns the default server. This is the way this
         * class is usually instantiated.
         */
        static KJavaAppletServer *allocateJavaServer();

        /**
         * When you are done using your reference to the AppletServer,  you must
         * dereference it by calling freeJavaServer().
         */
        static void freeJavaServer();

        /**
         * This allows the KJavaAppletWidget to display some feedback in a QLabel
         * while the applet is being loaded.  If the java process could not be
         * started, an error message is displayed instead.
         */
        static QString getAppletLabel();

        /**
         * Create an applet context with the specified id.
         */
        void createContext( int contextId, KJavaAppletContext* context );

        /**
         * Destroy the applet context with the specified id. All the applets in the
         * context will be destroyed as well.
         */
        void destroyContext( int contextId );

        /**
         * Create an applet in the specified context with the specified id. The applet
         * name, class etc. are specified in the same way as in the HTML APPLET tag.
         */
        bool createApplet( int contextId, int appletId,
                           const QString & name, const QString & clazzName,
                           const QString & baseURL, const QString & user,
                           const QString & password, const QString & authname,
                           const QString & codeBase, const QString & jarFile,
                           QSize size, const QMap& params,
                           const QString & windowTitle );

        /**
         * This should be called by the KJavaAppletWidget
         */
        void initApplet( int contextId, int appletId );

        /**
         * Destroy an applet in the specified context with the specified id.
         */
        void destroyApplet( int contextId, int appletId );

        /**
         * Start the specified applet.
         */
        void startApplet( int contextId, int appletId );

        /**
         * Stop the specified applet.
         */
        void stopApplet( int contextId, int appletId );

        /**
         * Send data we got back from a KJavaDownloader back to the appropriate
         * class loader.
         * (This is currently unimplemented on the java side.
         */
        void sendURLData( const QString& loaderID, const QString& url,
                          const QByteArray& data );

        /**
         * Shut down the KJAS server.
         */
        void quit();

        QString appletLabel();

        bool getMember(int contextId, int appletId, const unsigned long, const QString &, int &, unsigned long &, QString &);
        bool putMember(int contextId, int appletId, const unsigned long, const QString &, const QString &);
        bool callMember(int contextId, int appletId, const unsigned long, const QString &, const QStringList &, int &, unsigned long &, QString &);
        void derefObject(int contextId, int appletId, const unsigned long id);
    protected:
        void setupJava( KJavaProcess* p );

        KJavaProcess* process;

    protected slots:
        void slotJavaRequest( const QByteArray& qb );
        void checkShutdown();

    private:
        KJavaAppletServerPrivate* d;

    };

    #endif // KJAVAAPPLETSERVER_H

Generated by: root on macppc.ports.openbsd.org on Sat Sep 6 10:37:53 2003, using kdoc 2.0a54.