/* Example02.cpp Demonstruje wykorzystanie biblioteki aqqlib - Czyli jak zrobić klienta AQQ w 3 krokach :P Mateusz Szygenda */ #include /* Załączamy wymagany nagłówek aqqlib */ #include /* Do pobrania numeru i hasla ze strumieni */ /** Klasa służy do obsługi zdarzeń związanych z aqqlib AqqEvents - To specjalna abstrakcyjna klasa którą należy wydziedziczyć i przeciążyć metody wirtualne takie jak newMessageArrived i contactChanged. Obiekt tak wyspecjalizowanej klasy możemy przekazać do nasłuchu(Na nową wiadomość zostanie wywołana nasza metoda). */ class AqqClient : AqqEvents { public: Account konto; AqqClient(unsigned int number,char password [100]) { if(konto.aqqLogin(number,password) == ALL_OK) { konto.setEvents(this); } } /** Ta metoda ma zostac wywolana podczas przyjscia nowej wiadomosci */ void newMessageArrived(Message msg) { std::cout << msg.getSender() << " Napisal " << msg.getMessage() << "\n"; konto.getMessageFromQueue(); // Wyrzucam odebraną wiadomosc z kolejki wiadomosci. } /** Ta metoda musi być wywołana podczas przyjścia informacji o kontakcie */ void contactChanged(Contact contact) { std::cout << contact.getId() << " Zmienil status na : " << (int)contact.getStat() << " Opis: " << contact.getTextStat(); } }; int main() { unsigned int number; // Nasz numer aqq char password [100]; // Nasze haslo do konta aqq std::cout << "Przykladowy klient aqq! \n\n"; std::cout << "Podaj numer : "; std::cin >> number; // Pobieram numer aqq std::cout << "\n"; std::cout << "Podaj haslo : "; std::cin >> password; // Pobieram haslo aqq //Sprobujmy się zalogować: AqqClient klient(number,password); if(klient.konto.isLogged()) // jesli jestesmy zalogowani.. { std::cout << "\n Jestesmy zalogowani!"; // Teraz wyslemy testową wiadomość: klient.konto.sendMessage("TEST!", 1111); // 1111 to numer osoby do ktorej pojdzie wiadomosc klient.konto.setStatus(NIE_PRZESZKADZAC,"opis"); // Aby pominac status nalezy podac 0 } sleep(10); // niech chwile ponasluchuje... return 0; }