Package conduit :: Package dataproviders :: Module Opensync :: Class BaseDataprovider
[hide private]

Class BaseDataprovider

source code


Generic dataprovider for interfacing with OpenSync plugins

Maps all Conduit sync calls onto the OpenSync code. HAL and other integration work is left to the DPs that extend this base class.

Instance Methods [hide private]
 
__init__(self, *args)
All sync functionality should be provided by derived classes
source code
 
refresh(self)
Performs any (conduit.logging in, etc) which must be undertaken on the dataprovider prior to calling get_all().
source code
 
get_all(self)
Returns an array of all the LUIDs this dataprovider holds.
source code
conduit.DataType.DataType
get(self, LUID)
Returns data with the specified LUID.
source code
 
put(self, obj, overwrite, LUID=None)
Stores data.
source code
 
delete(self, LUID)
Deletes data with LUID.
source code
 
finish(self, aborted, error, conflict)
Perform any post-sync cleanup.
source code
string
get_UID(self)
Returns a UID that represents this dataproviders (locally) unique state and configuration.
source code
 
_convert(self, data, chgfrom, chgto)
Invoke an opensync conversion plugin
source code
 
_get_hash(self, change)
If it's valid, return an osync change hash.
source code
 
_change_to_object(self, change)
Map from an opensync data object to a Conduit data object
source code
 
_object_to_change(self, obj)
Map from a Conduit data object to an opensync data object
source code
 
_get_config(self)
Generate the config that opensync needs to use this endpoint
source code

Inherited from DataProvider.DataSource: add, get_changes, get_num_items

Inherited from DataProvider.DataProviderBase: configure, emit, emit_change_detected, get_configuration, get_configuration_xml, get_input_conversion_args, get_input_type, get_name, get_output_conversion_args, get_output_type, get_status, initialize, is_busy, is_configured, set_configuration, set_configuration_xml, set_status, uninitialize

Class Variables [hide private]
  _module_type_ = "twoway"

Inherited from DataProvider.DataProviderBase: __gsignals__, _category_, _configurable_, _description_, _icon_, _in_type_, _name_, _out_type_

Method Details [hide private]

__init__(self, *args)
(Constructor)

source code 
All sync functionality should be provided by derived classes
Overrides: DataProvider.TwoWay.__init__

refresh(self)

source code 

Performs any (conduit.logging in, etc) which must be undertaken on the dataprovider prior to calling get_all(). Should gather all information so a subsequent call to get_all() can return the uids of all the data this dataprovider holds

This function may be called multiple times so derived classes should be aware of this.

Derived classes should call this function to ensure the dataprovider status is updated.
Overrides: DataProvider.DataProviderBase.refresh
(inherited documentation)

get_all(self)

source code 
Returns an array of all the LUIDs this dataprovider holds.
Overrides: DataProvider.DataSource.get_all
(inherited documentation)

get(self, LUID)

source code 

Returns data with the specified LUID. This function must be overridden by the appropriate dataprovider.

Derived classes should call this function to ensure the dataprovider status is updated.
Returns: conduit.DataType.DataType
An item of data
Overrides: DataProvider.DataSource.get
(inherited documentation)

put(self, obj, overwrite, LUID=None)

source code 

Stores data. The derived class is responsible for checking if putData conflicts.

In the case of a two-way datasource, the derived type should consider the overwrite parameter, which if True, should allow the dp to replace a datatype instance if one is found at the existing location

Derived classes should call this function to ensure the dataprovider status is updated.
Overrides: DataProvider.DataSink.put
(inherited documentation)

delete(self, LUID)

source code 
Deletes data with LUID.
Overrides: DataProvider.DataSink.delete
(inherited documentation)

finish(self, aborted, error, conflict)

source code 
Perform any post-sync cleanup. For example, free any structures created in refresh that were used in the synchronization.
Overrides: DataProvider.DataProviderBase.finish
(inherited documentation)

get_UID(self)

source code 

Returns a UID that represents this dataproviders (locally) unique state and configuration. For example the LUID for a gmail dp may be your username and password.

Derived types MUST overwride this function
Returns: string
Overrides: DataProvider.DataProviderBase.get_UID
(inherited documentation)

_get_hash(self, change)

source code 
If it's valid, return an osync change hash. Otherwise, generate a new one.