/.metadata/.plugins/org.eclipse.core.resources/.history/bf/005b5d9781a3001e1dff9ae635b3e1ee
https://bitbucket.org/fixpoint/connexion · #! · 50 lines · 44 code · 6 blank · 0 comment · 0 complexity · d5d75d5f7a35f097bdb3b3a8167a5494 MD5 · raw file
- package info.reflectionsofmind.connexion.platform.control.util;
-
- import info.reflectionsofmind.connexion.platform.control.stc.IServerToClientMessage;
- import info.reflectionsofmind.connexion.platform.control.stc.STCMessageCoder;
- import info.reflectionsofmind.connexion.platform.control.stc.message.MsgParticipationAccepted;
- import info.reflectionsofmind.connexion.transport.AbstractTransport;
- import info.reflectionsofmind.connexion.transport.ITransport.INode;
- import info.reflectionsofmind.connexion.util.convert.DecodingException;
-
- import java.util.concurrent.BlockingQueue;
- import java.util.concurrent.SynchronousQueue;
-
- private final class WaitForParticipationAccepted extends AbstractTransport.Listener
- {
- private final BlockingQueue<MsgParticipationAccepted> queue = new SynchronousQueue<MsgParticipationAccepted>();
-
- public MsgParticipationAccepted take()
- {
- try
- {
- return this.queue.take();
- }
- catch (final InterruptedException exception)
- {
- throw new RuntimeException(exception);
- }
- }
-
- @Override
- public void onPacket(final INode sender, final String contents)
- {
- try
- {
- final IServerToClientMessage message = STCMessageCoder.INSTANCE.decode(contents);
-
- if (message instanceof MsgParticipationAccepted)
- {
- this.queue.put((MsgParticipationAccepted) message);
- }
- }
- catch (final DecodingException exception)
- {
- throw new RuntimeException(exception);
- }
- catch (final InterruptedException exception)
- {
- throw new RuntimeException(exception);
- }
- }
- }