blob: 0d5750801aa3286713d345de16e1e5597a7942dd [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 (),
52 m_file (path, File::eOpenOptionWrite | File::eOpenOptionCanCreate, File::ePermissionsDefault)
53{
Chris Lattner30fdc8d2010-06-08 16:52:24 +000054}
55
56
57StreamFile::~StreamFile()
58{
Greg Clayton068d16b2011-02-05 06:41:57 +000059}
Greg Claytonedd51922011-02-05 06:37:53 +000060
Jim Ingham9f359212011-01-24 04:09:25 +000061void
Chris Lattner30fdc8d2010-06-08 16:52:24 +000062StreamFile::Flush ()
63{
Greg Clayton51b1e2d2011-02-09 01:08:52 +000064 m_file.Flush();
Chris Lattner30fdc8d2010-06-08 16:52:24 +000065}
66
67int
68StreamFile::Write (const void *s, size_t length)
69{
Greg Clayton51b1e2d2011-02-09 01:08:52 +000070 m_file.Write (s, length);
71 return length;
Chris Lattner30fdc8d2010-06-08 16:52:24 +000072}