Files
2014-06-30 13:58:10 +02:00

137 lines
3.7 KiB
C++

/*
* File: VieWID.h
* Author: jgaebler
*
* Created on February 10, 2014, 8:19 PM
*/
#pragma once
#ifndef VIEWID_H
#define VIEWID_H
#include "common/Reference.h"
namespace ubeeme {
namespace moversight {
/**
* @brief Identifies a view uniquely
* @class ViewID
* @ingroup Moversight
* @author Jan Gäbler
*/
class ViewID : public Reference<unsigned int> {
public:
/**
* @brief Constructor
*/
ViewID() : Reference<unsigned int>(0) {
}
/**
* @brief Constructor
* @param id The initial id
*/
ViewID(unsigned int id) : Reference<unsigned int>(id) {
}
/**
* @brief Copy constructor
* @param orig The instance to copy
*/
ViewID(const ViewID & orig): Reference<unsigned int>(orig){
operator=(orig);
}
/**
* @brief Assignment operator
* @param other The instance to assign
* @return A reference to the local instance.
*/
ViewID &
operator=(const ViewID & other){
if(this != &other){
Reference<unsigned int>::operator =(other);
}
return *this;
}
/**
* @brief Prefix-incrementation
* @return A reference to the local instance.
*/
ViewID & operator++(){ //++a
return static_cast<ViewID&>(Reference<unsigned int>::operator ++());
}
/**
* @brief Postfix-incrementation
* @param Pseudo-param
* @return The value of the local instance before the incrementation
*/
ViewID operator++(int){ //a++
ViewID result(*this);
++(*this);
return result;
}
/**
* @brief Less as operator
* @param other The instance to compare to.
* @return True, is the local instance less as the given, false otherwise.
*/
bool operator<(const ViewID & other) const {
return value < other.value;
}
/**
* @brief Less equal as operator
* @param other The instance to compare to.
* @return True, is the local instance less as or equal to the given, false otherwise.
*/
bool operator<=(const ViewID & other) const {
return value <= other.value;
}
/**
* @brief Greater as operator
* @param other The instance to compare to.
* @return True, is the local instance greater as the given, false otherwise.
*/
bool operator>(const ViewID & other) const {
return value > other.value;
}
/**
* @brief Greater equal as operator
* @param other The instance to compare to.
* @return True, is the local instance less as or equal to the given, false otherwise.
*/
bool operator>=(const ViewID & other) const {
return value >= other.value;
}
};
/**
* @brief The constant undefined view ID
*/
static const ViewID UNDEFINED_VIEW_ID = 0;
/**
* @brief The constant initial view ID
*/
static const ViewID INITIAL_VIEW_ID = UNDEFINED_VIEW_ID;
}
}
#endif /* VIEWID_H */