127 lines
3.5 KiB
C++
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
|
|
|