RecordList PhoneBook::searchByPhone(const string & phone) { Iter i = _records.begin(), j; list<Record> ret; while ((j=searchPhone(phone, i++)) != _records.end()) ret.push_back(*j); return ret; }
void PhoneService::editPhones(int contractor, QVector<Phone> phones) { QVector<Phone> oldPhones = model->getPhones(contractor); QVector<Phone> newPhones = phones; if(oldPhones != newPhones) // telefony były edytowane { for(int i = 0; i < newPhones.size(); i++) { // jeśli nie zawierają dokładnie takiego tela, to być może była edytowana tylko nazwa lub numer if(!oldPhones.contains(newPhones[i])) { int posAtOld = searchPhone(newPhones[i].getId(), oldPhones); if(posAtOld != -1) // znaleziono telefon liscie, ale z innymi danymi, należy edytować { model->editPhone(contractor, newPhones[i]); oldPhones[posAtOld] = newPhones[i]; } else { model->addPhone(contractor, newPhones[i]); oldPhones.append(newPhones[i]); } } } } /* * jeśli dodano lub edytowano telefony to oldPhones i newPhones powinny być teraz takie same * jeśli nie są tzn., że w nowym kontraktorze usunięto pozycje ze starej faktury */ if(oldPhones != newPhones) { for(int i = 0; i < oldPhones.size(); i++) { if(!newPhones.contains(oldPhones[i])) { model->removePhone(oldPhones[i].getId()); oldPhones.remove(i); } } } }
/** * Activates the library * * @param env environment variable * @return if the returned value is less then 0, the value is an error number */ JNIEXPORT jint JNICALL Java_eu_asterics_component_actuator_phonecontrol_PhoneControlBridge_activate (JNIEnv * env, jobject obj, jstring phoneName, jint port) { int result=0; if(initated) { return Library_initialized; } result = activate(); if(result<0) { return Library_initialize_error; } result = init(deviceFound,newSMS,phoneStateChanged,0); if(result<0) { if(result==Library_initialized) { close(); result = init(deviceFound,newSMS,phoneStateChanged,0); if(result<0) { clear (); return result; } } else { clear (); return result; } } const jchar* sPhoneName = env->GetStringChars(phoneName, NULL); int nPhoneNameSize=env->GetStringLength(phoneName); wchar_t * sPhoneNameString = new wchar_t [nPhoneNameSize+1]; memcpy(sPhoneNameString, sPhoneName, nPhoneNameSize*2); sPhoneNameString[nPhoneNameSize]=0; wcscpy(sPhoneBTName,sPhoneNameString); nPhoneBTNameSize=nPhoneNameSize; devicePort=port; result=env->GetJavaVM(&g_jvm); g_obj = env->NewGlobalRef(obj); result=searchPhone(); env->ReleaseStringChars(phoneName, sPhoneName); delete[] sPhoneNameString; if(result<0) { close(); clear (); env->DeleteGlobalRef(g_obj); return result; } /* result= connectToDevice(nPhoneAddress,port); nPhonePort=port; if(result<0) { close(); clear(); return result; }*/ return 1; }