mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
 | |
| // reserved. Use of this source code is governed by a BSD-style license that
 | |
| // can be found in the LICENSE file.
 | |
| 
 | |
| #ifndef CEF_LIBCEF_COMMON_RESPONSE_MANAGER_H_
 | |
| #define CEF_LIBCEF_COMMON_RESPONSE_MANAGER_H_
 | |
| #pragma once
 | |
| 
 | |
| #include <map>
 | |
| 
 | |
| #include "include/cef_base.h"
 | |
| 
 | |
| #include "base/sequence_checker.h"
 | |
| 
 | |
| struct Cef_Response_Params;
 | |
| 
 | |
| // This class is not thread-safe.
 | |
| class CefResponseManager {
 | |
|  public:
 | |
|   // Used for handling response messages.
 | |
|   class Handler : public virtual CefBaseRefCounted {
 | |
|    public:
 | |
|     virtual void OnResponse(const Cef_Response_Params& params) = 0;
 | |
|   };
 | |
| 
 | |
|   // Used for handling response ack messages.
 | |
|   class AckHandler : public virtual CefBaseRefCounted {
 | |
|    public:
 | |
|     virtual void OnResponseAck() = 0;
 | |
|   };
 | |
| 
 | |
|   CefResponseManager();
 | |
| 
 | |
|   // Returns the next unique request id.
 | |
|   int GetNextRequestId();
 | |
| 
 | |
|   // Register a response handler and return the unique request id.
 | |
|   int RegisterHandler(CefRefPtr<Handler> handler);
 | |
| 
 | |
|   // Run the response handler for the specified request id. Returns true if a
 | |
|   // handler was run.
 | |
|   bool RunHandler(const Cef_Response_Params& params);
 | |
| 
 | |
|   // Register a response ack handler for the specified request id.
 | |
|   void RegisterAckHandler(int request_id, CefRefPtr<AckHandler> handler);
 | |
| 
 | |
|   // Run the response ack handler for the specified request id. Returns true if
 | |
|   // a handler was run.
 | |
|   bool RunAckHandler(int request_id);
 | |
| 
 | |
|  private:
 | |
|   // Used for generating unique request ids.
 | |
|   int next_request_id_;
 | |
| 
 | |
|   // Map of unique request ids to Handler references.
 | |
|   typedef std::map<int, CefRefPtr<Handler>> HandlerMap;
 | |
|   HandlerMap handlers_;
 | |
| 
 | |
|   // Map of unique request ids to AckHandler references.
 | |
|   typedef std::map<int, CefRefPtr<AckHandler>> AckHandlerMap;
 | |
|   AckHandlerMap ack_handlers_;
 | |
| 
 | |
|   SEQUENCE_CHECKER(sequence_checker_);
 | |
| };
 | |
| 
 | |
| #endif  // CEF_LIBCEF_COMMON_RESPONSE_MANAGER_H_
 |