protected bool HandleMessage(Message message) { lock (Sync) switch (message.Opcode) { case 1: OnString?.Invoke(Encoding.UTF8.GetString(message.Payload)); return(true); case 2: OnBinary?.Invoke(message.Payload); return(true); case 8: if (message.Length < 2) { FinishClose(); return(true); } ushort code = (ushort)(message.Payload[0] * 256 + message.Payload[1]); string reason = Encoding.UTF8.GetString(PrimitiveBuffer.Slice(message.Payload, 2, message.Length)); if (RecvClose && message.Length > 2) { return(false); } if (message.Length > 2) { return(FinishClose(code, reason)); } return(FinishClose(code)); case 9: OnPing?.Invoke(message.Payload); return(true); case 10: OnPong?.Invoke(message.Payload); return(true); default: return(false); } }
private void OnIncomingMessage(Message message) { if (State == TcpSocketState.Closed) { return; } switch (message.Opcode) { case 1: string str; try { str = Encoding.UTF8.GetString(message.Data); } catch (ArgumentException) { ForciblyClose(); return; } OnString?.Invoke(str); break; case 2: OnBinary?.Invoke(message.Data); break; case 8: ushort code = (ushort)(message.Data.Length == 0 ? 0 : message.Data[0] * 256u + message.Data[1]); string reason = message.Data.Length >= 2 ? Encoding.UTF8.GetString(message.Data, 2, message.Data.Length - 2) : null; OnClose?.Invoke(code, reason); AnswerClose(code, reason); break; case 9: OnPing?.Invoke(message.Data); AnswerPing(message.Data); break; case 10: OnPong?.Invoke(message.Data); break; default: ForciblyClose(); break; } }
/// <summary> /// Returns the path to the open worksession .rws file. /// If null is returned, then either there is no worksession .rws file open, /// or the active worksession has not yet been saved. /// </summary> /// <param name="serialno">The worksession's runtime serial number.</param> /// <returns>The path to the open worksession .rws file if successful, null otherwise.</returns> public static string FileName(uint serialno) { using (var holder = new OnString()) { var ptr_holder = holder.NonConstPointer(); var rc = UnsafeNativeMethods.CRhinoWorkSession_FileName(serialno, ptr_holder); return(rc ? holder.ToString() : null); } }
private void WriteLog(string message) { if (txtLog.InvokeRequired) { var d = new OnString(WriteLog); this.BeginInvoke(d, message); } else { txtLog.AppendText($"{message}" + Environment.NewLine); } }
private IEnumerator load(string url, OnString cb) { var www = new WWW(url); yield return(www); if (!www.isDone) { Collector.Error.add(this, "load1 www not done!"); yield break; } if (!string.IsNullOrEmpty(www.error)) { Collector.Error.add(this, url + " : " + www.error); yield break; } cb(www.text); }