All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dragome.web.debugging.messages.SorterMessagesQueue Maven / Gradle / Ivy

There is a newer version: 0.96-beta4
Show newest version
/*******************************************************************************
 * Copyright (c) 2011-2014 Fernando Petrola
 * 
 * This file is part of Dragome SDK.
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 ******************************************************************************/
package com.dragome.web.debugging.messages;

import java.util.Hashtable;
import java.util.Map;
import java.util.concurrent.ExecutorService;

import com.dragome.services.ServiceInvocation;
import com.dragome.services.ServiceLocator;

public class SorterMessagesQueue implements Runnable
{
	private Map recievedMessages= new Hashtable();
	public int lastMessageId= 0;

	public SorterMessagesQueue()
	{
	}

	public void clear()
	{
		recievedMessages.clear();
		lastMessageId= 0;
	}

	public void addMessage(int index, String message)
	{
		recievedMessages.put(index, message);
		//	    System.out.println("message:" + index);
	}

	public void run()
	{
		while (true)
		{
			String currentMessage= null;
			do
			{
				currentMessage= recievedMessages.get(lastMessageId);
				if (currentMessage != null)
				{
					lastMessageId++;

					final String finalMessage= currentMessage;

					ExecutorService executorService= ServiceLocator.getInstance().getExecutorService();
					executorService.execute(new Runnable()
					{
						public void run()
						{
							ServiceInvocation serviceInvocation= (ServiceInvocation) ServiceLocator.getInstance().getSerializationService().deserialize(finalMessage);
							serviceInvocation.invoke();
						}
					});
				}
			}
			while (currentMessage != null);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy