Files
scandocs/uni/masterarbeit/source/moversight/ms/Roster.cc
2014-06-30 13:58:10 +02:00

127 lines
3.5 KiB
C++

/*
* File: Roster.cc
* Author: jgaebler
*
* Created on July 29, 2010, 2:43 PM
*/
#include "Roster.h"
#include "common/Exception.h"
namespace ubeeme {
namespace moversight {
/**
* @brief Constructor.
*/
Roster::Roster()
: nextPeerId(INITIAL_PEER_ID), viewID(INITIAL_VIEW_ID) {
}
/**
* @brief Copy constructor.
* @param orig The original roster instance to copy.
*/
Roster::Roster(const Roster & orig)
: list(orig.list), nextPeerId(orig.nextPeerId), viewID(orig.viewID) {
}
/**
* @brief Destructor.
*/
Roster::~Roster() {
list.clear();
}
/**
* @brief Adds a member description to the roster. A member description describes all relevant data of a peer, associated with the current group.
* @param desc The member description to add.
*/
void
Roster::addMemberDescription(const MemberDescription & desc) {
list.add(desc);
}
/**
* @brief Returns the member description, stored at the given index. The method throws a IndexOutOfBounceException if the given index invalid.
* @param index The index to access.
* @return The desired member description.
* @throws IndexOutOfBounceException If the given index invalid.
* @see size()
*/
const MemberDescription &
Roster::getMemberDescription( const size_t index) const {
if( index < list.size()){
return list.get(index);
}
throw IndexOutOfBounceException("index out of boucnce exception during accessing group member description from list");
}
/**
* @brief Returns the number of member descriptions, present in the roster.
* @return The number of member descriptions, present within the current roster.
*/
size_t
Roster::size() const {
return list.size();
}
/**
* @brief Sets the view ID corresponding to this roster.
* @param vid The view ID of this roster.
*/
void
Roster::setViewID( const ViewID & vid){
viewID = vid;
}
/**
* @brief Returns the view ID corresponding to this roster.
* @return The view ID of this roster.
*/
ViewID
Roster::getViewID() const {
return viewID;
}
/**
* @brief Sets the next valid peer ID.
* @param pId The next valid peer Id.
*/
void
Roster::setNextPeerID( const PeerID & pId) {
nextPeerId = pId;
}
/**
* @brief Returns the next valid peer ID.
* @return The next peer ID.
*/
PeerID
Roster::getNextPeerID() const {
return nextPeerId;
}
/**
* @brief Permits read access to the member description list.
* @return A reference to the member description list.
*/
const MemberDescriptionList &
Roster::getMemberDescriptionList() const{
return list;
}
/**
* @brief Sets the list with member descriptions.
* @note The current list is replaced by the new one.
* @param aList The list to set
*/
void
Roster::setMemberDescriptionList(const MemberDescriptionList & aList) {
list = aList;
}
}//End Moversight
}//End uBeeMe