Changeset 48431 in vbox for trunk/src/VBox/Main/include
- Timestamp:
- Sep 11, 2013 2:08:36 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 88879
- Location:
- trunk/src/VBox/Main/include
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/ClientToken.h
r47561 r48431 3 3 /** @file 4 4 * 5 * VirtualBox API client token abstraction5 * VirtualBox API client session token abstraction 6 6 */ 7 7 … … 25 25 26 26 #include "MachineImpl.h" 27 #ifdef VBOX_WITH_GENERIC_SESSION_WATCHER 28 # include "TokenImpl.h" 29 #endif /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 27 30 28 31 #if defined(RT_OS_WINDOWS) … … 35 38 # define CTTOKENARG -1 36 39 # define CTTOKENTYPE int 40 #elif defined(VBOX_WITH_GENERIC_SESSION_WATCHER) 41 # define CTTOKENARG NULL 42 # define CTTOKENTYPE MachineToken * 37 43 #else 38 44 # error "Port me!" … … 49 55 * Constructor which creates a usable instance 50 56 * 51 * @param pMachine Reference to Machine object 57 * @param pMachine Reference to Machine object 58 * @param pSessionMachine Reference to corresponding SessionMachine object 52 59 */ 53 ClientToken(const ComObjPtr<Machine> &pMachine );60 ClientToken(const ComObjPtr<Machine> &pMachine, SessionMachine *pSessionMachine); 54 61 55 62 /** … … 74 81 CTTOKENTYPE getToken(); 75 82 83 #ifndef VBOX_WITH_GENERIC_SESSION_WATCHER 76 84 /** 77 85 * Release token now. Returns information if the client has terminated. 78 86 */ 79 87 bool release(); 88 #endif /* !VBOX_WITH_GENERIC_SESSION_WATCHER */ 80 89 81 90 private: … … 88 97 CTTOKENTYPE mClientToken; 89 98 Utf8Str mClientTokenId; 99 #ifdef VBOX_WITH_GENERIC_SESSION_WATCHER 100 bool mClientTokenPassed; 101 #endif 90 102 }; 91 103 -
trunk/src/VBox/Main/include/ClientTokenHolder.h
r47561 r48431 3 3 /** @file 4 4 * 5 * VirtualBox API client token holder (in the client process)5 * VirtualBox API client session token holder (in the client process) 6 6 */ 7 7 … … 35 35 # define CTHSEMARG -1 36 36 # define CTHSEMTYPE int 37 #elif defined(VBOX_WITH_GENERIC_SESSION_WATCHER) 38 /* the token object based implementation needs no semaphores */ 37 39 #else 38 40 # error "Port me!" … … 46 48 { 47 49 public: 50 #ifndef VBOX_WITH_GENERIC_SESSION_WATCHER 48 51 /** 49 52 * Constructor which creates a usable instance … … 52 55 */ 53 56 ClientTokenHolder(const Utf8Str &strTokenId); 57 #else /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 58 /** 59 * Constructor which creates a usable instance 60 * 61 * @param aToken Reference to token object 62 */ 63 ClientTokenHolder(IToken *aToken); 64 #endif /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 54 65 55 66 /** … … 69 80 ClientTokenHolder(); 70 81 82 #ifndef VBOX_WITH_GENERIC_SESSION_WATCHER 71 83 Utf8Str mClientTokenId; 84 #else /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 85 ComPtr<IToken> mToken; 86 #endif /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 87 #ifdef CTHSEMTYPE 72 88 CTHSEMTYPE mSem; 89 #endif 90 #if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2) 73 91 RTTHREAD mThread; 92 #endif 74 93 #ifdef RT_OS_WINDOWS 75 94 CTHTHREADSEMTYPE mThreadSem; -
trunk/src/VBox/Main/include/ClientWatcher.h
r47561 r48431 3 3 /** @file 4 4 * 5 * VirtualBox API client watcher5 * VirtualBox API client session watcher 6 6 */ 7 7 … … 33 33 # define CWUPDATEREQARG NIL_RTSEMEVENT 34 34 # define CWUPDATEREQTYPE RTSEMEVENT 35 #elif defined(VBOX_WITH_SYS_V_IPC_SESSION_WATCHER) 36 # define CWUPDATEREQARG 35 #elif defined(VBOX_WITH_SYS_V_IPC_SESSION_WATCHER) || defined(VBOX_WITH_GENERIC_SESSION_WATCHER) 36 # define CWUPDATEREQARG NIL_RTSEMEVENT 37 37 # define CWUPDATEREQTYPE RTSEMEVENT 38 38 #else … … 80 80 ProcessList mProcesses; 81 81 82 #if def VBOX_WITH_SYS_V_IPC_SESSION_WATCHER82 #if defined(VBOX_WITH_SYS_V_IPC_SESSION_WATCHER) || defined(VBOX_WITH_GENERIC_SESSION_WATCHER) 83 83 uint8_t mUpdateAdaptCtr; 84 84 #endif -
trunk/src/VBox/Main/include/MachineImpl.h
r48406 r48431 788 788 { return isSessionOpen(aMachine, aControl, true /* aAllowClosing */); } 789 789 790 #ifndef VBOX_WITH_GENERIC_SESSION_WATCHER 790 791 bool checkForSpawnFailure(); 792 #endif /* !VBOX_WITH_GENERIC_SESSION_WATCHER */ 791 793 792 794 HRESULT prepareRegister(); … … 1034 1036 void FinalRelease(); 1035 1037 1038 struct Uninit 1039 { 1040 enum Reason { Unexpected, Abnormal, Normal }; 1041 }; 1042 1036 1043 // public initializer/uninitializer for internal purposes only 1037 1044 HRESULT init(Machine *aMachine); 1038 1045 void uninit() { uninit(Uninit::Unexpected); } 1046 void uninit(Uninit::Reason aReason); 1047 1039 1048 1040 1049 // util::Lockable interface … … 1096 1105 } 1097 1106 1107 #ifndef VBOX_WITH_GENERIC_SESSION_WATCHER 1098 1108 bool checkForDeath(); 1099 1109 1100 1110 void getTokenId(Utf8Str &strTokenId); 1111 #else /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 1112 IToken *getToken(); 1113 #endif /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 1101 1114 // getClientToken must be only used by callers who can guarantee that 1102 1115 // the object cannot be deleted in the mean time, i.e. have a caller/lock. … … 1152 1165 }; 1153 1166 1154 struct Uninit1155 {1156 enum Reason { Unexpected, Abnormal, Normal };1157 };1158 1159 1167 struct SnapshotTask; 1160 1168 struct DeleteSnapshotTask; … … 1163 1171 friend struct DeleteSnapshotTask; 1164 1172 friend struct RestoreSnapshotTask; 1165 1166 void uninit(Uninit::Reason aReason);1167 1173 1168 1174 HRESULT endSavingState(HRESULT aRC, const Utf8Str &aErrMsg); -
trunk/src/VBox/Main/include/SessionImpl.h
r48297 r48431 72 72 STDMETHOD(GetPID)(ULONG *aPid); 73 73 STDMETHOD(GetRemoteConsole)(IConsole **aConsole); 74 #ifndef VBOX_WITH_GENERIC_SESSION_WATCHER 74 75 STDMETHOD(AssignMachine)(IMachine *aMachine, LockType_T aLockType, IN_BSTR aTokenId); 76 #else /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 77 STDMETHOD(AssignMachine)(IMachine *aMachine, LockType_T aLockType, IToken *aToken); 78 #endif /* VBOX_WITH_GENERIC_SESSION_WATCHER */ 75 79 STDMETHOD(AssignRemoteMachine)(IMachine *aMachine, IConsole *aConsole); 76 80 STDMETHOD(UpdateMachineState)(MachineState_T aMachineState); -
trunk/src/VBox/Main/include/TokenImpl.h
r48297 r48431 40 40 // public initializer/uninitializer for internal purposes only 41 41 HRESULT init(const ComObjPtr<SessionMachine> &pSessionMachine); 42 void uninit( );42 void uninit(bool fAbandon); 43 43 44 44 private:
Note:
See TracChangeset
for help on using the changeset viewer.