blob: 8c9700c6dcba25b51d083ae66915dce5ad355bf8 [file] [log] [blame]
Chris Lattner30fdc8d2010-06-08 16:52:24 +00001//===-- StreamFile.cpp ------------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lldb/Core/StreamFile.h"
Chris Lattner30fdc8d2010-06-08 16:52:24 +000011
12// C Includes
Greg Clayton51b1e2d2011-02-09 01:08:52 +000013#include <stdio.h>
Chris Lattner30fdc8d2010-06-08 16:52:24 +000014// C++ Includes
15// Other libraries and framework includes
16// Project includes
Greg Clayton51b1e2d2011-02-09 01:08:52 +000017#include "lldb/Core/Error.h"
18
Chris Lattner30fdc8d2010-06-08 16:52:24 +000019
20using namespace lldb;
21using namespace lldb_private;
22
23//----------------------------------------------------------------------
24// StreamFile constructor
25//----------------------------------------------------------------------
26StreamFile::StreamFile () :
27 Stream (),
Greg Clayton51b1e2d2011-02-09 01:08:52 +000028 m_file ()
Chris Lattner30fdc8d2010-06-08 16:52:24 +000029{
30}
31
Greg Clayton51b1e2d2011-02-09 01:08:52 +000032StreamFile::StreamFile (uint32_t flags, uint32_t addr_size, ByteOrder byte_order) :
Chris Lattner30fdc8d2010-06-08 16:52:24 +000033 Stream (flags, addr_size, byte_order),
Greg Clayton51b1e2d2011-02-09 01:08:52 +000034 m_file ()
Chris Lattner30fdc8d2010-06-08 16:52:24 +000035{
36}
37
Greg Clayton51b1e2d2011-02-09 01:08:52 +000038StreamFile::StreamFile (int fd, bool transfer_ownership) :
Chris Lattner30fdc8d2010-06-08 16:52:24 +000039 Stream (),
Greg Clayton51b1e2d2011-02-09 01:08:52 +000040 m_file (fd, transfer_ownership)
Chris Lattner30fdc8d2010-06-08 16:52:24 +000041{
42}
43
Greg Clayton51b1e2d2011-02-09 01:08:52 +000044StreamFile::StreamFile (FILE *fh, bool transfer_ownership) :
Chris Lattner30fdc8d2010-06-08 16:52:24 +000045 Stream (),
Greg Clayton51b1e2d2011-02-09 01:08:52 +000046 m_file (fh, transfer_ownership)
Chris Lattner30fdc8d2010-06-08 16:52:24 +000047{
Greg Clayton51b1e2d2011-02-09 01:08:52 +000048}
49
50StreamFile::StreamFile (const char *path) :
51 Stream (),
Pavel Labath97a9ac12015-02-05 16:44:42 +000052 m_file (path, File::eOpenOptionWrite | File::eOpenOptionCanCreate | File::eOpenOptionCloseOnExec,
53 lldb::eFilePermissionsFileDefault)
Greg Clayton51b1e2d2011-02-09 01:08:52 +000054{
Chris Lattner30fdc8d2010-06-08 16:52:24 +000055}
56
Pavel Labath8ac06992015-03-20 09:43:20 +000057StreamFile::StreamFile (const char *path,
58 uint32_t options,
59 uint32_t permissions) :
60 Stream(),
61 m_file(path, options, permissions)
62{
63}
Chris Lattner30fdc8d2010-06-08 16:52:24 +000064
65StreamFile::~StreamFile()
66{
Greg Clayton068d16b2011-02-05 06:41:57 +000067}
Greg Claytonedd51922011-02-05 06:37:53 +000068
Jim Ingham9f359212011-01-24 04:09:25 +000069void
Chris Lattner30fdc8d2010-06-08 16:52:24 +000070StreamFile::Flush ()
71{
Greg Clayton51b1e2d2011-02-09 01:08:52 +000072 m_file.Flush();
Chris Lattner30fdc8d2010-06-08 16:52:24 +000073}
74
Greg Claytonc7bece562013-01-25 18:06:21 +000075size_t
Chris Lattner30fdc8d2010-06-08 16:52:24 +000076StreamFile::Write (const void *s, size_t length)
77{
Greg Clayton51b1e2d2011-02-09 01:08:52 +000078 m_file.Write (s, length);
79 return length;
Chris Lattner30fdc8d2010-06-08 16:52:24 +000080}