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_
11 #include "net/base/net_export.h"
19 // Observer interface for SDCH. Observers can register with
20 // the SdchManager to receive notifications of various SDCH events.
21 class NET_EXPORT SdchObserver
{
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
51 virtual void OnClearDictionaries(SdchManager
* manager
) = 0;
56 #endif // NET_BASE_SDCH_MANAGER_H_