Package org.itsnat.impl.core.clientdoc

Examples of org.itsnat.impl.core.clientdoc.ClientDocumentStfulOwnerImpl


    public void copyCacheFromOwner(ClientDocumentAttachedClientImpl clientAttached)
    {
        // Copiamos la cach� del cliente propietarios pues contiene los nodos m�s frecuentemente
        // usados, as� aceleramos el c�lculo de paths para el observador.
        ItsNatStfulDocumentImpl itsNatDoc = clientAttached.getItsNatStfulDocument();
        ClientDocumentStfulOwnerImpl clientDocOwner = itsNatDoc.getClientDocumentStfulOwner();
        NodeCacheRegistryImpl nodeCacheOwner = clientDocOwner.getNodeCacheRegistry();
        if ((nodeCacheOwner == null) || nodeCacheOwner.isEmpty())
            return;

        StringBuilder code = new StringBuilder();
        NodeCacheRegistryImpl nodeCacheObserver = clientAttached.getNodeCacheRegistry(); // DEBE existir
View Full Code Here


            }
        };
        LinkedList<Node> elemList = DOMUtilInternal.getChildNodeListMatching(doc,rules,true,null);
        if (elemList != null)
        {
            ClientDocumentStfulOwnerImpl cliendDoc = getClientDocumentStfulOwner();
            for(Iterator<Node> it = elemList.iterator(); it.hasNext(); )
            {
                ElementDocContainer elem = (ElementDocContainer)it.next();
                BoundElementDocContainerImpl bindInfo = BoundElementDocContainerImpl.register(elem, itsNatDoc);
                if (bindInfo == null)
View Full Code Here

    public void postSerializeDocProcessBoundElementDocContainer(LinkedList<BoundElementDocContainerImpl> boundHTMLElemDocContainerList)
    {
        // Restauramos los URLs originales ("src" en iframe o "data" en object)
        if (boundHTMLElemDocContainerList != null)
        {
            ClientDocumentStfulOwnerImpl cliendDoc = getClientDocumentStfulOwner();
            for(BoundElementDocContainerImpl bindInfo : boundHTMLElemDocContainerList)
            {
                bindInfo.restoreOriginalURL(cliendDoc);
            }
        }
View Full Code Here

        ClientDocumentStfulOwnerImpl[] clients = getClientDocumentStfulOwnerArray();
        if (clients != null)
        {
            for(int i = 0; i < clients.length; 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();
                }
            }
        }

        // Por si acaso pero no es necesario
        synchronized(ownerClientsById)
        {
            ownerClientsById.clear();
            docsById.clear();
        }

        // Ahora los observadores (que pueden serlo de otros documentos)

        ClientDocumentAttachedClientImpl[] attachedClients = getClientDocumentAttachedClientArray();
        if (attachedClients != null)
        {
            for(int i = 0; i < attachedClients.length; i++)
            {
                ClientDocumentAttachedClientImpl clientDoc = attachedClients[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(); // Yo creo que no hace falta pero por si acaso
                }
            }
        }

        // Esto es necesario, porque la invalidaci�n (que puede hacerse el documento de otra sesi�n)
View Full Code Here

        }
    }

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

        ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
        synchronized(ownerClientsById)
        {
View Full Code Here

        ClientDocumentStfulOwnerImpl[] clientOwnerList = getClientDocumentStfulOwnerArray();
        if (clientOwnerList != null)
        {
            for(int i = 0; i < clientOwnerList.length; i++)
            {
                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();
View Full Code Here

            // 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

        return (ItsNatStfulDocumentTemplateVersionImpl)docTemplateVersion;
    }

    public ClientDocumentImpl createClientDocumentOwner(Browser browser,ItsNatSessionImpl ownerSession)
    {
        return new ClientDocumentStfulOwnerImpl(this,browser,ownerSession);
    }
View Full Code Here

    public boolean allClientDocumentWillReceiveCodeSent()
    {
        if (!isSendCodeEnabled())
            return false; // No, pues est� desactivado

        ClientDocumentStfulOwnerImpl owner = getClientDocumentStfulOwner();
        if (!owner.isSendCodeEnabled())
            return false;

        if (hasClientDocumentAttachedClient())
        {
            WeakSetImpl<ClientDocumentAttachedClientImpl> clientDocs = getClientDocumentAttachedClientSet();
View Full Code Here

TOP

Related Classes of org.itsnat.impl.core.clientdoc.ClientDocumentStfulOwnerImpl

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.