1*6777b538SAndroid Build Coastguard Worker // Copyright 2011 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_BASE_NET_MODULE_H__ 6*6777b538SAndroid Build Coastguard Worker #define NET_BASE_NET_MODULE_H__ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/memory/scoped_refptr.h" 9*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker namespace base { 12*6777b538SAndroid Build Coastguard Worker class RefCountedMemory; 13*6777b538SAndroid Build Coastguard Worker } 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace net { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker // Defines global initializers and associated methods for the net module. 18*6777b538SAndroid Build Coastguard Worker // 19*6777b538SAndroid Build Coastguard Worker // The network module does not have direct access to the way application 20*6777b538SAndroid Build Coastguard Worker // resources are stored and fetched by the embedding application (e.g., it 21*6777b538SAndroid Build Coastguard Worker // cannot see the ResourceBundle class used by Chrome), so it uses this API to 22*6777b538SAndroid Build Coastguard Worker // get access to such resources. 23*6777b538SAndroid Build Coastguard Worker // 24*6777b538SAndroid Build Coastguard Worker class NET_EXPORT NetModule { 25*6777b538SAndroid Build Coastguard Worker public: 26*6777b538SAndroid Build Coastguard Worker typedef scoped_refptr<base::RefCountedMemory> (*ResourceProvider)(int key); 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker NetModule() = delete; 29*6777b538SAndroid Build Coastguard Worker NetModule(const NetModule&) = delete; 30*6777b538SAndroid Build Coastguard Worker NetModule& operator=(const NetModule&) = delete; 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker // Set the function to call when the net module needs resources 33*6777b538SAndroid Build Coastguard Worker static void SetResourceProvider(ResourceProvider func); 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker // Call the resource provider (if one exists) to get the specified resource. 36*6777b538SAndroid Build Coastguard Worker // Returns nullptr if the resource does not exist or if there is no resource 37*6777b538SAndroid Build Coastguard Worker // provider. 38*6777b538SAndroid Build Coastguard Worker static scoped_refptr<base::RefCountedMemory> GetResource(int key); 39*6777b538SAndroid Build Coastguard Worker }; 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker } // namespace net 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker #endif // NET_BASE_NET_MODULE_H__ 44