GckObjectCache

GckObjectCache — An interface which holds attributes for a PKCS#11 object

Properties

GckAttributes * attributes Read / Write

Types and Values

Object Hierarchy

    GInterface
    ╰── GckObjectCache

Prerequisites

GckObjectCache requires GckObject.

Description

GckObjectCache is an interface implemented by derived classes of GckObject to indicate which attributes they'd like an enumerator to retrieve. These attributes are then cached on the object and can be retrieved through the “attributes” property.

Functions

gck_object_cache_get_attributes ()

GckAttributes *
gck_object_cache_get_attributes (GckObjectCache *object);


gck_object_cache_set_attributes ()

void
gck_object_cache_set_attributes (GckObjectCache *object,
                                 GckAttributes *attrs);

Sets the attributes cached on this object.

If the attrs GckAttributes is floating, it is consumed.

Parameters

object

an object with an attribute cache

 

attrs

the attributes to set.

[allow-none]

gck_object_cache_fill ()

void
gck_object_cache_fill (GckObjectCache *object,
                       GckAttributes *attrs);

Adds the attributes to the set cached on this object. If an attribute is already present in the cache it will be overridden by this value.

This will be done in a thread-safe manner.

If the attrs GckAttributes is floating, it is consumed.

Parameters

object

an object with the cache

 

attrs

the attributes to cache

 

gck_object_cache_lookup ()

GckAttributes *
gck_object_cache_lookup (GckObject *object,
                         const gulong *attr_types,
                         gint n_attr_types,
                         GCancellable *cancellable,
                         GError **error);

Lookup attributes in the cache, or retrieve them from the object if necessary.

If object is a GckObjectCache then this will lookup the attributes there first if available, otherwise will read them from the object and update the cache.

If object is not a GckObjectCache, then the attributes will simply be read from the object.

This may block, use the asynchronous version when this is not desirable

Parameters

object

the object

 

attr_types

the types of attributes to update.

[array length=n_attr_types]

n_attr_types

the number of attribute types

 

cancellable

optional cancellation object

 

error

location to place an error

 

Returns

the attributes retrieved or NULL on failure.

[transfer full]


gck_object_cache_lookup_async ()

void
gck_object_cache_lookup_async (GckObject *object,
                               const gulong *attr_types,
                               gint n_attr_types,
                               GCancellable *cancellable,
                               GAsyncReadyCallback callback,
                               gpointer user_data);

Lookup attributes in the cache, or retrieve them from the object if necessary.

If object is a GckObjectCache then this will lookup the attributes there first if available, otherwise will read them from the object and update the cache.

If object is not a GckObjectCache, then the attributes will simply be read from the object.

This will return immediately and complete asynchronously

Parameters

object

the object

 

attr_types

the types of attributes to update.

[array length=n_attr_types]

n_attr_types

the number of attribute types

 

cancellable

optional cancellation object

 

callback

called when the operation completes

 

user_data

data to pass to the callback

 

gck_object_cache_lookup_finish ()

GckAttributes *
gck_object_cache_lookup_finish (GckObject *object,
                                GAsyncResult *result,
                                GError **error);

Complete an operation to lookup attributes in the cache or retrieve them from the object if necessary.

Parameters

object

the object

 

result

the asynchrounous result passed to the callback

 

error

location to place an error

 

Returns

the attributes retrieved or NULL on failure.

[transfer full]


gck_object_cache_update ()

gboolean
gck_object_cache_update (GckObjectCache *object,
                         const gulong *attr_types,
                         gint n_attr_types,
                         GCancellable *cancellable,
                         GError **error);

Update the object cache with given attributes. If an attribute already exists in the cache, it will be updated, and if it doesn't it will be added.

This may block, use the asynchronous version when this is not desirable

Parameters

object

the object with the cache

 

attr_types

the types of attributes to update.

[array length=n_attr_types]

n_attr_types

the number of attribute types

 

cancellable

optional cancellation object

 

error

location to place an error

 

Returns

whether the cache update was successful


gck_object_cache_update_async ()

void
gck_object_cache_update_async (GckObjectCache *object,
                               const gulong *attr_types,
                               gint n_attr_types,
                               GCancellable *cancellable,
                               GAsyncReadyCallback callback,
                               gpointer user_data);

Update the object cache with given attributes. If an attribute already exists in the cache, it will be updated, and if it doesn't it will be added.

This call will return immediately and complete asynchronously.

Parameters

object

the object with the cache

 

attr_types

the types of attributes to update.

[array length=n_attr_types]

n_attr_types

the number of attribute types

 

cancellable

optional cancellation object

 

callback

called when the operation completes

 

user_data

data to be passed to the callback

 

gck_object_cache_update_finish ()

gboolean
gck_object_cache_update_finish (GckObjectCache *object,
                                GAsyncResult *result,
                                GError **error);

Complete an asynchronous operation to update the object cache with given attributes.

Parameters

object

the object with the cache

 

result

the asynchronous result passed to the callback

 

error

location to place an error

 

Returns

whether the cache update was successful

Types and Values

GckObjectCache

typedef struct _GckObjectCache GckObjectCache;

An interface implemented on an GckObject which contains a cache of attributes.


struct GckObjectCacheIface

struct GckObjectCacheIface {
	GTypeInterface interface;

	const gulong *  default_types;
	gint            n_default_types;

	void         (* fill)                              (GckObjectCache *object,
	                                                    GckAttributes *attrs);
};

Interface for GckObjectCache. If the default_types field is set by a implementing class, then the a GckEnumerator which has been setup using gck_enumerator_set_object_type()

The implementation for populate should add the attributes to the cache. It must be thread safe.

Members

GTypeInterface interface;

parent interface

 

const gulong *default_types;

attribute types that an enumerator should retrieve.

[array length=n_default_types]

gint n_default_types;

number of attribute types to be retrieved

 

fill ()

virtual method to add attributes to the cache

 

Property Details

The “attributes” property

  “attributes”               GckAttributes *

The attributes cached on this object.

Flags: Read / Write