| // Copyright (c) 2012 The Chromium 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 NET_BASE_PLATFORM_MIME_UTIL_H_ | 
 | #define NET_BASE_PLATFORM_MIME_UTIL_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | #include "base/file_path.h" | 
 | #include "base/hash_tables.h" | 
 |  | 
 | namespace net { | 
 |  | 
 | // Encapsulates the platform-specific functionality in mime_util. | 
 | class PlatformMimeUtil { | 
 |  public: | 
 |   // See documentation for base::GetPreferredExtensionForMimeType [mime_util.h] | 
 |   bool GetPreferredExtensionForMimeType(const std::string& mime_type, | 
 |                                         FilePath::StringType* extension) const; | 
 |  | 
 |   // Adds all the extensions that the platform associates with the type | 
 |   // |mime_type| to the set |extensions|.  Returns at least the value returned | 
 |   // by GetPreferredExtensionForMimeType. | 
 |   void GetPlatformExtensionsForMimeType( | 
 |       const std::string& mime_type, | 
 |       base::hash_set<FilePath::StringType>* extensions) const; | 
 |  | 
 |  protected: | 
 |   // Get the mime type (if any) that is associated with the file extension. | 
 |   // Returns true if a corresponding mime type exists. | 
 |   bool GetPlatformMimeTypeFromExtension(const FilePath::StringType& ext, | 
 |                                         std::string* mime_type) const; | 
 | }; | 
 |  | 
 | }  // namespace net | 
 |  | 
 | #endif  // NET_BASE_PLATFORM_MIME_UTIL_H_ |