mirror of
https://github.com/zaaarf/geb.git
synced 2024-11-25 10:04:51 +01:00
chore: separated processor and api
This commit is contained in:
parent
d48726c80f
commit
bfc4753e66
5 changed files with 1 additions and 84 deletions
|
@ -8,7 +8,7 @@ Suppose that you have a simple event system, with annotated listeners receiving
|
|||
|
||||
That works, of course, but it's not that fast. Ah, if only you knew in advance, such as at compile time, who's going to get called with what... oh, wait, you do.
|
||||
|
||||
GEB is just a basic event bus in itself; the actual magician is the processor, who writes into each event direct calls to all subscribers, to take as little time as possible.
|
||||
GEB is just a basic event bus in itself; the actual magician is the [processor](https://github.com/zaaarf/geb-processor), who writes into each event direct calls to all subscribers, to take as little time as possible.
|
||||
|
||||
## What's with the name?
|
||||
"GEB Bus" kind of sounds like "Jeb Bush" and I think it's very funny. Please clap.
|
|
@ -1,17 +0,0 @@
|
|||
package ftbsc.geb.api.annotations;
|
||||
|
||||
import ftbsc.geb.api.IBus;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* This annotation should mark either a static instance of {@link IBus}
|
||||
* or a static method returning one.
|
||||
* @since 0.1.0
|
||||
*/
|
||||
@Target({ElementType.FIELD, ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.CLASS)
|
||||
public @interface BusInstance {}
|
|
@ -1,17 +0,0 @@
|
|||
package ftbsc.geb.api.annotations;
|
||||
|
||||
import ftbsc.geb.api.IEvent;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Marks a class as an Event. It should implement the {@link IEvent} interface.
|
||||
* It doesn't need to be abstract, but it can never be final.
|
||||
* @since 0.1.0
|
||||
*/
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.CLASS)
|
||||
public @interface Event {}
|
|
@ -1,32 +0,0 @@
|
|||
package ftbsc.geb.api.annotations;
|
||||
|
||||
import ftbsc.geb.api.IEvent;
|
||||
import ftbsc.geb.api.IListener;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Marks the method as a listener. Its parent must implement the {@link IListener} interface.
|
||||
* The annotated method should only take a single input value, an instance of {@link IEvent};
|
||||
* it should be either void or boolean; if it's boolean, the return value indicates whether
|
||||
* the event was canceled.
|
||||
* @since 0.1.0
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.CLASS)
|
||||
public @interface Listen {
|
||||
/**
|
||||
* @return an integer indicating priority level for the listener, defaulting to 0
|
||||
*/
|
||||
int priority() default 0;
|
||||
|
||||
/**
|
||||
* @return an array of {@link String}s specifying which buses they should be listening on;
|
||||
* an empty array means that they should listen on all buses, ignoring identifiers:
|
||||
* that's probably what you wanted anyway.
|
||||
*/
|
||||
String[] on() default {}; //empty array = listen on all of them
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
package ftbsc.geb.api.annotations;
|
||||
|
||||
import ftbsc.geb.api.IListener;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* This annotation should mark either be a static instance of {@link IListener}
|
||||
* or a static method returning one.
|
||||
* @since 0.1.0
|
||||
*/
|
||||
@Target({ElementType.FIELD, ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.CLASS)
|
||||
public @interface ListenerInstance {}
|
Loading…
Reference in a new issue