NetworkManager/shared
Thomas Haller b8bc80bcdb all: add base object type in "nm-obj.h"
Platform has it's own, simple implementation of object types:
NMPObject. Extract a base type and move it to "shared/nm-utils/nm-obj.h"
so it can be reused.

The base type is trival, but it allows us to implement other objects
which are compatible with NMPObjects. Currently there is no API for generic
NMObjBaseInst type, so compatible in this case only means, that they
can be used in the same context (see example below).
The only thing that you can do with a NMObjBaseInst is check it's
NMObjBaseClass.

Incidentally, NMObjBaseInst is also made compatible to GTypeInstance.
It means, an NMObjBaseInst is not necessarily a valid GTypeInstance (like NMPObject
is not), but it could be implemented as such.

For example, you could do:

    if (NMP_CLASS_IS_VALID ((NMPClass *) obj->klass)) {
        /* is an NMPObject */
    } else if (G_TYPE_CHECK_INSTANCE_TYPE (obj, NM_TYPE_SOMETHING)) {
        /* it a NMSometing GType */
    } else {
        /* something else? */
    }

The reason why NMPObject is not implemented as proper GTypeInstance is
because it would require us to register a GType (like
g_type_register_fundamental). However, then the NMPClass struct can
no longer be const and immutable memory. But we could.

NMObjBaseInst may or may not be a GTypeInstance. In a sense, it's
a base type of GTypeInstance and all our objects should be based
on it (optionally, they we may make them valid GTypes too).
2017-07-05 14:22:10 +02:00
..
nm-utils all: add base object type in "nm-obj.h" 2017-07-05 14:22:10 +02:00
nm-common-macros.h all: modify line separator comments to be 80 chars wide 2016-10-03 12:01:15 +02:00
nm-dbus-compat.h build: rename directory "include" to "shared" 2015-12-24 11:42:37 +01:00
nm-default.h build: disable type checks in G_TYPE_CHECK_INSTANCE_CAST() macros (bgo#771120) 2016-09-12 13:53:34 +02:00
nm-dispatcher-api.h build: cleanup src/Makefile.am 2016-08-11 11:54:18 +02:00
nm-meta-setting.c cli: don't mark field names for translation 2017-04-23 23:45:02 +02:00
nm-meta-setting.h cli: add meta data for NMSettingGeneric 2017-04-12 14:12:20 +02:00
nm-test-libnm-utils.h shared: move shared files to subdirectory "shared/nm-utils/" 2016-06-16 10:45:53 +02:00
nm-test-utils-impl.c build: allow specifying the python interpreter for building 2016-12-14 19:00:42 +01:00
nm-version-macros.h.in release: bump version to 1.9.0 (development) 2017-03-28 16:34:22 +02:00