Exemple #1
0
        //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);
            }
        }
Exemple #2
0
		public RequestNameReply RequestName (string name, NameFlag flags)
		{
			return bus.RequestName (name, flags);
		}
Exemple #3
0
        //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;
        }
Exemple #4
0
 public RequestNameReply RequestName(string name, NameFlag flags)
 {
     return(bus.RequestName(name, flags));
 }