Skip to content

Commit 6e3f735

Browse files
committed
Implement broadcasting settings event
1 parent 11297e0 commit 6e3f735

5 files changed

Lines changed: 80 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,31 @@
11
package com.bookmap.api.rpc.server.addon.listeners.broadcasting;
22

33
import com.bookmap.addons.broadcasting.api.view.listeners.UpdateSettingsListener;
4+
import com.bookmap.api.rpc.server.EventLoop;
5+
import com.bookmap.api.rpc.server.data.outcome.BroadcastingSettingsEvent;
6+
import com.bookmap.api.rpc.server.utils.JsonUtil;
47

58
public class SettingsListener implements UpdateSettingsListener {
9+
10+
private final EventLoop eventLoop;
11+
private final String generatorName;
12+
13+
public SettingsListener(EventLoop eventLoop, String generatorName) {
14+
this.eventLoop = eventLoop;
15+
this.generatorName = generatorName;
16+
}
17+
618
@Override
719
public void reactToSettingsUpdate(Object o) {
20+
if (o != null) {
21+
String event;
22+
try {
23+
event = JsonUtil.convertObjectToJsonString(o);
24+
}
25+
catch (IllegalAccessException e) {
26+
throw new RuntimeException("Error during parsing event object", e);
27+
}
28+
eventLoop.pushEvent(new BroadcastingSettingsEvent(generatorName, event));
29+
}
830
}
931
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.bookmap.api.rpc.server.data.outcome;
2+
3+
import com.bookmap.api.rpc.server.data.utils.AbstractEvent;
4+
import com.bookmap.api.rpc.server.data.utils.Type;
5+
6+
public class BroadcastingSettingsEvent extends AbstractEvent {
7+
8+
public final String event;
9+
public final String generatorName;
10+
11+
public BroadcastingSettingsEvent(String generatorName, String event) {
12+
super(Type.BROADCASTING_SETTINGS);
13+
this.generatorName = generatorName;
14+
this.event = event;
15+
}
16+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.bookmap.api.rpc.server.data.outcome.converters;
2+
3+
import com.bookmap.api.rpc.server.data.outcome.BroadcastingSettingsEvent;
4+
import com.bookmap.api.rpc.server.data.utils.EventConverter;
5+
6+
import javax.inject.Inject;
7+
import javax.inject.Singleton;
8+
9+
@Singleton
10+
public class BroadcastingSettingsConverter implements EventConverter<BroadcastingSettingsEvent, String> {
11+
@Inject
12+
BroadcastingSettingsConverter() {}
13+
14+
@Override
15+
public String convert(BroadcastingSettingsEvent entity) {
16+
return entity.type.code +
17+
FIELDS_DELIMITER +
18+
entity.generatorName +
19+
FIELDS_DELIMITER +
20+
entity.event;
21+
}
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.bookmap.api.rpc.server.data.outcome.converters.modules;
2+
3+
import com.bookmap.api.rpc.server.data.outcome.converters.BroadcastingSettingsConverter;
4+
import com.bookmap.api.rpc.server.data.utils.AbstractEvent;
5+
import com.bookmap.api.rpc.server.data.utils.EventConverter;
6+
import com.bookmap.api.rpc.server.data.utils.EventTypeMapKey;
7+
import com.bookmap.api.rpc.server.data.utils.Type;
8+
import dagger.Binds;
9+
import dagger.Module;
10+
import dagger.multibindings.IntoMap;
11+
12+
@Module
13+
public abstract class BroadcastingSettingsConverterModule {
14+
15+
@Binds
16+
@IntoMap
17+
@EventTypeMapKey(Type.BROADCASTING_SETTINGS)
18+
abstract EventConverter<? extends AbstractEvent, String> converter(BroadcastingSettingsConverter converter);
19+
}

serverside-rpc/src/main/java/com/bookmap/api/rpc/server/data/utils/modules/OutcomeConverterManagerFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
modules = {
1212
BalanceConverterModule.class,
1313
BroadcastingConverterModule.class,
14+
BroadcastingSettingsConverterModule.class,
1415
DepthDataConverterModule.class,
1516
ErrorEventConverterModule.class,
1617
IndicatorResponseConverterModule.class,

0 commit comments

Comments
 (0)