Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: printing/printed_document.h

Issue 360042: First patch in making destructors of refcounted objects private. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PRINTING_PRINTED_DOCUMENT_H_ 5 #ifndef PRINTING_PRINTED_DOCUMENT_H_
6 #define PRINTING_PRINTED_DOCUMENT_H_ 6 #define PRINTING_PRINTED_DOCUMENT_H_
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "app/gfx/native_widget_types.h" 10 #include "app/gfx/native_widget_types.h"
(...skipping 21 matching lines...) Expand all
32 // will have write access. Sensible functions are protected by a lock. 32 // will have write access. Sensible functions are protected by a lock.
33 // Warning: Once a page is loaded, it cannot be replaced. Pages may be discarded 33 // Warning: Once a page is loaded, it cannot be replaced. Pages may be discarded
34 // under low memory conditions. 34 // under low memory conditions.
35 class PrintedDocument : public base::RefCountedThreadSafe<PrintedDocument> { 35 class PrintedDocument : public base::RefCountedThreadSafe<PrintedDocument> {
36 public: 36 public:
37 // The cookie shall be unique and has a specific relationship with its 37 // The cookie shall be unique and has a specific relationship with its
38 // originating source and settings. 38 // originating source and settings.
39 PrintedDocument(const PrintSettings& settings, 39 PrintedDocument(const PrintSettings& settings,
40 PrintedPagesSource* source, 40 PrintedPagesSource* source,
41 int cookie); 41 int cookie);
42 ~PrintedDocument();
43 42
44 // Sets a page's data. 0-based. Takes metafile ownership. 43 // Sets a page's data. 0-based. Takes metafile ownership.
45 // Note: locks for a short amount of time. 44 // Note: locks for a short amount of time.
46 void SetPage(int page_number, NativeMetafile* metafile, double shrink); 45 void SetPage(int page_number, NativeMetafile* metafile, double shrink);
47 46
48 // Retrieves a page. If the page is not available right now, it 47 // Retrieves a page. If the page is not available right now, it
49 // requests to have this page be rendered and returns false. 48 // requests to have this page be rendered and returns false.
50 // Note: locks for a short amount of time. 49 // Note: locks for a short amount of time.
51 bool GetPage(int page_number, scoped_refptr<PrintedPage>* page); 50 bool GetPage(int page_number, scoped_refptr<PrintedPage>* page);
52 51
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 const std::wstring& time() const { return immutable_.time_; } 98 const std::wstring& time() const { return immutable_.time_; }
100 const int cookie() const { return immutable_.cookie_; } 99 const int cookie() const { return immutable_.cookie_; }
101 100
102 // Sets a path where to dump printing output files for debugging. If never set 101 // Sets a path where to dump printing output files for debugging. If never set
103 // no files are generated. 102 // no files are generated.
104 static void set_debug_dump_path(const std::wstring& debug_dump_path); 103 static void set_debug_dump_path(const std::wstring& debug_dump_path);
105 104
106 static const std::wstring& debug_dump_path(); 105 static const std::wstring& debug_dump_path();
107 106
108 private: 107 private:
108 friend class base::RefCountedThreadSafe<PrintedDocument>;
109
110 ~PrintedDocument();
111
109 // Array of data for each print previewed page. 112 // Array of data for each print previewed page.
110 typedef std::map<int, scoped_refptr<PrintedPage> > PrintedPages; 113 typedef std::map<int, scoped_refptr<PrintedPage> > PrintedPages;
111 114
112 // Contains all the mutable stuff. All this stuff MUST be accessed with the 115 // Contains all the mutable stuff. All this stuff MUST be accessed with the
113 // lock held. 116 // lock held.
114 struct Mutable { 117 struct Mutable {
115 Mutable(PrintedPagesSource* source); 118 Mutable(PrintedPagesSource* source);
116 119
117 // Source that generates the PrintedPage's (i.e. a TabContents). It will be 120 // Source that generates the PrintedPage's (i.e. a TabContents). It will be
118 // set back to NULL if the source is deleted before this object. 121 // set back to NULL if the source is deleted before this object.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 189
187 // All the immutable members. 190 // All the immutable members.
188 const Immutable immutable_; 191 const Immutable immutable_;
189 192
190 DISALLOW_EVIL_CONSTRUCTORS(PrintedDocument); 193 DISALLOW_EVIL_CONSTRUCTORS(PrintedDocument);
191 }; 194 };
192 195
193 } // namespace printing 196 } // namespace printing
194 197
195 #endif // PRINTING_PRINTED_DOCUMENT_H_ 198 #endif // PRINTING_PRINTED_DOCUMENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698