IdeObject

IdeObject — Base object for IdeContext related objects

Functions

Properties

IdeContext * context Read / Write / Construct Only

Signals

void destroy Run Last

Types and Values

Object Hierarchy

    GObject
    ╰── IdeObject
        ├── IdeFileSettings
        ├── IdeBufferChangeMonitor
        ├── IdeBufferManager
        ├── IdeBuildManager
        ├── IdeBuildPipeline
        ├── IdeBuildStage
        ├── IdeConfiguration
        ├── IdeConfigurationManager
        ├── IdeDebugManager
        ├── IdeDebugger
        ├── IdeDeployStrategy
        ├── IdeDevice
        ├── IdeDeviceManager
        ├── IdeDeviceProvider
        ├── IdeDiagnosticsManager
        ├── IdeDirectoryBuildSystem
        ├── IdeDirectoryVcs
        ├── IdeExtensionAdapter
        ├── IdeExtensionSetAdapter
        ├── IdeFile
        ├── IdeHighlightEngine
        ├── IdeLangservClient
        ├── IdeLangservCompletionProvider
        ├── IdeLangservDiagnosticProvider
        ├── IdeLangservFormatter
        ├── IdeLangservHighlighter
        ├── IdeLangservHoverProvider
        ├── IdeLangservRenameProvider
        ├── IdeSymbolNode
        ├── IdeLangservSymbolResolver
        ├── IdeProject
        ├── IdeProjectItem
        ├── IdeRunManager
        ├── IdeRunner
        ├── IdeRuntime
        ├── IdeRuntimeManager
        ├── IdeSearchEngine
        ├── IdeSession
        ├── IdeSettings
        ├── IdeSimpleBuildTarget
        ├── IdeToolchain
        ├── IdeTestManager
        ├── IdeTestProvider
        ├── IdeToolchainManager
        ├── IdeUnsavedFiles
        ╰── IdeVcsMonitor

Known Derived Interfaces

IdeObject is required by IdeBuildPipelineAddin, IdeBuildSystem, IdeBuildTarget, IdeCodeIndexer, IdeConfigurationProvider, IdeDependencyUpdater, IdeDiagnosticProvider, IdeHighlighter, IdeIndenter, IdeRenameProvider, IdeSearchProvider, IdeService, IdeSessionAddin, IdeSymbolResolver, IdeToolchainProvider and IdeVcs.

Description

The IdeObject abstract class provides a base class for ojects that are related to IdeContext. It provides easy access to the IdeContext using ide_object_get_context().

Extensions

Some interfaces in Builder require that you use IdeObject as a base class. In these cases, inherit from IdeObject instead of GObject.

Lifecycle

If your subclass is going to do long running work which requires that the IdeContext cannot be unloaded until it has finished, use ide_object_hold() to ensure this property. Call ide_object_release() when no longer necessary.

Functions

ide_object_get_context ()

IdeContext *
ide_object_get_context (IdeObject *self);

Fetches the “context” property.

Returns

An IdeContext.

[transfer none]

Since: 3.18


ide_object_set_context ()

void
ide_object_set_context (IdeObject *self,
                        IdeContext *context);

Sets the IdeContext for the object.

Parameters

self

a IdeObject

 

context

An IdeContext.

[nullable]

Since: 3.18


ide_object_new_for_extension_async ()

void
ide_object_new_for_extension_async (GType interface_gtype,
                                    GCompareDataFunc sort_priority_func,
                                    gpointer sort_priority_data,
                                    int io_priority,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data,
                                    const gchar *first_property,
                                    ...);

This function is similar to ide_object_new_async() but uses a specific interface GType to locate the plugin. The first matching interface which is successfully created is returned after asynchronous initialization.

Use sort_priority_func to alter the priority of the extensions before attempting to initialize them.

Parameters

interface_gtype

the GType of the extension interface

 

sort_priority_func

a GCompareDataFunc or NULL.

[scope call][allow-none]

sort_priority_data

data for sort_priority_func .

[nullable]

io_priority

An io priority or G_PRIORITY_DEFAULT

 

cancellable

a GCancellable or NULL.

[nullable]

callback

A callback to complete the request.

[nullable]

user_data

user data for callback .

[nullable]

first_property

The first property to set, or NULL.

[nullable]

...

the value for the first property

 

Since: 3.22


ide_object_new_async ()

void
ide_object_new_async (const gchar *extension_point,
                      int io_priority,
                      GCancellable *cancellable,
                      GAsyncReadyCallback callback,
                      gpointer user_data,
                      const gchar *first_property,
                      ...);

This helper creates a new IdeObject that is registered for a given extension point.

The result can be fetched by calling ide_object_new_finish() from the provided callback .

Parameters

extension_point

The identifier of the extension point

 

io_priority

An io priority or G_PRIORITY_DEFAULT

 

cancellable

a GCancellable or NULL.

[nullable]

callback

a GAsyncReadyCallback.

[nullable]

user_data

user data for callback

 

first_property

the first property to set, or NULL

 

...

the value for the first property

 

Since: 3.18


ide_object_new_finish ()

IdeObject *
ide_object_new_finish (GAsyncResult *result,
                       GError **error);

Completes an asynchronous request to create a new IdeObject subclass.

Parameters

result

a GAsyncResult provided to callback

 

error

A location for a GError, or NULL

 

Returns

An IdeObject subclass, or NULL and error is set.

[transfer full]

Since: 3.18


ide_object_hold ()

gboolean
ide_object_hold (IdeObject *self);

This function will acquire a reference to the IdeContext that the object is a part of. This is useful if you are going to be doing a long running task (such as something in a thread) and want to ensure the context cannot be unloaded during your operation.

You should call ide_object_release() an equivalent number of times to ensure the context may be freed afterwards.

You should check the return value of this function to ensure that the context is not already in shutdown.

Parameters

self

the IdeObject

 

Returns

TRUE if a hold was successfully created.

Since: 3.18


ide_object_release ()

void
ide_object_release (IdeObject *self);

Releases a successful hold on the context previously created with ide_object_hold().

Parameters

self

the IdeObject.

 

Since: 3.18


ide_object_notify_in_main ()

void
ide_object_notify_in_main (gpointer instance,
                           GParamSpec *pspec);

This helper will perform a g_object_notify_by_pspec() with the added requirement that it is run from the applications main thread.

You may want to do this when modifying state from a thread, but only notify from the Gtk+ thread.

This will *always* return to the default main context, and never emit ::notify immediately.

Parameters

instance

a GObject.

[type GObject.Object]

pspec

a GParamSpec

 

Since: 3.18


ide_object_message ()

void
ide_object_message (gpointer instance,
                    const gchar *format,
                    ...);

ide_object_warning ()

void
ide_object_warning (gpointer instance,
                    const gchar *format,
                    ...);

ide_object_is_unloading ()

gboolean
ide_object_is_unloading (IdeObject *self);

Types and Values

IDE_TYPE_OBJECT

#define IDE_TYPE_OBJECT (ide_object_get_type())

struct IdeObjectClass

struct IdeObjectClass {
  GObjectClass parent;

  void        (*destroy)     (IdeObject  *self);
  IdeContext *(*get_context) (IdeObject  *self);
  void        (*set_context) (IdeObject  *self,
                              IdeContext *context);
};

IdeObject

typedef struct _IdeObject IdeObject;

Property Details

The “context” property

  “context”                  IdeContext *

The context that owns the object.

Flags: Read / Write / Construct Only

Signal Details

The “destroy” signal

void
user_function (IdeObject *ideobject,
               gpointer   user_data)

Flags: Run Last