diff options
Diffstat (limited to 'mojo/edk/system/local_data_pipe.h')
-rw-r--r-- | mojo/edk/system/local_data_pipe.h | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/mojo/edk/system/local_data_pipe.h b/mojo/edk/system/local_data_pipe.h deleted file mode 100644 index abe3a46..0000000 --- a/mojo/edk/system/local_data_pipe.h +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2013 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 MOJO_EDK_SYSTEM_LOCAL_DATA_PIPE_H_ -#define MOJO_EDK_SYSTEM_LOCAL_DATA_PIPE_H_ - -#include "base/macros.h" -#include "base/memory/aligned_memory.h" -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_ptr.h" -#include "mojo/edk/system/data_pipe.h" -#include "mojo/edk/system/system_impl_export.h" - -namespace mojo { -namespace system { - -// |LocalDataPipe| is a subclass that "implements" |DataPipe| for data pipes -// whose producer and consumer are both local. This class is thread-safe (with -// protection provided by |DataPipe|'s |lock_|. -class MOJO_SYSTEM_IMPL_EXPORT LocalDataPipe : public DataPipe { - public: - // |validated_options| should be the output of |DataPipe::ValidateOptions()|. - // In particular: |struct_size| is ignored (so |validated_options| must be the - // current version of the struct) and |capacity_num_bytes| must be nonzero. - explicit LocalDataPipe(const MojoCreateDataPipeOptions& validated_options); - - private: - friend class base::RefCountedThreadSafe<LocalDataPipe>; - ~LocalDataPipe() override; - - // |DataPipe| implementation: - void ProducerCloseImplNoLock() override; - MojoResult ProducerWriteDataImplNoLock( - UserPointer<const void> elements, - UserPointer<uint32_t> num_bytes, - uint32_t max_num_bytes_to_write, - uint32_t min_num_bytes_to_write) override; - MojoResult ProducerBeginWriteDataImplNoLock( - UserPointer<void*> buffer, - UserPointer<uint32_t> buffer_num_bytes, - uint32_t min_num_bytes_to_write) override; - MojoResult ProducerEndWriteDataImplNoLock( - uint32_t num_bytes_written) override; - HandleSignalsState ProducerGetHandleSignalsStateImplNoLock() const override; - void ConsumerCloseImplNoLock() override; - MojoResult ConsumerReadDataImplNoLock(UserPointer<void> elements, - UserPointer<uint32_t> num_bytes, - uint32_t max_num_bytes_to_read, - uint32_t min_num_bytes_to_read, - bool peek) override; - MojoResult ConsumerDiscardDataImplNoLock( - UserPointer<uint32_t> num_bytes, - uint32_t max_num_bytes_to_discard, - uint32_t min_num_bytes_to_discard) override; - MojoResult ConsumerQueryDataImplNoLock( - UserPointer<uint32_t> num_bytes) override; - MojoResult ConsumerBeginReadDataImplNoLock( - UserPointer<const void*> buffer, - UserPointer<uint32_t> buffer_num_bytes, - uint32_t min_num_bytes_to_read) override; - MojoResult ConsumerEndReadDataImplNoLock(uint32_t num_bytes_read) override; - HandleSignalsState ConsumerGetHandleSignalsStateImplNoLock() const override; - - void EnsureBufferNoLock(); - void DestroyBufferNoLock(); - - // Get the maximum (single) write/read size right now (in number of elements); - // result fits in a |uint32_t|. - size_t GetMaxNumBytesToWriteNoLock(); - size_t GetMaxNumBytesToReadNoLock(); - - // Marks the given number of bytes as consumed/discarded. |num_bytes| must be - // greater than |current_num_bytes_|. - void MarkDataAsConsumedNoLock(size_t num_bytes); - - // The members below are protected by |DataPipe|'s |lock_|: - scoped_ptr<char, base::AlignedFreeDeleter> buffer_; - // Circular buffer. - size_t start_index_; - size_t current_num_bytes_; - - DISALLOW_COPY_AND_ASSIGN(LocalDataPipe); -}; - -} // namespace system -} // namespace mojo - -#endif // MOJO_EDK_SYSTEM_LOCAL_DATA_PIPE_H_ |