## IdeObject IdeObject |

## Functions

#define | IDE_TYPE_OBJECT
IdeContext * | ide_object_get_context ()
void | ide_object_new_async ()
IdeObject * | ide_object_new_finish ()
gboolean | ide_object_hold ()
void | ide_object_release ()

## Properties

IdeContext * | context | Read / Write / Construct Only

## Signals

void | destroy | Run Last

## Types and Values

struct | IdeObjectClass
| IdeObject

## Object Hierarchy

        GObject
        ╰── IdeObject
            ├── IdeBuildSystem
            ├── IdeVcs
            ├── IdeDeviceProvider
            ├── IdeFileSettings
            ├── IdeLanguage
            ├── IdeScript
            ├── IdeSearchProvider
            ├── IdeService
            ├── IdeBuildResult
            ├── IdeBuilder
            ├── IdeBackForwardItem
            ├── IdeBackForwardList
            ├── IdeBufferChangeMonitor
            ├── IdeBufferManager
            ├── IdeDeployer
            ├── IdeSearchResult
            ├── IdeDevice
            ├── IdeDeviceManager
            ├── IdeDiagnosticProvider
            ├── IdeDiagnostician
            ├── IdeFile
            ├── IdeHighlighter
            ├── IdeIndenter
            ├── IdeMakecache
            ├── IdeProjectItem
            ├── IdeProject
            ├── IdeScriptManager
            ├── IdeSearchContext
            ├── IdeSearchEngine
            ├── IdeSettings
            ├── IdeSourceSnippetsManager
            ├── IdeSymbolResolver
            ╰── IdeUnsavedFiles

## Description

## Functions

### IDE_TYPE_OBJECT

    #define IDE_TYPE_OBJECT (ide_object_get_type())

### ide_object_get_context ()

    IdeContext *
    ide_object_get_context (IdeObject *self);

Fetches the “context” property.

#### Returns

An IdeContext.

[transfer none]

### 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,
                          ...);

### ide_object_new_finish ()

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

### 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.

### 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. |

## Types and Values

### struct IdeObjectClass

    struct IdeObjectClass {
      GObjectClass parent;

      void (*destroy) (IdeObject *self);
    };

### 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