PlzNavigate: Improvements to RFHM commit logic.
[chromium-blink-merge.git] / net / base / sdch_observer.h
blobb74a090146a6a2ae01f796154f2137f48d5d353f
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef NET_BASE_SDCH_OBSERVER_H_
6 #define NET_BASE_SDCH_OBSERVER_H_
8 #include <iosfwd>
9 #include <string>
11 #include "net/base/net_export.h"
13 class GURL;
15 namespace net {
17 class SdchManager;
19 // Observer interface for SDCH. Observers can register with
20 // the SdchManager to receive notifications of various SDCH events.
21 class NET_EXPORT SdchObserver {
22 public:
23 virtual ~SdchObserver();
25 // TODO(rdsmith): Add Added/Removed signals. These are only needed if
26 // we end up with an implementation in which more than one observer
27 // generates Add/Removed events; otherwise, tracking can be done internally.
29 // TODO(rdsmith): Add signal that an Avail-Dictionary header was generated.
30 // Should be added if/when an observer wants to use it to fine-tune
31 // dictionary deprecation (e.g. if Avail-Dictionary is generated and
32 // the remote *doesn't* use it, that should deprecate the dictionary faster)
34 // A SDCH encoded response was received and the specified dictionary
35 // was used to decode it. This notification only occurs for successful
36 // decodes. Note that this notification may occur for dictionaries that
37 // have been deleted from the SdchManager, since DictionarySets retain
38 // references to deleted dictionaries. Observers must handle this case.
39 // TODO(rdsmith): Should this notification indicate how much
40 // compression the dictionary provided?
41 virtual void OnDictionaryUsed(SdchManager* manager,
42 const std::string& server_hash) = 0;
44 // A "Get-Dictionary" header has been seen.
45 virtual void OnGetDictionary(SdchManager* manager,
46 const GURL& request_url,
47 const GURL& dictionary_url) = 0;
49 // Notification that SDCH has received a request to clear all
50 // its dictionaries.
51 virtual void OnClearDictionaries(SdchManager* manager) = 0;
54 } // namespace net
56 #endif // NET_BASE_SDCH_MANAGER_H_