# Release
#DFLAGS += -frelease -O3
-all: ctest
+TARGETS = ctest dtest
+
+all: $(TARGETS)
ctest.o: ctest.d ev/c.d
gdc -c $(DFLAGS) ctest.d
+dtest.o: dtest.d ev/c.d ev/d.d
+ gdc -c $(DFLAGS) dtest.d
+
ev/c.o: ev/c.d
gdc -c -o ev/c.o $(DFLAGS) ev/c.d
+ev/d.o: ev/d.d
+ gdc -c -o ev/d.o $(DFLAGS) ev/d.d
+
ctest: ctest.o ev/c.o
gdc -o ctest -lev $(DFLAGS) ctest.o ev/c.o
+dtest: dtest.o ev/c.o ev/d.o
+ gdc -o dtest -lev $(DFLAGS) dtest.o ev/c.o ev/d.o
+
clean:
- $(RM) -v *.o ev/*.o ctest
+ $(RM) -v *.o ev/*.o $(TARGETS)
.PHONY: clean all
--- /dev/null
+/+
+ + D Programming Language "bindings" to libev
+ + <http://software.schmorp.de/pkg/libev.html> test program.
+ +
+ + Written by Leandro Lucarella (2008).
+ +
+ + Placed under BOLA license <http://auriga.wearlab.de/~alb/bola/> which is
+ + basically public domain.
+ +
+ +/
+
+import std.stdio;
+import ev.d;
+
+void main()
+{
+ auto iow = new Io(0, READ,
+ (Io w, int revents)
+ {
+ writefln("stdin ready");
+ char[] ln = readln();
+ writef("read %d bytes: %s", ln.length, ln);
+ w.stop; // just a syntax example
+ assert (w.loop !is null);
+ w.loop.unloop(Unloop.ALL); // leave all loop calls
+ }
+ );
+ assert (iow.loop !is null);
+ iow.start;
+ auto timerw = new Timer(5.5,
+ (Timer w, int revents)
+ {
+ writefln("timeout, revents = ", revents);
+ w.loop.unloop(Unloop.ONE); // example syntax
+ }
+ );
+ assert (timerw.loop !is null);
+ timerw.start;
+ loop.loop;
+}
+