109 lines
2.7 KiB
C++
109 lines
2.7 KiB
C++
// **************************************************************************
|
|
//
|
|
// (C) Copyright 2009 Swiss SIMTEC AG
|
|
//
|
|
// **************************************************************************
|
|
//
|
|
// $HeadURL$
|
|
// $LastChangedBy$
|
|
// $LastChangedDate$
|
|
// $LastChangedRevision$
|
|
//
|
|
// **************************************************************************
|
|
|
|
#pragma once
|
|
|
|
#include <CoPrtCnv/tetra_telegram_ids.h>
|
|
#include <map>
|
|
#include <QByteArray>
|
|
|
|
// 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<uint16_t,N_CoPrtCnv::CoPrtCnvRadioTelegram*> m_FragmentedTelegramList;
|
|
};
|
|
|
|
}
|