OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 CHROMECAST_MEDIA_CMA_IPC_MEDIA_MESSAGE_FIFO_H_ | 5 #ifndef CHROMECAST_MEDIA_CMA_IPC_MEDIA_MESSAGE_FIFO_H_ |
6 #define CHROMECAST_MEDIA_CMA_IPC_MEDIA_MESSAGE_FIFO_H_ | 6 #define CHROMECAST_MEDIA_CMA_IPC_MEDIA_MESSAGE_FIFO_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 | 9 |
10 #include "base/atomicops.h" | 10 #include "base/atomicops.h" |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 // (the renderer process cannot modify the size and make the browser process | 167 // (the renderer process cannot modify the size and make the browser process |
168 // access out of range addresses). | 168 // access out of range addresses). |
169 size_t size_; | 169 size_t size_; |
170 | 170 |
171 // TODO(damienv): This is a work-around since atomicops.h does not define | 171 // TODO(damienv): This is a work-around since atomicops.h does not define |
172 // an atomic size_t type. | 172 // an atomic size_t type. |
173 #if SIZE_MAX == UINT32_MAX | 173 #if SIZE_MAX == UINT32_MAX |
174 typedef base::subtle::Atomic32 AtomicSize; | 174 typedef base::subtle::Atomic32 AtomicSize; |
175 #elif SIZE_MAX == UINT64_MAX | 175 #elif SIZE_MAX == UINT64_MAX |
176 typedef base::subtle::Atomic64 AtomicSize; | 176 typedef base::subtle::Atomic64 AtomicSize; |
177 #elif | 177 #else |
178 #error "Unsupported size_t" | 178 #error "Unsupported size_t" |
179 #endif | 179 #endif |
180 AtomicSize* rd_offset_; | 180 AtomicSize* rd_offset_; |
181 AtomicSize* wr_offset_; | 181 AtomicSize* wr_offset_; |
182 | 182 |
183 // Internal read offset: this is where data is actually read from. | 183 // Internal read offset: this is where data is actually read from. |
184 // The external offset |rd_offset_| is only used to protect data from being | 184 // The external offset |rd_offset_| is only used to protect data from being |
185 // overwritten by the feeder. | 185 // overwritten by the feeder. |
186 // At any time, the internal read pointer must be between the external read | 186 // At any time, the internal read pointer must be between the external read |
187 // offset and the write offset (circular fifo definition of "between"). | 187 // offset and the write offset (circular fifo definition of "between"). |
(...skipping 11 matching lines...) Expand all Loading... |
199 base::WeakPtr<MediaMessageFifo> weak_this_; | 199 base::WeakPtr<MediaMessageFifo> weak_this_; |
200 base::WeakPtrFactory<MediaMessageFifo> weak_factory_; | 200 base::WeakPtrFactory<MediaMessageFifo> weak_factory_; |
201 | 201 |
202 DISALLOW_COPY_AND_ASSIGN(MediaMessageFifo); | 202 DISALLOW_COPY_AND_ASSIGN(MediaMessageFifo); |
203 }; | 203 }; |
204 | 204 |
205 } // namespace media | 205 } // namespace media |
206 } // namespace chromecast | 206 } // namespace chromecast |
207 | 207 |
208 #endif // CHROMECAST_MEDIA_CMA_IPC_MEDIA_MESSAGE_FIFO_H_ | 208 #endif // CHROMECAST_MEDIA_CMA_IPC_MEDIA_MESSAGE_FIFO_H_ |
OLD | NEW |