Skip to content
Snippets Groups Projects
Commit 1fbe29e7 authored by Ramin Yaghoubzadeh's avatar Ramin Yaghoubzadeh
Browse files

Merge portb:/homes/hbuschme/repo/ipaaca

parents cedaf7c2 e1a7fb8f
No related branches found
No related tags found
No related merge requests found
package ipaaca; package ipaaca;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
/** /**
...@@ -63,10 +65,35 @@ public abstract class Buffer ...@@ -63,10 +65,35 @@ public abstract class Buffer
// """ // """
// handler = IUEventHandler(handler_function=handler_function, for_event_types=for_event_types, for_categories=for_categories) // handler = IUEventHandler(handler_function=handler_function, for_event_types=for_event_types, for_categories=for_categories)
// self._iu_event_handlers.append(handler) // self._iu_event_handlers.append(handler)
public void registerHandler(IUEventHandler handler) public void registerHandler(IUEventHandler handler)
{ {
eventHandlers.add(handler); eventHandlers.add(handler);
} }
public void registerHandler(HandlerFunctor func) {
IUEventHandler handler;
handler = new IUEventHandler(func);
registerHandler(handler);
}
public void registerHandler(HandlerFunctor func, Set<String> categories) {
IUEventHandler handler;
handler = new IUEventHandler(func, categories);
registerHandler(handler);
}
public void registerHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes) {
IUEventHandler handler;
handler = new IUEventHandler(func, eventTypes);
registerHandler(handler);
}
public void registerHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes, Set<String> categories) {
IUEventHandler handler;
handler = new IUEventHandler(func, eventTypes, categories);
registerHandler(handler);
}
// def call_iu_event_handlers(self, uid, local, event_type, category): // def call_iu_event_handlers(self, uid, local, event_type, category):
// """Call registered IU event handler functions registered for this event_type and category.""" // """Call registered IU event handler functions registered for this event_type and category."""
...@@ -76,7 +103,7 @@ public abstract class Buffer ...@@ -76,7 +103,7 @@ public abstract class Buffer
/** /**
* Call registered IU event handler functions registered for this event_type and category. * Call registered IU event handler functions registered for this event_type and category.
*/ */
public void callIuEventHandlers(String uid, boolean local, IUEventType type, String category) protected void callIuEventHandlers(String uid, boolean local, IUEventType type, String category)
{ {
for (IUEventHandler h : eventHandlers) for (IUEventHandler h : eventHandlers)
{ {
......
package ipaaca; package ipaaca;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set; import java.util.Set;
/** /**
...@@ -32,6 +33,27 @@ public class IUEventHandler ...@@ -32,6 +33,27 @@ public class IUEventHandler
// self._for_categories = ( // self._for_categories = (
// None if for_categories is None else // None if for_categories is None else
// (for_categories[:] if hasattr(for_categories, '__iter__') else [for_categories])) // (for_categories[:] if hasattr(for_categories, '__iter__') else [for_categories]))
public IUEventHandler(HandlerFunctor func)
{
this.handleFunctor = func;
this.categories = new HashSet<String>();
this.eventTypes = EnumSet.allOf(IUEventType.class);
}
public IUEventHandler(HandlerFunctor func, Set<String> categories)
{
this.handleFunctor = func;
this.categories = categories;
this.eventTypes = EnumSet.allOf(IUEventType.class);
}
public IUEventHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes)
{
this.handleFunctor = func;
this.eventTypes = eventTypes;
this.categories = new HashSet<String>();
}
public IUEventHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes, Set<String> categories) public IUEventHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes, Set<String> categories)
{ {
...@@ -57,7 +79,13 @@ public class IUEventHandler ...@@ -57,7 +79,13 @@ public class IUEventHandler
*/ */
private boolean conditionMet(IUEventType type, String category) private boolean conditionMet(IUEventType type, String category)
{ {
return eventTypes.contains(type) && categories.contains(category); if (this.categories.isEmpty()) { // match any category
return this.eventTypes.contains(type);
}
else
{
return this.eventTypes.contains(type) && this.categories.contains(category);
}
} }
// def call(self, buffer, iu_uid, local, event_type, category): // def call(self, buffer, iu_uid, local, event_type, category):
......
...@@ -80,7 +80,7 @@ public class InputBuffer extends Buffer ...@@ -80,7 +80,7 @@ public class InputBuffer extends Buffer
// remote_server = rsb.createRemoteServer(rsb.Scope(str(iu.owner_name))) // remote_server = rsb.createRemoteServer(rsb.Scope(str(iu.owner_name)))
// self._remote_server_store[iu.owner_name] = remote_server // self._remote_server_store[iu.owner_name] = remote_server
// return remote_server // return remote_server
public RemoteServer getRemoteServer(AbstractIU iu) protected RemoteServer getRemoteServer(AbstractIU iu)
{ {
if (remoteServerStore.containsKey(iu.getOwnerName())) if (remoteServerStore.containsKey(iu.getOwnerName()))
{ {
......
...@@ -38,6 +38,15 @@ public class LocalIU extends AbstractIU ...@@ -38,6 +38,15 @@ public class LocalIU extends AbstractIU
payload = new Payload(this); payload = new Payload(this);
} }
public LocalIU(String category)
{
super(UUID.randomUUID().toString());
this.category = category;
revision = 1;
payload = new Payload(this);
}
// def _set_buffer(self, buffer): // def _set_buffer(self, buffer):
// if self._buffer is not None: // if self._buffer is not None:
// raise Exception('The IU is already in a buffer, cannot move it.') // raise Exception('The IU is already in a buffer, cannot move it.')
...@@ -45,7 +54,7 @@ public class LocalIU extends AbstractIU ...@@ -45,7 +54,7 @@ public class LocalIU extends AbstractIU
// self.owner_name = buffer.unique_name // self.owner_name = buffer.unique_name
// self._payload.owner_name = buffer.unique_name // self._payload.owner_name = buffer.unique_name
// //
public void setBuffer(OutputBuffer buffer) protected void setBuffer(OutputBuffer buffer)
{ {
if (outputBuffer != null) if (outputBuffer != null)
{ {
......
package ipaaca; package ipaaca;
/** /**
* Local IU of Message sub-type. Can be handled like a normal IU, but on the remote side it is only existent during the handler calls. * Local IU of Message sub-type. Can be handled like a normal IU, but on the remote side it is only existent during the handler calls.
* @author hvanwelbergen * @author hvanwelbergen
...@@ -7,4 +8,14 @@ package ipaaca; ...@@ -7,4 +8,14 @@ package ipaaca;
public class LocalMessageIU extends LocalIU public class LocalMessageIU extends LocalIU
{ {
public LocalMessageIU()
{
super();
}
public LocalMessageIU(String category)
{
super(category);
}
} }
...@@ -327,7 +327,7 @@ public class OutputBuffer extends Buffer ...@@ -327,7 +327,7 @@ public class OutputBuffer extends Buffer
// '''Publish an IU.''' // '''Publish an IU.'''
// informer = self._get_informer(iu._category) // informer = self._get_informer(iu._category)
// informer.publishData(iu) // informer.publishData(iu)
public void publishIU(AbstractIU iu) private void publishIU(AbstractIU iu)
{ {
Informer<Object> informer = getInformer(iu.getCategory()); Informer<Object> informer = getInformer(iu.getCategory());
try try
...@@ -364,7 +364,7 @@ public class OutputBuffer extends Buffer ...@@ -364,7 +364,7 @@ public class OutputBuffer extends Buffer
* to enable remote components to filter out updates that originated * to enable remote components to filter out updates that originated
* from their own operations * from their own operations
*/ */
public void sendIUCommission(AbstractIU iu, String writerName) protected void sendIUCommission(AbstractIU iu, String writerName)
{ {
IUCommission iuc = Ipaaca.IUCommission.newBuilder().setUid(iu.getUid()).setRevision(iu.getRevision()) IUCommission iuc = Ipaaca.IUCommission.newBuilder().setUid(iu.getUid()).setRevision(iu.getRevision())
.setWriterName(iu.getOwnerName() != null ? iu.getOwnerName() : writerName).build(); .setWriterName(iu.getOwnerName() != null ? iu.getOwnerName() : writerName).build();
...@@ -406,7 +406,7 @@ public class OutputBuffer extends Buffer ...@@ -406,7 +406,7 @@ public class OutputBuffer extends Buffer
// informer = self._get_informer(iu._category) // informer = self._get_informer(iu._category)
// informer.publishData(payload_update) // informer.publishData(payload_update)
public void sendIUPayloadUpdate(AbstractIU iu, IUPayloadUpdate update) protected void sendIUPayloadUpdate(AbstractIU iu, IUPayloadUpdate update)
{ {
Informer<Object> informer = getInformer(iu.getCategory()); Informer<Object> informer = getInformer(iu.getCategory());
try try
...@@ -419,7 +419,7 @@ public class OutputBuffer extends Buffer ...@@ -419,7 +419,7 @@ public class OutputBuffer extends Buffer
} }
} }
public void sendIULinkUpdate(AbstractIU iu, IULinkUpdate update) protected void sendIULinkUpdate(AbstractIU iu, IULinkUpdate update)
{ {
Informer<Object> informer = getInformer(iu.getCategory()); Informer<Object> informer = getInformer(iu.getCategory());
try try
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment