From 03974934a0a23272723b89a3037c1670196c660e Mon Sep 17 00:00:00 2001 From: Daniil Date: Tue, 31 Jul 2018 14:19:46 +0700 Subject: [PATCH] Test code for cache-like event loop --- .../java/mc/core/events/cachelike/Handler.java | 16 ++++++++++++++++ .../mc/core/events/cachelike/Preprocessor.java | 5 +++++ .../events/cachelike/PreprocessorContext.java | 17 +++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 event-loop/src/main/java/mc/core/events/cachelike/Handler.java create mode 100644 event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java create mode 100644 event-loop/src/main/java/mc/core/events/cachelike/PreprocessorContext.java diff --git a/event-loop/src/main/java/mc/core/events/cachelike/Handler.java b/event-loop/src/main/java/mc/core/events/cachelike/Handler.java new file mode 100644 index 0000000..0208662 --- /dev/null +++ b/event-loop/src/main/java/mc/core/events/cachelike/Handler.java @@ -0,0 +1,16 @@ +package mc.core.events.cachelike; + +import mc.core.events.LoginEvent; + +public class SampleHandler { + + @Preprocessor(preprocessor = (new PreprocessorContext() { + @Override + protected void init() { + + } + }).class) + public void onLogin(LoginEvent event){ + + } +} diff --git a/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java b/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java new file mode 100644 index 0000000..36bd1f3 --- /dev/null +++ b/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java @@ -0,0 +1,5 @@ +package mc.core.events.cachelike; + +public @interface Preprocessor { + Class preprocessor(); +} diff --git a/event-loop/src/main/java/mc/core/events/cachelike/PreprocessorContext.java b/event-loop/src/main/java/mc/core/events/cachelike/PreprocessorContext.java new file mode 100644 index 0000000..99292fc --- /dev/null +++ b/event-loop/src/main/java/mc/core/events/cachelike/PreprocessorContext.java @@ -0,0 +1,17 @@ +package mc.core.events.cachelike; + +import com.google.common.base.Function; + +import java.util.ArrayList; +import java.util.List; + +public abstract class PreprocessorContext { + private List> fetchers = new ArrayList<>(); + + protected void push(Function fetcher) { + fetchers.add(fetcher); + } + + protected abstract void init() ; + +}