// ************************************************************************** // // (C) Copyright 2009 Swiss SIMTEC AG // // ************************************************************************** // // $HeadURL$ // $LastChangedBy$ // $LastChangedDate$ // $LastChangedRevision$ // // ************************************************************************** #pragma once #include #include #include // manual class imports namespace N_CoPrtCnv { class CoPrtCnvRadioTelegram; } namespace PrtCnv { /** * Hold the data of a TNE (Client on radio-side) needed for login, licensing, * nachforderungs-statistic and reading fragmented telegrams from TNE. * @author wia * @version 1.0 * @updated 16-Mrz-2010 11:20:11 */ class PrtCnvMember final { public: /** * The status of the member * @author wia * @version 1.0 * @updated 16-Mrz-2010 11:20:11 */ enum E_MemberStatus { e_Ok, e_AlreadyLoggedIn, e_MasteringLogIn, e_NotLoggedIn }; ~PrtCnvMember(); /** * Constructor with id and ISSI as parameter * * @param a_id * @param a_issi */ PrtCnvMember(int a_id, int a_issi); /** * Adds a radio-telegram-fragment to this member. * * @param a_radioTelegram */ void addFragmentedTelegram(const N_CoPrtCnv::CoPrtCnvRadioTelegram &a_radioTelegram); /** * Returns the telegram-Id of the fragmented telegram assiged to this member. * If not evaluable: 0 will be returned. */ gef_telegramm_id_et getFragmentedTelegramId() const; /** * Erases the radio-telegram-fragments assiged to this member. The fragments * itself will be deleted. */ void clearFragmentedList(); /** * Returns the radio-telegram-fragments assembled to a only big radio-telegram. * The fragments will not be deleted. * Returns NULL if it was impossible to assemble the telegram. */ QByteArray getUnfragmentedTelegramData() const; /** * Returns true if the fragment-list is empty */ bool isFragmentedListEmpty() const; public: // The ISSI of this TNE (0..0xFFFFFF) int m_ISSI; // Counts the Nachforderungen asked from this TNE int m_ClaimCount; // the exercise where the member is currently logged in int m_loggedInExerciseId; // The identification (also called Ausstattungs-Nummer) of this TNE (0..10000) int m_Id; // true if TNE is licensed bool m_Licensed; private: // Map of radio-telegram-fragments ordered by fragment-number std::multimap m_FragmentedTelegramList; }; }