mirror of
				https://github.com/dolphin-emu/dolphin.git
				synced 2025-10-26 18:09:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			842 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			842 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2017 Dolphin Emulator Project
 | |
| // Licensed under GPLv2+
 | |
| // Refer to the license.txt file included.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <enet/enet.h>
 | |
| #include <utility>
 | |
| 
 | |
| namespace Common
 | |
| {
 | |
| class QoSSession
 | |
| {
 | |
| public:
 | |
|   // 1 0 1 1 1 0 0 0
 | |
|   // DSCP      ECN
 | |
|   static constexpr int ef_tos = 0b10111000;
 | |
| 
 | |
|   QoSSession() = default;
 | |
|   QoSSession(ENetPeer* peer, int tos_val = ef_tos);
 | |
| 
 | |
|   ~QoSSession();
 | |
| 
 | |
|   QoSSession& operator=(const QoSSession&) = delete;
 | |
|   QoSSession(const QoSSession&) = delete;
 | |
| 
 | |
|   QoSSession& operator=(QoSSession&& session);
 | |
|   QoSSession(QoSSession&& session) { *this = std::move(session); }
 | |
|   bool Successful() const { return m_success; }
 | |
| private:
 | |
| #if defined(_WIN32)
 | |
|   void* m_qos_handle = nullptr;
 | |
|   unsigned long m_qos_flow_id = 0;
 | |
| 
 | |
|   ENetPeer* m_peer = nullptr;
 | |
| #endif
 | |
| 
 | |
|   bool m_success = false;
 | |
| };
 | |
| }  // namespace Common
 |