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! |