/** * method used by the client for Registering or Adding a callback with the client channel * * @param CallbackId String * @param Callback the class that implements the method "execute" * @param OnRegisterCallbackFinish */ public void registerCallback(String CallbackId, DBXCallback Callback, OnRegisterCallbackFinish onRegisterCallbackFinish = null) { TJSONValue Value = new TJSONTrue(); if (wThread == null) { wThread = new WorkerThread(Connection.Clone(true), this); thread = new Thread(new ThreadStart(wThread.run)); dsadmin.ConsumeClientChannel(ChannelName, getManagerID(), CallbackId, ChannelName, getSecurityToken(), Value, (TJSONValue res) => { if (res is TJSONObject && ((TJSONObject)res).has("invoke")) { thread.Start(); } if (onRegisterCallbackFinish != null) { onRegisterCallbackFinish(); } }); } else { registerClientCallback(CallbackId); if (onRegisterCallbackFinish != null) { onRegisterCallbackFinish(); } } wThread.addCallback(CallbackId, Callback); }
/** * method used by the client for Registering or Adding a callback with the client channel * * @param CallbackId String * @param Callback the class that implements the method "execute" * @param OnRegisterCallbackFinish */ public void registerCallback(String CallbackId, DBXCallback Callback, OnRegisterCallbackFinish onRegisterCallbackFinish = null) { TJSONValue Value = new TJSONTrue(); if (wThread == null) { wThread = new WorkerThread(Connection.Clone(true), this); thread = new Thread(new ThreadStart(wThread.run)); dsadmin.ConsumeClientChannel(ChannelName, getManagerID(), CallbackId, ChannelName, getSecurityToken(), Value, (TJSONValue res) => { if (res is TJSONObject && ((TJSONObject)res).has("invoke")) { thread.Start(); } if (onRegisterCallbackFinish != null) onRegisterCallbackFinish(); }); } else { registerClientCallback(CallbackId); if (onRegisterCallbackFinish != null) onRegisterCallbackFinish(); } wThread.addCallback(CallbackId, Callback); }