| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright (c) 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 LIBRARIES_NACL_IO_MOUNT_NODE_STREAM_H_ | 
 |   6 #define LIBRARIES_NACL_IO_MOUNT_NODE_STREAM_H_ | 
 |   7  | 
 |   8 #include <map> | 
 |   9 #include <string> | 
 |  10  | 
 |  11 #include "nacl_io/event_emitter_pipe.h" | 
 |  12 #include "nacl_io/mount_node.h" | 
 |  13 #include "sdk_util/atomicops.h" | 
 |  14  | 
 |  15 namespace nacl_io { | 
 |  16  | 
 |  17 class MountNodeStream; | 
 |  18 class MountStream; | 
 |  19  | 
 |  20 typedef sdk_util::ScopedRef<MountNodeStream> ScopedMountNodeStream; | 
 |  21  | 
 |  22 enum StreamStateFlags { | 
 |  23   SSF_CONNECTING = 0x0001, | 
 |  24   SSF_SENDING = 0x0002, | 
 |  25   SSF_RECVING = 0x0004, | 
 |  26   SSF_NON_BLOCK = 0x1000, | 
 |  27   SSF_CLOSING = 0x4000, | 
 |  28   SSF_CLOSED = 0x8000 | 
 |  29 }; | 
 |  30  | 
 |  31  | 
 |  32 class MountNodeStream : public MountNode { | 
 |  33  public: | 
 |  34   explicit MountNodeStream(Mount* mnt); | 
 |  35  | 
 |  36   virtual Error Init(int perm); | 
 |  37  | 
 |  38   // Attempts to pump input and output | 
 |  39   virtual void QueueInput(); | 
 |  40   virtual void QueueOutput(); | 
 |  41  | 
 |  42   void SetStreamFlags(uint32_t bits); | 
 |  43   void ClearStreamFlags(uint32_t bits); | 
 |  44   uint32_t GetStreamFlags(); | 
 |  45  | 
 |  46   MountStream* mount_stream(); | 
 |  47  | 
 |  48  protected: | 
 |  49   int read_timeout_; | 
 |  50   int write_timeout_; | 
 |  51  | 
 |  52  private: | 
 |  53   sdk_util::Atomic32 stream_state_flags_; | 
 |  54 }; | 
 |  55  | 
 |  56 }  // namespace nacl_io | 
 |  57  | 
 |  58 #endif  // LIBRARIES_NACL_IO_MOUNT_NODE_STREAM_H_ | 
| OLD | NEW |