58 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								CommandResult handleCommandClientUpdate(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientEdit(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientEdit(Command&, const std::shared_ptr<ConnectedClient>& /* target */);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientMove(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientGetVariables(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientKick(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientPoke(Command&);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelSubscribe(Command&); read lock: server channel tree => client lock write
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelSubscribeAll(Command&); read lock: server channel tree => client lock write
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelUnsubscribe(Command&); read lock: server channel tree => client lock write
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelUnsubscribeAll(Command&); read lock: server channel tree => client lock write
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelCreate(Command&); write lock server channel tree => iterate clients lock (write)
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelDelete(Command&); write lock server channel tree => iterate clients lock (write)
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelEdit(Command&); write lock server channel tree
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelGetDescription(Command&); read lock: server channel tree
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelMove(Command&); write lock server channel tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelAddPerm(Command&); read lock: server channel tree => all clients write lock
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelDelPerm(Command&); read lock: server channel tree => all clients write lock
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandChannelGroupDel(Command&); read lock: server channel tree => all clients in the group should not be allowed to switch a channel
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandSetClientChannelGroup(Command&); read lock: server channel tree => client should not be allowed to switch channel
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandPluginCmd(Command&);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientMute(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientUnmute(Command&);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//Original from query but still reachable for all
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientList(Command&);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientFind(Command&);
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandClientInfo(Command&);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CommandResult handleCommandVerifyChannelPassword(Command&); read lock: server channel tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								handleCommandChannelFind read lock: server channel tree
							 | 
						||
| 
								 | 
							
								handleCommandChannelInfo read lock: server channel tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								General command handling: client_command_lock
							 | 
						||
| 
								 | 
							
								    Ensure that only one command at time will be handeled
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Read access server channel tree: read lock channel_tree_lock
							 | 
						||
| 
								 | 
							
								Write access server channel tree: lock channel_tree_lock
							 | 
						||
| 
								 | 
							
								Write access client channel tree: read lock channel_tree_lock => lock client channel tree
							 | 
						||
| 
								 | 
							
								    if we write to the server channel tree no client should have their channel tree updated
							 | 
						||
| 
								 | 
							
								Read access client channel tree: no lock required
							 | 
						||
| 
								 | 
							
								    Note: the server channel tree should not be accessed!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Move client acts like access server channel tree: write lock channel_tree_lock => for each client write lock their tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								TODO: Some kind of perm channel lock
							 | 
						||
| 
								 | 
							
								TODO: Fix handleCommandChannelEdit
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Test: Channel hide & show with clients! Multible clients as well!
							 |