Classes | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends

AbiCollab Class Reference

#include <AbiCollab.h>

Inheritance diagram for AbiCollab:

List of all members.


class  SessionPacketVector

Public Member Functions

 AbiCollab (PD_Document *pDoc, const std::string &sSessionId, AccountHandler *pAclAccount, bool bLocallyOwned)
 AbiCollab (const std::string &sSessionId, PD_Document *pDoc, const std::string &docUUID, UT_sint32 iRev, BuddyPtr pControler, AccountHandler *pAclAccount, bool m_bLocallyOwned)
virtual ~AbiCollab ()
void addCollaborator (BuddyPtr pCollaborator)
void removeCollaborator (BuddyPtr pCollaborator)
const std::map< BuddyPtr,
std::string > & 
getCollaborators () const
bool isController (BuddyPtr pCollaborator) const
bool isLocallyOwned () const
const std::vector< std::string > & getAcl ()
AccountHandlergetAclAccount ()
void setAcl (const std::vector< std::string > vAcl)
void appendAcl (const std::string &sBuddyDescriptor)
ABI_Collab_ImportgetImport (void)
ABI_Collab_ExportgetExport (void)
void push (SessionPacket *pPacket)
bool push (SessionPacket *pPacket, BuddyPtr collaborator)
void maskExport ()
virtual const std::vector
< SessionPacket * > & 
unmaskExport ()
bool isExportMasked (void) const
void import (SessionPacket *pPacket, BuddyPtr collaborator)
void addChangeAdjust (ChangeAdjust *pAdjust)
getActivePacket () const
PD_DocumentgetDocument (void) const
const std::string & getSessionId () const
bool isLocallyControlled () const
void setIsReverting (bool bIsReverting)
void initiateSessionTakeover (BuddyPtr pNewMaster)
bool isRecording ()
void startRecording (SessionRecorderInterface *pRecorder)
void stopRecording ()
virtual void signalMouse (EV_EditBits eb, UT_sint32 xPos, UT_sint32 yPos)
virtual void removeMouse (EV_Mouse *pMouse)

Protected Attributes

AbiCollab::SessionPacketVector m_vecMaskedPackets

Private Member Functions

void _removeCollaborator (BuddyPtr pCollaborator, const std::string &docUUID)
void _checkRevokeAccess (BuddyPtr pCollaborator)
void _setDocument (PD_Document *pDoc)
void _setDocListenerId (UT_uint32 iDocListenerId)
void _fillRemoteRev (Packet *pPacket, BuddyPtr pBuddy)
void _releaseMouseDrag ()
bool _handleSessionTakeover (AbstractSessionTakeoverPacket *pPacket, BuddyPtr collaborator)
bool _hasAckedSessionTakeover (BuddyPtr collaborator)
bool _allSlavesAckedSessionTakeover ()
void _switchMaster ()
void _becomeMaster ()
bool _restartAsSlave (const std::string &sDocUUID, UT_sint32 iRev)
void _shutdownAsMaster ()
bool _allSlavesReconnected ()
void _checkRestartAsMaster ()
void _restartAsMaster ()
void _pushOutgoingQueue ()

Private Attributes

ABI_Collab_Import m_Import
ABI_Collab_Export m_Export
std::map< BuddyPtr, std::string > m_vCollaborators
std::vector< std::string > m_vAcl
UT_uint32 m_iDocListenerId
bool m_bExportMasked
std::string m_sId
BuddyPtr m_pController
bool m_bLocallyOwned
CommandLine * m_pCommandLine
bool m_bCloseNow
bool m_bIsReverting
std::map< EV_Mouse *, UT_sint32m_mMouseListenerIds
bool m_bDoingMouseDrag
std::vector< std::pair
< SessionPacket *, BuddyPtr > > 
SessionTakeoverState m_eTakeoveState
bool m_bProposedController
BuddyPtr m_pProposedController
std::map< std::string, bool > m_vApprovedReconnectBuddies
std::map< BuddyPtr, bool > m_mAckedSessionTakeoverBuddies
bool m_bSessionFlushed
SessionPacketVector m_vOutgoingQueue


class ABI_Collab_Export

Constructor & Destructor Documentation

AbiCollab::AbiCollab ( PD_Document pDoc,
const std::string &  sSessionId,
AccountHandler pAclAccount,
bool  bLocallyOwned 
AbiCollab::AbiCollab ( const std::string &  sSessionId,
PD_Document pDoc,
const std::string &  docUUID,
UT_sint32  iRev,
BuddyPtr  pControler,
AccountHandler pAclAccount,
bool  m_bLocallyOwned 

Member Function Documentation

bool AbiCollab::_allSlavesAckedSessionTakeover (  )  [private]
bool AbiCollab::_allSlavesReconnected (  )  [private]
void AbiCollab::_becomeMaster (  )  [private]
void AbiCollab::_checkRestartAsMaster (  )  [private]
void AbiCollab::_checkRevokeAccess ( BuddyPtr  pCollaborator  )  [private]
bool AbiCollab::_hasAckedSessionTakeover ( BuddyPtr  collaborator  )  [private]
void AbiCollab::_pushOutgoingQueue (  )  [private]
void AbiCollab::_releaseMouseDrag (  )  [private]
void AbiCollab::_removeCollaborator ( BuddyPtr  pCollaborator,
const std::string &  docUUID 
) [private]
bool AbiCollab::_restartAsSlave ( const std::string &  sDocUUID,
UT_sint32  iRev 
) [private]
void AbiCollab::_setDocListenerId ( UT_uint32  iDocListenerId  )  [inline, private]

References m_iDocListenerId.

Referenced by _setDocument().

void AbiCollab::_switchMaster (  )  [private]
void AbiCollab::appendAcl ( const std::string &  sBuddyDescriptor  ) 

References m_vAcl.

Referenced by TCPAccountHandler::addBuddy().

const std::vector<std::string>& AbiCollab::getAcl (  )  [inline]
const AbstractChangeRecordSessionPacket* AbiCollab::getActivePacket (  )  const [inline]
ABI_Collab_Import* AbiCollab::getImport ( void   )  [inline]

References m_Import.

Referenced by FakeAccountHandler::_import().

bool AbiCollab::isController ( BuddyPtr  pCollaborator  )  const [inline]
bool AbiCollab::isExportMasked ( void   )  const [inline]

References m_bExportMasked.

bool AbiCollab::isLocallyOwned (  )  const [inline]

References m_bLocallyOwned.

Referenced by Defun_EV_GetMenuItemState_Fn().

bool AbiCollab::isRecording (  )  [inline]

References m_pRecorder.

Referenced by Defun_EV_GetMenuItemState_Fn().

void AbiCollab::maskExport (  ) 
void AbiCollab::removeMouse ( EV_Mouse pMouse  )  [virtual]
void AbiCollab::setAcl ( const std::vector< std::string >  vAcl  ) 

References m_vAcl, and UT_DEBUGMSG.

Referenced by AbiCollabSessionManager::updateAcl().

void AbiCollab::setIsReverting ( bool  bIsReverting  )  [inline]
void AbiCollab::stopRecording (  ) 

References DELETEP, and m_pRecorder.

const std::vector< SessionPacket * > & AbiCollab::unmaskExport (  )  [virtual]

References m_bExportMasked, and m_vecMaskedPackets.

Referenced by import().

Friends And Related Function Documentation

friend class ABI_Collab_Export [friend]

Member Data Documentation

bool AbiCollab::m_bCloseNow [private]

Referenced by isLocallyOwned().

CommandLine* AbiCollab::m_pCommandLine [private]
std::vector<std::string> AbiCollab::m_vAcl [private]
std::vector<std::pair<SessionPacket*,BuddyPtr> > AbiCollab::m_vIncomingQueue [private]

Referenced by _releaseMouseDrag(), and import().

The documentation for this class was generated from the following files: