module DBus
dbus.rb - Module
containing the low-level D-Bus implementation
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
D-Bus main module¶ ↑
Module
containing all the D-Bus modules and classes.
This file is part of the ruby-dbus project Copyright © 2016 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
D-Bus main module¶ ↑
Module
containing all the D-Bus modules and classes.
This file is part of the ruby-dbus project Copyright © 2019 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg Copyright © 2023 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2022 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2022 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
error.rb
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
dbus/introspection.rb - module containing a low-level D-Bus introspection implementation
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg Copyright © 2023 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
D-Bus main module¶ ↑
Module
containing all the D-Bus modules and classes.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
D-Bus main module¶ ↑
Module
containing all the D-Bus modules and classes.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg Copyright © 2023 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2022 José Iván López González Copyright © 2022 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2019 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg Copyright © 2009-2014 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg Copyright © 2009-2014 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg Copyright © 2009-2014 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
This file is part of the ruby-dbus project Copyright © 2022 Martin Vidner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
dbus/type.rb - module containing low-level D-Bus data type information
This file is part of the ruby-dbus project Copyright © 2007 Arnaud Cornet and Paul van Tilburg
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software Foundation. See the file “COPYING” for the exact licensing terms.
Constants
- BIG_END
-
Protocol character signifying big endianness.
- HOST_END
-
Protocol character signifying the host’s endianness. “S”: unpack as uint16, native endian
- HOST_ENDIANNESS
-
Comparing symbols is faster than strings @return [:little,:big]
- INTERFACE_ELEMENT_RE
-
Regular expressions that should match all interface names.
- LIL_END
-
Protocol character signifying little endianness.
- METHOD_SIGNAL_RE
-
Regular expressions that should match all method names.
- PROPERTY_INTERFACE
- SYSTEM_BUS_ADDRESS
-
Default socket name for the system bus.
Public Class Methods
Source
# File lib/dbus/error.rb, line 43 def error(name = "org.freedesktop.DBus.Error.Failed") # message will be set by Kernel.raise DBus::Error.new(nil, name) end
@example raise a generic error
raise DBus.error, "message"
@example raise a specific error
raise DBus.error("org.example.Error.SeatOccupied"), "Seat #{n} is occupied"
Source
# File lib/dbus/logger.rb, line 19 def logger if @logger.nil? debug = $DEBUG || ENV["RUBY_DBUS_DEBUG"] @logger = Logger.new($stderr) @logger.level = debug ? Logger::DEBUG : Logger::INFO end @logger end
Get the logger for the DBus
module. The default one logs to STDERR, with DEBUG if $DEBUG is set, otherwise INFO.
Source
# File lib/dbus/logger.rb, line 30 def logger=(logger) @logger = logger end
Set the logger for the DBus
module
Source
# File lib/dbus/bus.rb, line 310 def self.session_bus SessionBus.instance end
Shortcut for the {SessionBus} instance @return [BusConnection]
Source
# File lib/dbus/bus.rb, line 304 def self.system_bus SystemBus.instance end
Shortcut for the {SystemBus} instance @return [BusConnection]
Source
# File lib/dbus/type.rb, line 400 def type(string_type) Type::Parser.new(string_type).parse1 end
Parse a String to a valid {DBus::Type}. This is prefered to {Type#initialize} which allows incomplete or invalid types. @param string_type [SingleCompleteType] @return [DBus::Type] (frozen) @raise SignatureException
Source
# File lib/dbus/type.rb, line 409 def types(string_type) Type::Parser.new(string_type).parse end
Parse a String to zero or more {DBus::Type}s. @param string_type [Signature] @return [Array<DBus::Type>] (frozen) @raise SignatureException
Source
# File lib/dbus/type.rb, line 419 def variant(string_type, value) Data::Variant.new(value, member_type: string_type) end
Make an explicit [Type, value] pair @param string_type [SingleCompleteType] @param value [::Object] @return [Array(DBus::Type::Type,::Object)] @deprecated Use {Data::Variant#initialize} instead
Public Instance Methods
Source
# File lib/dbus/message_queue.rb, line 169 def buffer_from_socket_nonblock @buffer += @socket.read_nonblock(MSG_BUF_SIZE, @read_buffer) rescue EOFError raise # the caller expects it rescue Errno::EAGAIN # fine, would block rescue Exception => e puts "Oops:", e raise if @is_tcp # why? puts "WARNING: read_nonblock failed, falling back to .recv" @buffer += @socket.recv(MSG_BUF_SIZE) end
Fill (append) the buffer from data that might be available on the socket. @return [void] @raise EOFError
Private Instance Methods
Source
# File lib/dbus/error.rb, line 43 def error(name = "org.freedesktop.DBus.Error.Failed") # message will be set by Kernel.raise DBus::Error.new(nil, name) end
@example raise a generic error
raise DBus.error, "message"
@example raise a specific error
raise DBus.error("org.example.Error.SeatOccupied"), "Seat #{n} is occupied"
Source
# File lib/dbus/logger.rb, line 19 def logger if @logger.nil? debug = $DEBUG || ENV["RUBY_DBUS_DEBUG"] @logger = Logger.new($stderr) @logger.level = debug ? Logger::DEBUG : Logger::INFO end @logger end
Get the logger for the DBus
module. The default one logs to STDERR, with DEBUG if $DEBUG is set, otherwise INFO.
Source
# File lib/dbus/logger.rb, line 30 def logger=(logger) @logger = logger end
Set the logger for the DBus
module
Source
# File lib/dbus/type.rb, line 400 def type(string_type) Type::Parser.new(string_type).parse1 end
Parse a String to a valid {DBus::Type}. This is prefered to {Type#initialize} which allows incomplete or invalid types. @param string_type [SingleCompleteType] @return [DBus::Type] (frozen) @raise SignatureException
Source
# File lib/dbus/type.rb, line 409 def types(string_type) Type::Parser.new(string_type).parse end
Parse a String to zero or more {DBus::Type}s. @param string_type [Signature] @return [Array<DBus::Type>] (frozen) @raise SignatureException
Source
# File lib/dbus/type.rb, line 419 def variant(string_type, value) Data::Variant.new(value, member_type: string_type) end
Make an explicit [Type, value] pair @param string_type [SingleCompleteType] @param value [::Object] @return [Array(DBus::Type::Type,::Object)] @deprecated Use {Data::Variant#initialize} instead