static void ParseFlags(string flagStr, out RPCActionFlags flags, out int timeout) { flags = 0; timeout = DEFAULT_TIMEOUT; foreach (var fl in flagStr.Split(',')) { int u; switch (fl) { case "read": flags |= RPCActionFlags.Read; break; case "update": flags |= RPCActionFlags.Update; break; case "destroy": flags |= RPCActionFlags.Destroy; break; case "public": flags |= RPCActionFlags.Public; break; case "create": flags |= RPCActionFlags.Create; break; case "noauth": flags |= RPCActionFlags.NoAuth; break; default: if (fl.StartsWith ("t") && int.TryParse (fl.Substring (1), out u) && u > 0) { timeout = u; } break; } } }
static void ParseFlags(string flagStr, out RPCActionFlags flags, out int timeout) { flags = 0; timeout = DEFAULT_TIMEOUT; foreach (var fl in flagStr.Split(',')) { int u; switch (fl) { case "read": flags |= RPCActionFlags.Read; break; case "update": flags |= RPCActionFlags.Update; break; case "destroy": flags |= RPCActionFlags.Destroy; break; case "public": flags |= RPCActionFlags.Public; break; case "create": flags |= RPCActionFlags.Create; break; case "noauth": flags |= RPCActionFlags.NoAuth; break; default: if (fl.StartsWith("t") && int.TryParse(fl.Substring(1), out u) && u > 0) { timeout = u; } break; } } }
static string UnparseFlags(RPCActionFlags flags, int timeout) { StringBuilder sb = new StringBuilder (); if ((flags & RPCActionFlags.Create) != 0) sb.Append ("create,"); if ((flags & RPCActionFlags.Read) != 0) sb.Append ("read,"); if ((flags & RPCActionFlags.Update) != 0) sb.Append ("update,"); if ((flags & RPCActionFlags.Destroy) != 0) sb.Append ("destroy,"); if ((flags & RPCActionFlags.NoAuth) != 0) sb.Append ("noauth,"); if ((flags & RPCActionFlags.Public) != 0) sb.Append ("public,"); if (timeout != DEFAULT_TIMEOUT) { sb.Append ('t'); sb.Append (timeout); sb.Append (','); } return sb.Length == 0 ? "" : sb.ToString (0, sb.Length - 1); }
static string UnparseFlags(RPCActionFlags flags, int timeout) { StringBuilder sb = new StringBuilder(); if ((flags & RPCActionFlags.Create) != 0) { sb.Append("create,"); } if ((flags & RPCActionFlags.Read) != 0) { sb.Append("read,"); } if ((flags & RPCActionFlags.Update) != 0) { sb.Append("update,"); } if ((flags & RPCActionFlags.Destroy) != 0) { sb.Append("destroy,"); } if ((flags & RPCActionFlags.NoAuth) != 0) { sb.Append("noauth,"); } if ((flags & RPCActionFlags.Public) != 0) { sb.Append("public,"); } if (timeout != DEFAULT_TIMEOUT) { sb.Append('t'); sb.Append(timeout); sb.Append(','); } return(sb.Length == 0 ? "" : sb.ToString(0, sb.Length - 1)); }
public ActionInfo(ActionName name, RPCActionFlags flags, int timeout, object handler) : this(name, UnparseFlags(flags, timeout), handler) { }
public ActionInfo(ActionName name, RPCActionFlags flags, int timeout, object handler) : this(name, UnparseFlags (flags, timeout), handler) { }