Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+70
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* Definition of the symbol id
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace SymbologyXML
|
||||
{
|
||||
|
||||
struct symbol_id_t {
|
||||
|
||||
/**
|
||||
* @brief Constructor
|
||||
* @param raw value of the symbol id (real symbol id AND flag 'isArtillery')
|
||||
*/
|
||||
explicit symbol_id_t(unsigned short raw = 0)
|
||||
: m_raw(raw)
|
||||
{}
|
||||
|
||||
/**
|
||||
* @brief Get the real symbol id
|
||||
* @return real symbol id
|
||||
*/
|
||||
unsigned short symbolId() const { return (m_raw & idMask); }
|
||||
|
||||
/**
|
||||
* @brief Set the real symbol id
|
||||
* @param real symbol id
|
||||
*/
|
||||
void setSymbolId(unsigned short id) { m_raw = ((id & idMask) | (m_raw & bit) );}
|
||||
|
||||
/**
|
||||
* @brief Get flag 'isArtillery'
|
||||
* @return 'isArtillery'
|
||||
*/
|
||||
bool isArtillery() const { return ((m_raw & bit) == bit); }
|
||||
|
||||
/**
|
||||
* @brief Set flag 'isArtillery'
|
||||
* @param flag 'isArtillery'
|
||||
*/
|
||||
void setArtillery(bool bSet) { if(bSet) m_raw |= bit; else m_raw &= ~bit; }
|
||||
|
||||
/**
|
||||
* @brief Get the raw data (e.g. for database insertion)
|
||||
* @return
|
||||
*/
|
||||
unsigned short raw() const { return m_raw; }
|
||||
unsigned short &raw() { return m_raw; }
|
||||
|
||||
/**
|
||||
* @brief Set raw value of the symbol id (real symbol id AND flag 'isArtillery')
|
||||
* @param raw value
|
||||
*/
|
||||
void setRaw(unsigned short raw) { m_raw = raw; }
|
||||
|
||||
bool operator==(const symbol_id_t other) const { return m_raw == other.m_raw; }
|
||||
bool operator!=(const symbol_id_t other) const { return !operator==(other); }
|
||||
protected:
|
||||
// For isArtillery:
|
||||
static const unsigned short idMask = 0x7fffU;
|
||||
static const unsigned short bit = 0x8000U;
|
||||
// raw data:
|
||||
unsigned short m_raw;
|
||||
};
|
||||
|
||||
}; // namespace SymbologyXML
|
||||
Reference in new issue
Block a user