The GLib or GObject object system is an open source library (licensed under the LGPL ) that represents a portable object system and transparent cross-language compatibility. GObject is designed for use in both C and other languages using bindings.
| GObject | |
|---|---|
| Type of | Library |
| Developer | GNOME Foundation |
| Written on | C |
| operating system | Cross Platform Software |
| Interface languages | Multilingual |
| Hardware platform | Cross Platform Software |
| Latest version | 2.48.1 ( May 13, 2016 ) |
| Test version | 2.33.1 ( May 2, 2012 ) |
| condition | Active |
| License | GNU Lesser General Public License |
| Site | library.gnome.org/devel/... |
History
Dependent only on GLib and Libc, GObject is an important part of GNOME and is used in GTK + , Pango, Accessibility Toolkit, and other high-level GNOME libraries. Prior to GTK + 2.0, GObject was part of GTK +. (The name “GObject” was not used then - the general index type was called GtkObject.)
Link to GLib
Despite the fact that GObject has its own separate set of documentation [1] and is usually compiled into separate shared libraries , the source code for GObject is in the GLib tree and distributed with GLib (for example, Debian supplies GObject in the libglib2.0 package). In this regard, GObject uses the same version numbers as GLib.
Type System
At the most basic level of GObject lies a dynamic type system called GType. The GType system is responsible for describing the execution time of all objects that allow writing related code for use with different language bindings. A type system can handle any class structure with a single inheritance, as well as non-class types, such as an opaque pointer , string, integer, and floating-point number.
The type system knows how to copy, transfer, and destroy values that belong to any registered type. This is trivial for simple types, such as integers, but some complex objects use reference counting, and some do not. If a complex object uses reference counting, then when it is copied, the number of links simply increases by 1. Otherwise, the object will be copied by allocating additional memory.
This basic functionality is used in the implementation of GValue, a generic type container that can contain values of any type known to the type system. Such containers are especially useful when interacting with dynamically typed languages, where all the native values are in containers labeled with types ( English type-tagged container ).
See also
- Vala
- Genie
Notes
- ↑ GObject Reference Manual (English) (HTML). Date of treatment August 12, 2010.
Links
- The GObject Reference Manual (and tutorial) (English) (HTML). Date of treatment August 12, 2010.
- GObject Tutorial Aug 2004 (English) (HTML) (link not available) . Date of treatment August 12, 2010. Archived February 2, 2017.
- GOB2 - the GObject Builder (English) (HTML). Date of treatment August 12, 2010.
- Vala Homepage (English) (HTML). Date of treatment August 12, 2010.
- Reference description GObject (Russian)