Package org.itsnat.impl.core.doc

Examples of org.itsnat.impl.core.doc.ItsNatStfulDocumentImpl


    }

    public void registerClientDocumentStfulOwner(ClientDocumentStfulOwnerImpl clientDoc)
    {
        ClientDocumentStfulOwnerImpl clientRes;
        ItsNatStfulDocumentImpl docRes;

        ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
        synchronized(ownerClientsById)
        {
            clientRes = ownerClientsById.put(clientDoc);
            docRes = docsById.put(itsNatDoc);
        }
View Full Code Here


        if (docRes != null) throw new ItsNatException("INTERNAL ERROR");
    }

    public void unregisterClientDocumentStfulOwner(ClientDocumentStfulOwnerImpl clientDoc)
    {
        ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
        synchronized(ownerClientsById)
        {
            ownerClientsById.remove(clientDoc);
            docsById.remove(itsNatDoc);
        }
View Full Code Here

    public void registerClientDocumentAttachedClient(ClientDocumentAttachedClientImpl clientDoc)
    {
        addClientDocumentAttachedClient(clientDoc); // Sujeta el objeto, si ya fue registrado dar� error

        ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
        itsNatDoc.addClientDocumentAttachedClient(clientDoc); // permite que se notifiquen los cambios
    }
View Full Code Here

        clientDoc.setInvalid(); // Env�a el stop al cliente, si ya es inv�lido no hace nada

        boolean res = removeClientDocumentAttachedClient(clientDoc);
        if (res) // Si res es falso es que ya se desregistr�, pues aqu� hay que evitar hacerlo varias veces
        {
            ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
            itsNatDoc.removeClientDocumentAttachedClient(clientDoc); // El documento no lo retiene pero as� se quita expl�citamente
        }
    }
View Full Code Here

                ClientDocumentStfulOwnerImpl clientDoc = clientOwnerList[i];
                long lastRequestTime = clientDoc.getLastRequestTime()// No hace falta sincronizar
                long interval = currentTime - lastRequestTime;
                if (interval > maxInactiveInterval)
                {
                    ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument()// No hace falta sincronizar
                    synchronized(itsNatDoc) // No es necesario sincronizar los padres pues esta acci�n s�lo afecta a este documento
                    {
                        clientDoc.setInvalid();
                    }
                }
                else
                {
                    // Es posible que haya clientes de control remoto zombies asociados al documento de este cliente y que no pertenezcan
                    // a esta sesi�n, es posible que el usuario cerrara el cliente control remoto
                    // pero el navegador no notificara este cierre (ocurre en algunos), si el usuario sigue
                    // activo en otra p�gina la sesi�n seguir� viva por lo que el cliente zombie seguir�
                    // recibiendo c�digo JavaScript indefinidamente.
                    // Por tanto los intentamos limpiar aqu�:
                    ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument()// No hace falta sincronizar
                    synchronized(itsNatDoc) // No es necesario sincronizar los padres pues esta acci�n s�lo afecta a este documento
                    {
                        if (itsNatDoc.hasClientDocumentAttachedClient())
                        {
                            ClientDocumentAttachedClientImpl[] clientAttachList = itsNatDoc.getClientDocumentAttachedClientArray();
                            for(int j = 0; j < clientAttachList.length; j++)
                            {
                                ClientDocumentAttachedClientImpl clientDocAttached = clientAttachList[j];
                                ItsNatSessionImpl attachedSession = clientDocAttached.getItsNatSessionImpl();
                                if (attachedSession == this) continue; // No merece la pena, se procesar� despu�s
View Full Code Here

        long lastRequestTime = clientDoc.getLastRequestTime()// No hace falta sincronizar
        long interval = currentTime - lastRequestTime;
        if (interval > maxInactiveInterval)
        {
            ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
            synchronized(itsNatDoc) // No es necesario sincronizar los padres pues esta acci�n s�lo afecta a este documento
            {
                clientDoc.invalidateAndUnregister(); // Desregistra de la sesi�n que puede no ser esta
            }
        }
View Full Code Here

            // de la p�gina la llamada cleanItsNatStfulDocument no hace nada
            // para que el destino pueda hacer pop al referrer
            // por lo que es posible que nadie haya querido el referrer
            // y haya quedado indefinidamente con una referencia strong.

            ItsNatStfulDocumentImpl itsNatDocRef = referer.getItsNatStfulDocument();
            if (itsNatDocRef != null)
            {
                ClientDocumentStfulOwnerImpl clientRef = itsNatDocRef.getClientDocumentStfulOwner()// No hace falta sincronizar
                long lastRequestTime = clientRef.getLastRequestTime()// No hace falta sincronizar
                long interval = currentTime - lastRequestTime;
                if (interval > maxInactiveInterval)
                    referer.popItsNatStfulDocument(); // Lo quitamos
            }
View Full Code Here

                // Invalidamos los que llevan m�s tiempo sin usar
                Arrays.sort(clients,COMPARATOR_STFUL_OWNER);
                for(int i = 0; i < excess; i++)
                {
                    ClientDocumentStfulOwnerImpl clientDoc = clients[i];
                    ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
                    synchronized(itsNatDoc) // No es necesario sincronizar los padres pues esta acci�n s�lo afecta a este documento
                    {
                        clientDoc.setInvalid();
                    }
                }
View Full Code Here

        bindClientToRequest(clientDoc,false); // �� DEBE SER false el segundo par�metro !!

        final HTMLIFrameFileUploadImpl[] listener = new HTMLIFrameFileUploadImpl[1];

        ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();

        // Esta sincronizaci�n es solamente para obtener el HTMLIFrameFileUploadImpl
        // a partir del listenerId
        ItsNatDocSynchronizerImpl syncTask = new ItsNatDocSynchronizerImpl()
        {
View Full Code Here

        }
        else // Caso de useOnLoad o no HTML MIME
        {
            // Es un poco absurdo volver al DOM pero es lo mejor
            // document.write no vale.
            ItsNatStfulDocumentImpl itsNatDoc = clientDocNormal.getItsNatStfulDocument();
            DocumentFragment docFrag = itsNatDoc.toDOM(resultMarkup);

            if (template.isMIME_XHTML() || (template.isMIME_HTML() && useOnLoad))
            {
                code.append("var root = document.body;\n");
                code.append("if (!root) root = document.getElementsByTagName(\"body\")[0];\n"); // Caso de MIME XHTML y WebKit
View Full Code Here

TOP

Related Classes of org.itsnat.impl.core.doc.ItsNatStfulDocumentImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.