//readonly SortedList<string,Connection> Names = new SortedList<string,Connection> (); //readonly SortedDictionary<string,Connection> Names = new SortedDictionary<string,Connection> (); public RequestNameReply RequestName(string name, NameFlag flags) { Console.Error.WriteLine("RequestName " + name); string nameError; if (!BusNameIsValid(name, out nameError)) { throw new ArgumentException(String.Format("Requested name \"{0}\" is not valid: {1}", name, nameError), "name"); } if (name.StartsWith(":")) { throw new ArgumentException(String.Format("Cannot acquire a name starting with ':' such as \"{0}\"", name), "name"); } if (name == DBusBusName) { throw new ArgumentException(String.Format("Connection \"{0}\" is not allowed to own the name \"{1}\" because it is reserved for D-Bus' use only", Caller.UniqueName ?? "(inactive)", name), "name"); } // TODO: Policy delegate support // TODO: NameFlag support if (flags != NameFlag.None) { Console.Error.WriteLine("Warning: Ignoring unimplemented NameFlags: " + flags); } Connection c; if (!Names.TryGetValue(name, out c)) { Names[name] = Caller; RaiseNameSignal("Acquired", name); NameOwnerChanged(name, String.Empty, Caller.UniqueName); Message activationMessage; if (activationMessages.TryGetValue(name, out activationMessage)) { activationMessages.Remove(name); Caller.SendReal(activationMessage); } return(RequestNameReply.PrimaryOwner); } else if (c == Caller) { return(RequestNameReply.AlreadyOwner); } else { return(RequestNameReply.Exists); } }
public RequestNameReply RequestName (string name, NameFlag flags) { return bus.RequestName (name, flags); }
//readonly SortedList<string,Connection> Names = new SortedList<string,Connection> (); //readonly SortedDictionary<string,Connection> Names = new SortedDictionary<string,Connection> (); public RequestNameReply RequestName(string name, NameFlag flags) { Console.Error.WriteLine("RequestName " + name); string nameError; if (!BusNameIsValid(name, out nameError)) throw new ArgumentException(String.Format("Requested name \"{0}\" is not valid: {1}", name, nameError), "name"); if (name.StartsWith(":")) throw new ArgumentException(String.Format("Cannot acquire a name starting with ':' such as \"{0}\"", name), "name"); if (name == DBusBusName) throw new ArgumentException(String.Format("Connection \"{0}\" is not allowed to own the name \"{1}\" because it is reserved for D-Bus' use only", Caller.UniqueName ?? "(inactive)", name), "name"); // TODO: Policy delegate support // TODO: NameFlag support if (flags != NameFlag.None) Console.Error.WriteLine("Warning: Ignoring unimplemented NameFlags: " + flags); Connection c; if (!Names.TryGetValue(name, out c)) { Names[name] = Caller; RaiseNameSignal("Acquired", name); NameOwnerChanged(name, String.Empty, Caller.UniqueName); Message activationMessage; if (activationMessages.TryGetValue(name, out activationMessage)) { activationMessages.Remove(name); Caller.SendReal(activationMessage); } return RequestNameReply.PrimaryOwner; } else if (c == Caller) return RequestNameReply.AlreadyOwner; else return RequestNameReply.Exists; }
public RequestNameReply RequestName(string name, NameFlag flags) { return(bus.RequestName(name, flags)); }