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

Side by Side Diff: net/disk_cache/simple/simple_entry_operation.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months 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
OLDNEW
(Empty)
1 // Copyright 2013 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.
4
5 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_OPERATION_H_
6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_OPERATION_H_
7
8 #include "base/memory/ref_counted.h"
9 #include "net/base/completion_callback.h"
10 #include "net/base/net_log.h"
11
12 namespace net {
13 class IOBuffer;
14 }
15
16 namespace disk_cache {
17
18 class Entry;
19 class SimpleEntryImpl;
20
21 // SimpleEntryOperation stores the information regarding operations in
22 // SimpleEntryImpl, between the moment they are issued by users of the backend,
23 // and the moment when they are executed.
24 class SimpleEntryOperation {
25 public:
26 typedef net::CompletionCallback CompletionCallback;
27
28 enum EntryOperationType {
29 TYPE_OPEN = 0,
30 TYPE_CREATE = 1,
31 TYPE_CLOSE = 2,
32 TYPE_READ = 3,
33 TYPE_WRITE = 4,
34 TYPE_READ_SPARSE = 5,
35 TYPE_WRITE_SPARSE = 6,
36 TYPE_GET_AVAILABLE_RANGE = 7,
37 TYPE_DOOM = 8,
38 };
39
40 SimpleEntryOperation(const SimpleEntryOperation& other);
41 ~SimpleEntryOperation();
42
43 static SimpleEntryOperation OpenOperation(SimpleEntryImpl* entry,
44 bool have_index,
45 const CompletionCallback& callback,
46 Entry** out_entry);
47 static SimpleEntryOperation CreateOperation(
48 SimpleEntryImpl* entry,
49 bool have_index,
50 const CompletionCallback& callback,
51 Entry** out_entry);
52 static SimpleEntryOperation CloseOperation(SimpleEntryImpl* entry);
53 static SimpleEntryOperation ReadOperation(SimpleEntryImpl* entry,
54 int index,
55 int offset,
56 int length,
57 net::IOBuffer* buf,
58 const CompletionCallback& callback,
59 bool alone_in_queue);
60 static SimpleEntryOperation WriteOperation(
61 SimpleEntryImpl* entry,
62 int index,
63 int offset,
64 int length,
65 net::IOBuffer* buf,
66 bool truncate,
67 bool optimistic,
68 const CompletionCallback& callback);
69 static SimpleEntryOperation ReadSparseOperation(
70 SimpleEntryImpl* entry,
71 int64 sparse_offset,
72 int length,
73 net::IOBuffer* buf,
74 const CompletionCallback& callback);
75 static SimpleEntryOperation WriteSparseOperation(
76 SimpleEntryImpl* entry,
77 int64 sparse_offset,
78 int length,
79 net::IOBuffer* buf,
80 const CompletionCallback& callback);
81 static SimpleEntryOperation GetAvailableRangeOperation(
82 SimpleEntryImpl* entry,
83 int64 sparse_offset,
84 int length,
85 int64* out_start,
86 const CompletionCallback& callback);
87 static SimpleEntryOperation DoomOperation(
88 SimpleEntryImpl* entry,
89 const CompletionCallback& callback);
90
91 bool ConflictsWith(const SimpleEntryOperation& other_op) const;
92 // Releases all references. After calling this operation, SimpleEntryOperation
93 // will only hold POD members.
94 void ReleaseReferences();
95
96 EntryOperationType type() const {
97 return static_cast<EntryOperationType>(type_);
98 }
99 const CompletionCallback& callback() const { return callback_; }
100 Entry** out_entry() { return out_entry_; }
101 bool have_index() const { return have_index_; }
102 int index() const { return index_; }
103 int offset() const { return offset_; }
104 int64 sparse_offset() const { return sparse_offset_; }
105 int length() const { return length_; }
106 int64* out_start() { return out_start_; }
107 net::IOBuffer* buf() { return buf_.get(); }
108 bool truncate() const { return truncate_; }
109 bool optimistic() const { return optimistic_; }
110 bool alone_in_queue() const { return alone_in_queue_; }
111
112 private:
113 SimpleEntryOperation(SimpleEntryImpl* entry,
114 net::IOBuffer* buf,
115 const CompletionCallback& callback,
116 Entry** out_entry,
117 int offset,
118 int64 sparse_offset,
119 int length,
120 int64* out_start,
121 EntryOperationType type,
122 bool have_index,
123 int index,
124 bool truncate,
125 bool optimistic,
126 bool alone_in_queue);
127
128 // This ensures entry will not be deleted until the operation has ran.
129 scoped_refptr<SimpleEntryImpl> entry_;
130 scoped_refptr<net::IOBuffer> buf_;
131 CompletionCallback callback_;
132
133 // Used in open and create operations.
134 Entry** out_entry_;
135
136 // Used in write and read operations.
137 const int offset_;
138 const int64 sparse_offset_;
139 const int length_;
140
141 // Used in get available range operations.
142 int64* const out_start_;
143
144 const EntryOperationType type_;
145 // Used in open and create operations.
146 const bool have_index_;
147 // Used in write and read operations.
148 const unsigned int index_;
149 // Used only in write operations.
150 const bool truncate_;
151 const bool optimistic_;
152 // Used only in SimpleCache.ReadIsParallelizable histogram.
153 const bool alone_in_queue_;
154 };
155
156 } // namespace disk_cache
157
158 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_ENTRY_OPERATION_H_
OLDNEW
« no previous file with comments | « net/disk_cache/simple/simple_entry_impl.cc ('k') | net/disk_cache/simple/simple_entry_operation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698