Changeset 1764

Show
Ignore:
Timestamp:
02/19/07 17:47:07 (22 months ago)
Author:
dgollub
Message:

Fixed build of kdepim-sync for new API.
Not tested... it is not going to be useable!

Location:
plugins/kdepim/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • plugins/kdepim/src/kaddrbook.cpp

    r1760 r1764  
    3131#include <qdeepcopy.h> 
    3232 
    33 KContactDataSource::KContactDataSource(OSyncMember *member, OSyncHashTable *hashtable) : hashtable(hashtable), member(member) 
     33KContactDataSource::KContactDataSource(OSyncHashTable *hashtable) : hashtable(hashtable) 
    3434{ 
    3535        connected = false; 
     
    5555} 
    5656 
    57 bool KContactDataSource::connect(OSyncContext *ctx) 
    58 { 
    59         osync_trace(TRACE_ENTRY, "%s(%p)", __func__, ctx); 
     57bool KContactDataSource::connect(OSyncPluginInfo *info, OSyncContext *ctx) 
     58{ 
     59        osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, info, ctx); 
    6060 
    6161        DCOPClient *dcopc = KApplication::kApplication()->dcopClient(); 
     
    7979        addressbookptr = KABC::StdAddressBook::self(); 
    8080 
     81        OSyncObjTypeSink *sink = osync_plugin_info_get_sink(info); 
     82 
    8183        //Detection mechanismn if this is the first sync 
    82         if (!osync_anchor_compare(member, "contact", "true")) { 
     84        QString anchorpath = QString("%1/anchor.db").arg(osync_plugin_info_get_configdir(info)); 
     85        if (!osync_anchor_compare(anchorpath, "contact", "true")) { 
    8386                osync_trace(TRACE_INTERNAL, "Setting slow-sync contact"); 
    84                 osync_member_set_slow_sync(member, "contact", TRUE); 
     87                osync_objtype_sink_set_slowsync(sink, TRUE); 
    8588        } 
    8689 
     
    9093} 
    9194 
    92 bool KContactDataSource::disconnect(OSyncContext *ctx) 
    93 { 
    94         osync_trace(TRACE_ENTRY, "%s(%p)", __func__, ctx); 
     95bool KContactDataSource::disconnect(OSyncPluginInfo *info, OSyncContext *ctx) 
     96{ 
     97        osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, info, ctx); 
    9598 
    9699        KABC::Ticket *ticket = addressbookptr->requestSaveTicket(); 
     
    113116 
    114117 
    115 bool KContactDataSource::contact_get_changeinfo(OSyncContext *ctx) 
    116 { 
    117         osync_trace(TRACE_ENTRY, "%s(%p)", __func__, ctx); 
    118  
    119         if (osync_member_get_slow_sync(member, "contact")) { 
     118bool KContactDataSource::contact_get_changeinfo(OSyncPluginInfo *info, OSyncContext *ctx) 
     119{ 
     120        osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, info, ctx); 
     121 
     122        OSyncError *error = NULL; 
     123        OSyncObjTypeSink *sink = osync_plugin_info_get_sink(info); 
     124 
     125        if (osync_objtype_sink_get_slowsync(sink)) { 
    120126                osync_trace(TRACE_INTERNAL, "Got slow-sync"); 
    121                 osync_hashtable_set_slow_sync(hashtable, "contact"); 
     127                osync_hashtable_reset(hashtable); 
    122128        } 
    123129 
     
    129135        } 
    130136 
     137        OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); 
     138        OSyncObjFormat *objformat = osync_format_env_find_objformat(formatenv, "vcard30"); 
     139 
    131140        KABC::VCardConverter converter; 
    132141        for (KABC::AddressBook::Iterator it=addressbookptr->begin(); it!=addressbookptr->end(); it++ ) { 
    133142                QString uid = it->uid(); 
    134143 
    135                 OSyncChange *chg = osync_change_new(); 
    136  
    137                 osync_change_set_member(chg, member); 
    138                 osync_change_set_uid(chg, uid.local8Bit()); 
     144                OSyncChange *change = osync_change_new(&error); 
     145 
     146                osync_change_set_uid(change, uid.local8Bit()); 
    139147 
    140148                QString hash = calc_hash(*it); 
     
    148156                osync_trace(TRACE_SENSITIVE,"\n%s", data); 
    149157 
    150                 osync_change_set_data(chg, data, strlen(data) + 1, TRUE); 
    151  
    152                 // object type and format 
    153                 osync_change_set_objtype_string(chg, "contact"); 
    154                 osync_change_set_objformat_string(chg, "vcard30"); 
     158                OSyncData *odata = osync_data_new(data, strlen(data), objformat, &error); 
     159                if (!odata) { 
     160                        osync_change_unref(change); 
     161                        osync_context_report_osyncwarning(ctx, error); 
     162                        osync_error_unref(&error); 
     163                        continue; 
     164                } 
     165 
     166                osync_data_set_objtype(odata, osync_objtype_sink_get_name(sink)); 
     167 
     168                //Now you can set the data for the object 
     169                osync_change_set_data(change, odata); 
     170                osync_data_unref(odata); 
    155171 
    156172                // Use the hash table to check if the object 
    157173                // needs to be reported 
    158                 osync_change_set_hash(chg, hash.data()); 
    159                 if (osync_hashtable_detect_change(hashtable, chg)) { 
    160                         osync_context_report_change(ctx, chg); 
    161                         osync_hashtable_update_hash(hashtable, chg); 
    162                 } 
    163         } 
    164  
    165         // Use the hashtable to report deletions 
    166         osync_hashtable_report_deleted(hashtable, ctx, "contact"); 
     174                osync_change_set_hash(change, hash.data()); 
     175                OSyncChangeType changetype = osync_hashtable_get_changetype(hashtable, uid.local8Bit(), hash.data()); 
     176                if (OSYNC_CHANGE_TYPE_UNMODIFIED != changetype) { 
     177                        osync_context_report_change(ctx, change); 
     178                        osync_hashtable_update_hash(hashtable, changetype, uid, hash.data()); 
     179                } 
     180        } 
     181 
     182        int i; 
     183        char **uids = osync_hashtable_get_deleted(hashtable); 
     184        for (i=0; uids[i]; i++) { 
     185                OSyncChange *change = osync_change_new(&error); 
     186                if (!change) { 
     187                        g_free(uids[i]); 
     188                        osync_context_report_osyncwarning(ctx, error); 
     189                        osync_error_unref(&error); 
     190                        continue; 
     191                } 
     192 
     193                osync_change_set_uid(change, uids[i]); 
     194                osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_DELETED); 
     195 
     196                OSyncData *odata = osync_data_new(NULL, 0, objformat, &error); 
     197                if (!odata) { 
     198                        g_free(uids[i]); 
     199                        osync_change_unref(change); 
     200                        osync_context_report_osyncwarning(ctx, error); 
     201                        osync_error_unref(&error); 
     202                        continue; 
     203                } 
     204 
     205                osync_data_set_objtype(odata, osync_objtype_sink_get_name(sink)); 
     206                osync_change_set_data(change, odata); 
     207                osync_data_unref(odata); 
     208 
     209                osync_context_report_change(ctx, change); 
     210 
     211                osync_hashtable_update_hash(hashtable, osync_change_get_changetype(change), osync_change_get_uid(change), NULL); 
     212 
     213                osync_change_unref(change); 
     214                g_free(uids[i]); 
     215        } 
     216        g_free(uids); 
    167217 
    168218        osync_trace(TRACE_EXIT, "%s", __func__); 
     
    183233 
    184234        // convert VCARD string from obj->comp into an Addresse object. 
    185         char *data = osync_change_get_data(chg); 
    186         size_t data_size = osync_change_get_datasize(chg); 
     235        OSyncData *odata = osync_change_get_data(chg); 
     236 
     237        char *data; 
     238        size_t data_size;  
     239 
     240        osync_data_get_data(odata, &data, &data_size); 
     241 
    187242        QString uid = osync_change_get_uid(chg); 
    188243 
     
    248303} 
    249304 
    250 bool KContactDataSource::vcard_access(OSyncContext *ctx, OSyncChange *chg) 
     305bool KContactDataSource::vcard_access(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) 
    251306{ 
    252307        if (!__vcard_access(ctx, chg)) 
     
    257312} 
    258313 
    259 bool KContactDataSource::vcard_commit_change(OSyncContext *ctx, OSyncChange *chg) 
     314bool KContactDataSource::vcard_commit_change(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) 
    260315{ 
    261316        if ( !__vcard_access(ctx, chg) ) 
    262317                return false; 
    263318 
    264         osync_hashtable_update_hash(hashtable, chg); 
    265319        osync_context_report_success(ctx); 
    266320        return true; 
  • plugins/kdepim/src/kaddrbook.h

    r1620 r1764  
    3434        private: 
    3535                KABC::AddressBook* addressbookptr; 
    36  
    3736                OSyncHashTable *hashtable; 
    38                 OSyncMember *member; 
    3937 
    4038                bool __vcard_access(OSyncContext *ctx, OSyncChange *chg); 
    4139 
     40 
    4241        public: 
    43                 KContactDataSource(OSyncMember *member, OSyncHashTable *hashtable); 
     42                KContactDataSource(OSyncHashTable *hashtable); 
    4443 
    4544                QString calc_hash(KABC::Addressee &e); 
    46                 bool connect(OSyncContext *ctx); 
    47                 bool disconnect(OSyncContext *ctx); 
    48                 bool contact_get_changeinfo(OSyncContext *ctx); 
    49                 bool vcard_access(OSyncContext *ctx, OSyncChange *chg); 
    50                 bool vcard_commit_change(OSyncContext *ctx, OSyncChange *chg); 
     45                bool connect(OSyncPluginInfo *info, OSyncContext *ctx); 
     46                bool disconnect(OSyncPluginInfo *info, OSyncContext *ctx); 
     47                bool contact_get_changeinfo(OSyncPluginInfo *info, OSyncContext *ctx); 
     48                bool vcard_access(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); 
     49                bool vcard_commit_change(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); 
    5150                bool connected; 
    5251}; 
  • plugins/kdepim/src/kdepim_impl.cpp

    r1763 r1764  
    9393                        mHashtable = osync_hashtable_new(tablepath, osync_objtype_sink_get_name(sink), error); 
    9494 
    95                         mKaddrbook = new KContactDataSource(mMember, mHashtable); 
     95                        mKaddrbook = new KContactDataSource(mHashtable); 
    9696 
    9797                        osync_trace(TRACE_EXIT, "%s", __func__); 
     
    110110                } 
    111111 
    112                 virtual void connect(OSyncPluginInfo * /*info*/, OSyncContext *ctx) 
     112                virtual void connect(OSyncPluginInfo *info, OSyncContext *ctx) 
    113113                { 
    114114                        osync_trace(TRACE_ENTRY, "%s(%p)", __func__, ctx); 
     
    117117 
    118118                        if (mKaddrbook && \ 
    119                                 !mKaddrbook->connect(ctx)) { 
     119                                !mKaddrbook->connect(info, ctx)) { 
    120120                                osync_trace(TRACE_EXIT_ERROR, "%s: Unable to open addressbook", __func__); 
    121121                                return; 
     
    126126                } 
    127127 
    128                 virtual void disconnect(OSyncPluginInfo * /*info*/, OSyncContext *ctx) 
     128                virtual void disconnect(OSyncPluginInfo *info, OSyncContext *ctx) 
    129129                { 
    130                         if (mKaddrbook && mKaddrbook->connected && !mKaddrbook->disconnect(ctx)) 
     130                        if (mKaddrbook && mKaddrbook->connected && !mKaddrbook->disconnect(info, ctx)) 
    131131                                return; 
    132132 
     
    145145                } 
    146146 
    147                 virtual void get_changeinfo(OSyncPluginInfo * /*info*/, OSyncContext *ctx) 
     147                virtual void get_changeinfo(OSyncPluginInfo *info, OSyncContext *ctx) 
    148148                { 
    149                         if (mKaddrbook && mKaddrbook->connected && !mKaddrbook->contact_get_changeinfo(ctx)) 
     149                        if (mKaddrbook && mKaddrbook->connected && !mKaddrbook->contact_get_changeinfo(info, ctx)) 
    150150                                return; 
    151151                        osync_context_report_success(ctx); 
    152152                } 
    153153 
    154                 virtual bool vcard_access(OSyncPluginInfo * /*info*/, OSyncContext *ctx, OSyncChange *chg) 
     154                virtual bool vcard_access(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) 
    155155                { 
    156156                        if (mKaddrbook) 
    157                                 return mKaddrbook->vcard_access(ctx, chg); 
     157                                return mKaddrbook->vcard_access(info, ctx, chg); 
    158158                        else { 
    159159                                osync_context_report_error(ctx, OSYNC_ERROR_NOT_SUPPORTED, "No addressbook loaded"); 
     
    163163                } 
    164164 
    165                 virtual bool vcard_commit_change(OSyncPluginInfo * /*info*/, OSyncContext *ctx, OSyncChange *chg) 
     165                virtual bool vcard_commit_change(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) 
    166166                { 
    167167                        if (mKaddrbook) 
    168                                 return mKaddrbook->vcard_commit_change(ctx, chg); 
     168                                return mKaddrbook->vcard_commit_change(info, ctx, chg); 
    169169                        else { 
    170170                                osync_context_report_error(ctx, OSYNC_ERROR_NOT_SUPPORTED, "No addressbook loaded"); 
  • plugins/kdepim/src/osyncbase.h

    r1763 r1764  
    99#include <opensync/opensync-data.h> 
    1010#include <opensync/opensync-helper.h> 
     11#include <opensync/opensync-format.h>    
    1112} 
    1213