EServerSideSource

EServerSideSource — A server-side data source

Types and Values

Object Hierarchy

    GObject
    ╰── ESource
        ╰── EServerSideSource

Implemented Interfaces

EServerSideSource implements GInitable and GProxyResolver.

Includes

#include <libebackend/libebackend.h>

Description

An EServerSideSource is an ESource with some additional capabilities exclusive to the registry D-Bus service.

Functions

e_server_side_source_get_user_dir ()

const gchar *
e_server_side_source_get_user_dir (void);

Returns the directory where user-specific data source files are stored.

Returns

the user-specific data source directory

Since: 3.6


e_server_side_source_new_user_file ()

GFile *
e_server_side_source_new_user_file (const gchar *uid);

Generates a unique file name for a new user-specific data source. If uid is non-NULL it will be used in the basename of the file, otherwise a unique basename will be generated using e_uid_new().

The returned GFile can then be passed to e_server_side_source_new(). Unreference the GFile with g_object_unref() when finished with it.

Note the data source file itself is not created here, only its name.

Parameters

uid

unique identifier for a data source, or NULL

 

Returns

the GFile for a new data source

Since: 3.6


e_server_side_source_uid_from_file ()

gchar *
e_server_side_source_uid_from_file (GFile *file,
                                    GError **error);

Extracts a unique identity string from the base name of file . If the base name of file is missing a '.source' extension, the function sets error and returns NULL.

Parameters

file

a GFile for a data source

 

error

return location for a GError, or NULL

 

Returns

the unique identity string for file , or NULL

Since: 3.6


e_server_side_source_new ()

ESource *
e_server_side_source_new (ESourceRegistryServer *server,
                          GFile *file,
                          GError **error);

Creates a new EServerSideSource which belongs to server . If file is non-NULL and points to an existing file, the EServerSideSource is initialized from the file content. If a read error occurs or the file contains syntax errors, the function sets error and returns NULL.

Parameters

server

an ESourceRegistryServer

 

file

a GFile, or NULL

 

error

return location for a GError, or NULL

 

Returns

a new EServerSideSource, or NULL

Since: 3.6


e_server_side_source_new_memory_only ()

ESource *
e_server_side_source_new_memory_only (ESourceRegistryServer *server,
                                      const gchar *uid,
                                      GError **error);

Creates a memory-only EServerSideSource which belongs to server . No on-disk key file is created for this data source, so it will not be remembered across sessions.

Data source collections are often populated with memory-only data sources to serve as proxies for resources discovered on a remote server. These data sources are usually neither “writable” nor “removable” by clients, at least not directly.

If an error occurs while instantiating the EServerSideSource, the function sets error and returns NULL. Although at this time there are no known error conditions for memory-only data sources.

Parameters

server

an ESourceRegistryServer

 

uid

a unique identifier, or NULL

 

error

return location for a GError, or NULL

 

Returns

a new memory-only EServerSideSource, or NULL

Since: 3.6


e_server_side_source_load ()

gboolean
e_server_side_source_load (EServerSideSource *source,
                           GCancellable *cancellable,
                           GError **error);

Reloads data source content from the file pointed to by the “file” property.

If the “file” property is NULL or the file it points to does not exist, the function does nothing and returns TRUE.

If a read error occurs or the file contains syntax errors, the function sets error and returns FALSE.

Parameters

source

an EServerSideSource

 

cancellable

optional GCancellable object, or NULL

 

error

return location for a GError, or NULL

 

Returns

TRUE on success, FALSE on failure

Since: 3.6


e_server_side_source_get_file ()

GFile *
e_server_side_source_get_file (EServerSideSource *source);

Returns the GFile from which data source content is loaded and to which changes are saved. Note the source may not have a GFile.

Parameters

source

an EServerSideSource

 

Returns

the GFile for source , or NULL

Since: 3.6


e_server_side_source_get_node ()

GNode *
e_server_side_source_get_node (EServerSideSource *source);

Returns the GNode representing the source 's hierarchical placement, or NULL if source has not been placed in the data source hierarchy. The data member of the GNode points back to source . This is an easy way to traverse ancestor and descendant data sources.

Note that accessing other data sources this way is not thread-safe, and this therefore function may be replaced at some later date.

Parameters

source

an EServerSideSource

 

Returns

a GNode, or NULL

Since: 3.6


e_server_side_source_get_server ()

ESourceRegistryServer *
e_server_side_source_get_server (EServerSideSource *source);

Returns the ESourceRegistryServer to which source belongs.

Parameters

source

an EServerSideSource

 

Returns

the ESourceRegistryServer for source

Since: 3.6


e_server_side_source_get_exported ()

gboolean
e_server_side_source_get_exported (EServerSideSource *source);

Returns whether source has been exported over D-Bus.

The function returns FALSE after source is initially created, TRUE after passing source to e_source_registry_add_source() (provided that source 's “parent” is also exported), and FALSE after passing source to e_source_registry_remove_source().

Parameters

source

an EServerSideSource

 

Returns

whether source has been exported

Since: 3.6


e_server_side_source_get_write_directory ()

const gchar *
e_server_side_source_get_write_directory
                               (EServerSideSource *source);

Returns the local directory path where changes to source are written.

By default, changes are written to the local directory path returned by e_server_side_source_get_user_dir(), but an ECollectionBackend may wish to override this to use its own private cache directory for data sources it creates automatically.

Parameters

source

an EServerSideSource

 

Returns

the directory where changes are written

Since: 3.6


e_server_side_source_set_write_directory ()

void
e_server_side_source_set_write_directory
                               (EServerSideSource *source,
                                const gchar *write_directory);

Sets the local directory path where changes to source are to be written.

By default, changes are written to the local directory path returned by e_server_side_source_get_user_dir(), but an ECollectionBackend may wish to override this to use its own private cache directory for data sources it creates automatically.

Parameters

source

an EServerSideSource

 

write_directory

the directory where changes are to be written

 

Since: 3.6


e_server_side_source_set_removable ()

void
e_server_side_source_set_removable (EServerSideSource *source,
                                    gboolean removable);

Sets whether to allow registry clients to remove source and its descendants. If TRUE, the Removable D-Bus interface is exported at the object path for source . If FALSE, the Removable D-Bus interface is unexported at the object path for source , and any attempt by clients to call e_source_remove() will fail.

Note this is only enforced for clients of the registry D-Bus service. The service itself may remove any data source at any time.

Parameters

source

an EServerSideSource

 

removable

whether to export the Removable interface

 

Since: 3.6


e_server_side_source_set_writable ()

void
e_server_side_source_set_writable (EServerSideSource *source,
                                   gboolean writable);

Sets whether to allow registry clients to alter the content of source . If TRUE, the Writable D-Bus interface is exported at the object path for source . If FALSE, the Writable D-Bus interface is unexported at the object path for source , and any attempt by clients to call e_source_write() will fail.

Note this is only enforced for clients of the registry D-Bus service. The service itself can write to any data source at any time.

Parameters

source

an EServerSideSource

 

writable

whether to export the Writable interface

 

Since: 3.6


e_server_side_source_set_remote_creatable ()

void
e_server_side_source_set_remote_creatable
                               (EServerSideSource *source,
                                gboolean remote_creatable);

Indicates whether source can be used to create resources on a remote server. Typically this is only set to TRUE for collection sources.

If TRUE, the RemoteCreatable D-Bus interface is exported at the object path for source . If FALSE, the RemoteCreatable D-Bus interface is unexported at the object path for source , and any attempt by clients to call e_source_remote_create() will fail.

Unlike the “removable” and “writable” properties, this is enforced for both clients of the registry D-Bus service and within the registry D-Bus service itself.

Parameters

source

an EServerSideSource

 

remote_creatable

whether to export the RemoteCreatable interface

 

Since: 3.6


e_server_side_source_set_remote_deletable ()

void
e_server_side_source_set_remote_deletable
                               (EServerSideSource *source,
                                gboolean remote_deletable);

Indicates whether source can be used to delete resources on a remote server. Typically this is only set to TRUE for sources created by an ECollectionBackend to represent a remote resource.

If TRUE, the RemoteDeletable D-Bus interface is exported at the object path for source . If FALSE, the RemoteDeletable D-Bus interface is unexported at the object path for source , and any attempt by clients to call e_source_remote_delete() will fail.

Unlike the “removable” and “writable” properties, this is enforced for both clients of the registry D-Bus server and within the registry D-Bus service itself.

Parameters

source

an EServerSideSource

 

remote_deletable

whether to export the RemoteDeletable interface

 

Since: 3.6


e_server_side_source_ref_oauth2_support ()

EOAuth2Support *
e_server_side_source_ref_oauth2_support
                               (EServerSideSource *source);

Returns the object implementing the EOAuth2SupportInterface, or NULL if source does not support OAuth 2.0 authentication.

The returned EOAuth2Support object is referenced for thread-safety. Unreference the object with g_object_unref() when finished with it.

Parameters

source

an EServerSideSource

 

Returns

an EOAuth2Support object, or NULL

Since: 3.8


e_server_side_source_set_oauth2_support ()

void
e_server_side_source_set_oauth2_support
                               (EServerSideSource *source,
                                EOAuth2Support *oauth2_support);

Indicates whether source supports OAuth 2.0 authentication.

If oauth2_support is non-NULL, the OAuth2Support D-Bus interface is exported at the object path for source . If oauth2_support is NULL, the OAuth2Support D-Bus interface is unexported at the object path for source , and any attempt by clients to call e_source_get_oauth2_access_token() will fail.

Requests for OAuth 2.0 access tokens are forwarded to oauth2_support , which implements the EOAuth2SupportInterface.

Parameters

source

an EServerSideSource

 

oauth2_support

an EOAuth2Support object, or NULL

 

Since: 3.8

Types and Values

struct EServerSideSource

struct EServerSideSource;

Contains only private data that should be read and manipulated using the functions below.

Since: 3.6