## IdeVcsCloner IdeVcsCloner |

## Functions

gchar * | ide_vcs_cloner_get_title ()
void | ide_vcs_cloner_clone_async ()
gboolean | ide_vcs_cloner_clone_finish ()
gboolean | ide_vcs_cloner_validate_uri ()
gboolean | ide_vcs_cloner_clone_simple ()

## Types and Values

#define | IDE_TYPE_VCS_CLONER
struct | IdeVcsClonerInterface
| IdeVcsCloner

## Object Hierarchy

        GInterface
        ╰── IdeVcsCloner

## Prerequisites

IdeVcsCloner requires IdeObject.

## Description

## Functions

### ide_vcs_cloner_get_title ()

    gchar *
    ide_vcs_cloner_get_title (IdeVcsCloner *self);

Gets the for the cloner, such as "Git". This may be used to present a selector to the user based on the backend clone engine. Other suitable titles might be "Subversion" or "CVS".

#### Parameters

self | a IdeVcsCloner |

#### Returns

a string containing the title.

[transfer full]

Since: 3.32

### ide_vcs_cloner_clone_async ()

    void
    ide_vcs_cloner_clone_async (IdeVcsCloner *self,
                                const gchar *uri,
                                const gchar *destination,
                                GVariant *options,
                                IdeNotification *progress,
                                GCancellable *cancellable,
                                GAsyncReadyCallback callback,
                                gpointer user_data);

#### Parameters

self | an IdeVcsCloner |
uri | a string containing the URI |
destination | a string containing the destination path |
options | a GVariant containing any user supplied options |
cancellable | a GCancellable. | [nullable]
progress | a location for an IdeNotification, or `NULL`. | [nullable]
callback | a GAsyncReadyCallback to execute upon completion |
user_data | closure data for `callback` |

Since: 3.32

### ide_vcs_cloner_clone_finish ()

    gboolean
    ide_vcs_cloner_clone_finish (IdeVcsCloner *self,
                                 GAsyncResult *result,
                                 GError **error);

#### Parameters

self | an IdeVcsCloner |
result | a GAsyncResult provided to callback |
error | a location for a GError, or `NULL` |

#### Returns

`TRUE` if successful; otherwise `FALSE` and `error` is set.

Since: 3.32

### ide_vcs_cloner_validate_uri ()

    gboolean
    ide_vcs_cloner_validate_uri (IdeVcsCloner *self,
                                 const gchar *uri,
                                 gchar **errmsg);

Checks to see if `uri` is valid, and if not, sets `errmsg` to a string describing how the URI is invalid.

#### Parameters

self | a IdeVcsCloner |
uri | a string containing the URI to validate |
errmsg | a location for an error message. | [out][optional]

#### Returns

`TRUE` if `uri` is valid, otherwise `FALSE` and `error` is set.

Since: 3.32

### ide_vcs_cloner_clone_simple ()

    gboolean
    ide_vcs_cloner_clone_simple (IdeContext *context,
                                 const gchar *module_name,
                                 const gchar *url,
                                 const gchar *branch,
                                 const gchar *destination,
                                 IdeNotification *notif,
                                 GCancellable *cancellable,
                                 GError **error);

## Types and Values

### IDE_TYPE_VCS_CLONER

    #define IDE_TYPE_VCS_CLONER (ide_vcs_cloner_get_type())

### struct IdeVcsClonerInterface

    struct IdeVcsClonerInterface {
      GTypeInterface parent_iface;

      gchar    *(*get_title)    (IdeVcsCloner         *self);
      gboolean  (*validate_uri) (IdeVcsCloner         *self,
                                 const gchar          *uri,
                                 gchar               **errmsg);
      void      (*clone_async)  (IdeVcsCloner         *self,
                                 const gchar          *uri,
                                 const gchar          *destination,
                                 GVariant             *options,
                                 IdeNotification      *progress,
                                 GCancellable         *cancellable,
                                 GAsyncReadyCallback   callback,
                                 gpointer              user_data);
      gboolean  (*clone_finish) (IdeVcsCloner         *self,
                                 GAsyncResult         *result,
                                 GError              **error);
    };

### IdeVcsCloner

    typedef struct _IdeVcsCloner IdeVcsCloner;