1 /// 2 module drmi.mqtt.accessor; 3 4 import drmi.ps.accessor; 5 import drmi.mqtt.transport; 6 7 import sfw; 8 public import sfw.func; 9 10 import std.algorithm; 11 import std.array; 12 import std.datetime; 13 import core.thread; 14 import std.conv; 15 import std.experimental.logger; 16 17 /// 18 class MqttAccessor(T) : Accessor!T 19 { 20 protected: 21 MqttTransport tr; 22 23 public: 24 25 void callTransportLoop() { tr.loop(); } 26 27 SFWApp app; 28 29 alias Settings = MosquittoClient.Settings; 30 31 /// 32 this(T obj, string uniq="") { this(obj, Settings.init, uniq); } 33 34 /// 35 this(T obj, Settings sets, string uniq="") 36 { 37 tr = new MqttTransport(sets); 38 super(tr, obj, uniq, (s){ sfw.sleep(s); }); 39 app = new SFWApp(128); 40 app.spawnInfLoop({ callTransportLoop(); }); 41 } 42 }