#include "ContactRepository.h" #include CContactRepository::CContactRepository() { } //int CContactRepository::LoadContacts() //{ // QFile* ContactsFile = new QFile("./Configuration/Contacts.mcc"); // if(ContactsFile) // { // if(ContactsFile->open(QIODevice::ReadOnly | QIODevice::Unbuffered) == false) // { // if(ContactsFile->open(QIODevice::WriteOnly | QIODevice::Unbuffered) == true) // { // mContactsList.clear(); // SaveContacts(); //create an empty file... // } // return 0; // } // } // else // { // return 0; // } // mContactsList.clear(); // QDataStream * InputStream = new QDataStream(ContactsFile); // quint32 MagicNbr;// = 0xBAADCAFE; // quint32 NbEntries; // *InputStream >> MagicNbr; // if(MagicNbr != 0xDEADBEEF) // { // return RET_ERROR; // } // *InputStream >> NbEntries; // for(unsigned int i = 0; i < NbEntries; i++) // { // CContact NewContact; // *InputStream >> NewContact; // mContactsList.append(NewContact); // } // qDebug("Loaded %d contacts",mContactsList.size()); // ContactsFile->close(); // delete ContactsFile; // delete InputStream; // return mContactsList.size(); //} int CContactRepository::SetContacts(QList *ContactsList) { mContactsList.clear(); mContactsList = *ContactsList; return mContactsList.size(); } CContact * CContactRepository::FindContact(QString ContactRawNumber) { for(int i = 0; i < mContactsList.size(); i++) { if(mContactsList.at(i).mRAWContactNbr == ContactRawNumber) { return &mContactsList[i]; } } return 0; } int CContactRepository::AddContact(CContact Contact) { for(int i = 0; i < mContactsList.size(); i++) { if(mContactsList.at(i) == Contact) { mContactsList[i] = Contact; //SaveContacts(); return RET_OK; } } mContactsList.append(Contact); // SaveContacts(); return RET_OK; } int CContactRepository::DeleteContact(int index) { if(index < 0 || index >= mContactsList.size()) { return RET_ERROR; } mContactsList.takeAt(index); // SaveContacts(); return RET_OK; } int CContactRepository::GetContact(int index,CContact& Contact) { if(index < 0 || index >= mContactsList.size()) { return RET_ERROR; } Contact = mContactsList.at(index); return RET_OK; } CContact *CContactRepository::GetContactPtr(int index) { if(index < 0 || index >= mContactsList.size()) { return 0; } return &mContactsList[index]; } //int CContactRepository::SaveContacts() //{ // QFile* ContactsFile = new QFile("./Configuration/Contacts.mcc"); // if(ContactsFile) // { // if(ContactsFile->open(QIODevice::WriteOnly | QIODevice::Unbuffered | QIODevice::Truncate) == false) // { // return 0; // } // } // else // { // return 0; // } // QDataStream * InputStream = new QDataStream(ContactsFile); // quint32 MagicNbr = 0xDEADBEEF; // *InputStream << MagicNbr; // *InputStream << mContactsList.size(); // for(int i = 0; i < mContactsList.size(); i++) // { // *InputStream << mContactsList.at(i); // } // ContactsFile->close(); // delete ContactsFile; // delete InputStream; // qDebug("SAved %d contacts",mContactsList.size()); // return mContactsList.size(); //}