void CSametimeProto::ExportContactsToServer() { mwSametimeList* user_list; mwStorageUnit* unit; mwPutBuffer* buff; mwOpaque* op; debugLog(_T("CSametimeProto::ExportContactsToServer() start")); if (MW_SERVICE_IS_DEAD(service_storage)) { debugLog(_T("CSametimeProto::ExportContactsToServer() Failed")); showPopup(TranslateT("Failed to upload contacts - storage service unavailable."), SAMETIME_POPUP_ERROR); return; } user_list = mwSametimeList_new(); ExportContactsToList(user_list); buff = mwPutBuffer_new(); mwSametimeList_put(buff, user_list); mwSametimeList_free(user_list); /* put the buffer contents into a storage unit */ unit = mwStorageUnit_new(mwStore_AWARE_LIST); op = mwStorageUnit_asOpaque(unit); mwPutBuffer_finalize(op, buff); /* save the storage unit to the service */ mwServiceStorage_save(service_storage, unit, NULL, NULL, NULL); }
void CSametimeProto::UserListAddStored() { mwStorageUnit* unit; unit = mwStorageUnit_new(mwStore_AWARE_LIST); mwServiceStorage_load(service_storage, unit, &load_users_callback, (gpointer)this, 0); }
void MeanwhileSession::syncContactsFromServer() { struct mwStorageUnit *unit = mwStorageUnit_new(mwStore_AWARE_LIST); mwServiceStorage_load(storageService, unit, &_handleStorageLoad, 0L, 0L); }
void MeanwhileSession::syncContactsToServer() { HERE; struct mwSametimeList *list = mwSametimeList_new(); /* set up a fallback group for top-level contacts */ struct mwSametimeGroup *topstgroup = mwSametimeGroup_new(list, mwSametimeGroup_DYNAMIC, "People"); mwSametimeGroup_setOpen(topstgroup, true); const QHash<QString, Kopete::Contact *> contacts = account->contacts(); // Q3DictIterator<Kopete::Contact> it(account->contacts()); for(QHash<QString, Kopete::Contact *>::const_iterator it = contacts.constBegin(); it != contacts.constEnd(); ++it ) { MeanwhileContact *contact = static_cast<MeanwhileContact *>(it.value()); /* Find the group that the metacontact is in */ Kopete::MetaContact *mc = contact->metaContact(); if (!mc) continue; Kopete::Group *contactgroup = mc->groups().value(0); if (!contactgroup) continue; if (contactgroup->type() == Kopete::Group::Temporary) continue; struct mwSametimeGroup *stgroup; if (contactgroup->type() == Kopete::Group::TopLevel) { stgroup = topstgroup; } else { /* find (or create) a matching sametime list group */ stgroup = mwSametimeList_findGroup(list, contactgroup->displayName().toUtf8().constData()); if (!stgroup) { stgroup = mwSametimeGroup_new(list, mwSametimeGroup_DYNAMIC, contactgroup->displayName().toUtf8().constData()); } mwSametimeGroup_setOpen(stgroup, contactgroup->isExpanded()); mwSametimeGroup_setAlias(stgroup, contactgroup->pluginData(account->protocol(), "alias").toUtf8().constData()); } QByteArray tmpMeanwhileId = contact->meanwhileId().toUtf8(); /* now add the user (by IDBlock) */ struct mwIdBlock id = { (gchar*)tmpMeanwhileId.constData(), 0 }; struct mwSametimeUser *stuser = mwSametimeUser_new(stgroup, mwSametimeUser_NORMAL, &id); mwSametimeUser_setAlias(stuser, mc->displayName().toUtf8().constData()); } /* store! */ struct mwPutBuffer *buf = mwPutBuffer_new(); struct mwStorageUnit *unit = mwStorageUnit_new(mwStore_AWARE_LIST); struct mwOpaque *opaque = mwStorageUnit_asOpaque(unit); mwSametimeList_put(buf, list); mwPutBuffer_finalize(opaque, buf); mwServiceStorage_save(storageService, unit, NULL, NULL, NULL); mwSametimeList_free(list); }