Classes | Public Types
Tonido::Data::GroupManager Class Reference

Manages Peer Groups. More...

List of all members.

Classes

struct  GroupOwnerAssignData

Public Types

enum  GroupOwnerAssignmentStatus { ASSIGN_PENDING = 0, ASSIGN_NOTINPROGRESS }
typedef boost::shared_ptr
< GroupManager
SharedPtr

Public Member Functions

Ctors & Dtors
 GroupManager ()
 Ctor.
 ~GroupManager ()
 Dtor.
Group Management
bool groupAdd (const Group::SharedPtr &a_group, const std::string &a_memberStatus)
 Add a new group.
bool groupUpdate (Group::SharedPtr a_group)
 Update the given group.
bool groupRemove (const Poco::UUID &a_groupID)
 Removes a Group.
bool addPeerToGroup (const PeerID &a_peerID, const Group::SharedPtr &a_group, const std::string &a_memberStatus)
 Add a new peer to an existing group.
Group::SharedPtr groupGet (const Poco::UUID &a_groupID)
 Get the specific group with a given group id.
void groupCollectionGet (Group::Collection &a_collection)
 Get the collection of groups.
void groupCollectionGet (const PeerID &a_peerID, Group::Collection &a_collection)
 Get the collection of groups to which a specific peer is part of.
void groupCollectionPeerNotPartOfGet (const PeerID &a_peerID, Group::Collection &a_collection)
 Get the collection of groups to which a specific peer is not part of.
void getPeerGroupMembership (const PeerID &a_peerID, std::set< std::string > &a_groupSet)
 Get all the groups that this peer is part of.
std::string getPeerGroupMemberStatus (const PeerID &a_peerID, const Poco::UUID &a_groupID)
 Returns the member status of a specific peer for a specified group.
Internal Use Only
void processPeerConnect (const PeerID &a_peerID)
 Processes Peer Connection Event.
void processNetworkOnline ()
 Processes Network Online Event.
void onSyncGroupListMessage (Message::SharedPtr &args)
 Processes Sync Group List Message.
void onUnknownGroupMessage (Message::SharedPtr &args)
 Processes Unknown Group Message.
void onApplyGroupListMessage (Message::SharedPtr &args)
 Processes Apply Group List Message.
void onGroupInfoMessage (Message::SharedPtr &args)
 Processes Group Info Message.
void onGroupHelloMessage (Message::SharedPtr &args)
 Processes Group Hello Message.
bool assignGroupOwner (const Poco::UUID &a_groupID, const PeerID &a_peerID, const Tonido::Data::Message::SharedPtr &a_msg)
 Assign Group Ownership to another peer.
bool removeGroupMember (const Poco::UUID &a_groupID, const PeerID &a_peerID, bool a_changePassword)
 Remove Group Member from group for a private group.
void onBeginAssignGroupOwnerMessage (Message::SharedPtr &args)
 Processes a Assign group ownership message.
void onBeginAssignGroupOwnerOKMessage (Message::SharedPtr &args)
 Processes a Assign group ownership OK message.
void onBeginAssignGroupOwnerOKOKMessage (Message::SharedPtr &args)
 Processes a Assign group ownership OK OK message.
void onRemoveGroupMessage (Message::SharedPtr &args)
 Processes a remove group message.
void sendGroupHelloMessage (const PeerID &a_peerID, const Poco::UUID &a_groupID)
 Sends a Group Hello message to specified Peer.
void onGroupOwnerAssignTimer ()
 Group Owner Assignment Timer.
void processLogin ()
 Process Login.

Detailed Description

Manages Peer Groups.


Constructor & Destructor Documentation

Tonido::Data::GroupManager::GroupManager ( )

Ctor.

details if needed ...

Tonido::Data::GroupManager::~GroupManager ( )

Dtor.

details if needed ...


Member Function Documentation

bool Tonido::Data::GroupManager::addPeerToGroup ( const PeerID a_peerID,
const Group::SharedPtr &  a_group,
const std::string &  a_memberStatus 
)

Add a new peer to an existing group.

Parameters:
[in]a_peerIDPeerID to add
[in]a_groupGroup to add the peer to
[in]a_memberStatusstatus
Returns:
true on successs, false otherwise
bool Tonido::Data::GroupManager::assignGroupOwner ( const Poco::UUID &  a_groupID,
const PeerID a_peerID,
const Tonido::Data::Message::SharedPtr &  a_msg 
)

Assign Group Ownership to another peer.

Parameters:
[in]a_groupIDgroup id to assign to
[in]a_peerIDpeer id to assign
[in]a_msgmessage
Returns:
true if success, false otherwise
void Tonido::Data::GroupManager::getPeerGroupMembership ( const PeerID a_peerID,
std::set< std::string > &  a_groupSet 
)

Get all the groups that this peer is part of.

Parameters:
[in]a_peerIDpeerID of the peer we are interested in.
[out]a_groupSetset of groupIDs that this peer is part of
std::string Tonido::Data::GroupManager::getPeerGroupMemberStatus ( const PeerID a_peerID,
const Poco::UUID &  a_groupID 
)

Returns the member status of a specific peer for a specified group.

Parameters:
[in]a_peerIDpeer id to check
[out]a_groupIDgroup id to check the peer status
Returns:
the member status
bool Tonido::Data::GroupManager::groupAdd ( const Group::SharedPtr &  a_group,
const std::string &  a_memberStatus 
)

Add a new group.

Parameters:
[in]a_groupgroup to add
[in]a_memberStatusstatus
Returns:
true on successs, false otherwise
void Tonido::Data::GroupManager::groupCollectionGet ( Group::Collection &  a_collection)

Get the collection of groups.

Parameters:
[out]a_collectioncollection of groups
Returns:
All groups that current Peer is part of
void Tonido::Data::GroupManager::groupCollectionGet ( const PeerID a_peerID,
Group::Collection &  a_collection 
)

Get the collection of groups to which a specific peer is part of.

Parameters:
[in]a_peerIDpeer id
[out]a_collectioncollection of groups
Returns:
All groups that current Peer is part of
void Tonido::Data::GroupManager::groupCollectionPeerNotPartOfGet ( const PeerID a_peerID,
Group::Collection &  a_collection 
)

Get the collection of groups to which a specific peer is not part of.

Parameters:
[in]a_peerIDpeer id
[out]a_collectioncollection of groups
Returns:
All groups that current Peer is not part of
Group::SharedPtr Tonido::Data::GroupManager::groupGet ( const Poco::UUID &  a_groupID)

Get the specific group with a given group id.

Parameters:
[in]a_groupID of the group to get
Returns:
A valid Group object or an invalid Group object if it has been removed
bool Tonido::Data::GroupManager::groupRemove ( const Poco::UUID &  a_groupID)

Removes a Group.

Parameters:
[in]a_groupID of the group to remove
Returns:
true on successs, false otherwise
bool Tonido::Data::GroupManager::groupUpdate ( Group::SharedPtr  a_group)

Update the given group.

Parameters:
[in,out]a_groupGroup to update
Returns:
true on successs, false otherwise
void Tonido::Data::GroupManager::onApplyGroupListMessage ( Message::SharedPtr &  args)

Processes Apply Group List Message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onBeginAssignGroupOwnerMessage ( Message::SharedPtr &  args)

Processes a Assign group ownership message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onBeginAssignGroupOwnerOKMessage ( Message::SharedPtr &  args)

Processes a Assign group ownership OK message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onBeginAssignGroupOwnerOKOKMessage ( Message::SharedPtr &  args)

Processes a Assign group ownership OK OK message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onGroupHelloMessage ( Message::SharedPtr &  args)

Processes Group Hello Message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onGroupInfoMessage ( Message::SharedPtr &  args)

Processes Group Info Message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onRemoveGroupMessage ( Message::SharedPtr &  args)

Processes a remove group message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onSyncGroupListMessage ( Message::SharedPtr &  args)

Processes Sync Group List Message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::onUnknownGroupMessage ( Message::SharedPtr &  args)

Processes Unknown Group Message.

Parameters:
[in]argsmessage
void Tonido::Data::GroupManager::processPeerConnect ( const PeerID a_peerID)

Processes Peer Connection Event.

Parameters:
[in]a_peerIDpeer id
bool Tonido::Data::GroupManager::removeGroupMember ( const Poco::UUID &  a_groupID,
const PeerID a_peerID,
bool  a_changePassword 
)

Remove Group Member from group for a private group.

Parameters:
[in]a_groupIDgroup id to remove from
[in]a_peerIDpeer id to remove
[in]a_changePasswordtrue if change password is required, false otherwise
Returns:
true if success, false otherwise
void Tonido::Data::GroupManager::sendGroupHelloMessage ( const PeerID a_peerID,
const Poco::UUID &  a_groupID 
)

Sends a Group Hello message to specified Peer.

Parameters:
[in]a_peerIDpeer id to send
[in]a_groupIDgroup id to send

Generated on Wed Oct 12 2011 21:46:53. © CodeLathe LLC 2007-2011. All Rights Reserved.