130fdc8d8SChris Lattner //===-- StreamFile.cpp ------------------------------------------*- C++ -*-===//
230fdc8d8SChris Lattner //
330fdc8d8SChris Lattner //                     The LLVM Compiler Infrastructure
430fdc8d8SChris Lattner //
530fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source
630fdc8d8SChris Lattner // License. See LICENSE.TXT for details.
730fdc8d8SChris Lattner //
830fdc8d8SChris Lattner //===----------------------------------------------------------------------===//
930fdc8d8SChris Lattner 
1030fdc8d8SChris Lattner #include "lldb/Core/StreamFile.h"
1130fdc8d8SChris Lattner 
1230fdc8d8SChris Lattner // C Includes
13*51b1e2d2SGreg Clayton #include <stdio.h>
1430fdc8d8SChris Lattner // C++ Includes
1530fdc8d8SChris Lattner // Other libraries and framework includes
1630fdc8d8SChris Lattner // Project includes
17*51b1e2d2SGreg Clayton #include "lldb/Core/Error.h"
18*51b1e2d2SGreg Clayton 
1930fdc8d8SChris Lattner 
2030fdc8d8SChris Lattner using namespace lldb;
2130fdc8d8SChris Lattner using namespace lldb_private;
2230fdc8d8SChris Lattner 
2330fdc8d8SChris Lattner //----------------------------------------------------------------------
2430fdc8d8SChris Lattner // StreamFile constructor
2530fdc8d8SChris Lattner //----------------------------------------------------------------------
2630fdc8d8SChris Lattner StreamFile::StreamFile () :
2730fdc8d8SChris Lattner     Stream (),
28*51b1e2d2SGreg Clayton     m_file ()
2930fdc8d8SChris Lattner {
3030fdc8d8SChris Lattner }
3130fdc8d8SChris Lattner 
32*51b1e2d2SGreg Clayton StreamFile::StreamFile (uint32_t flags, uint32_t addr_size, ByteOrder byte_order) :
3330fdc8d8SChris Lattner     Stream (flags, addr_size, byte_order),
34*51b1e2d2SGreg Clayton     m_file ()
3530fdc8d8SChris Lattner {
3630fdc8d8SChris Lattner }
3730fdc8d8SChris Lattner 
38*51b1e2d2SGreg Clayton StreamFile::StreamFile (int fd, bool transfer_ownership) :
3930fdc8d8SChris Lattner     Stream (),
40*51b1e2d2SGreg Clayton     m_file (fd, transfer_ownership)
4130fdc8d8SChris Lattner {
4230fdc8d8SChris Lattner }
4330fdc8d8SChris Lattner 
44*51b1e2d2SGreg Clayton StreamFile::StreamFile (FILE *fh, bool transfer_ownership) :
4530fdc8d8SChris Lattner     Stream (),
46*51b1e2d2SGreg Clayton     m_file (fh, transfer_ownership)
4730fdc8d8SChris Lattner {
48*51b1e2d2SGreg Clayton }
49*51b1e2d2SGreg Clayton 
50*51b1e2d2SGreg Clayton StreamFile::StreamFile (const char *path) :
51*51b1e2d2SGreg Clayton     Stream (),
52*51b1e2d2SGreg Clayton     m_file (path, File::eOpenOptionWrite | File::eOpenOptionCanCreate, File::ePermissionsDefault)
53*51b1e2d2SGreg Clayton {
5430fdc8d8SChris Lattner }
5530fdc8d8SChris Lattner 
5630fdc8d8SChris Lattner 
5730fdc8d8SChris Lattner StreamFile::~StreamFile()
5830fdc8d8SChris Lattner {
59068d16b4SGreg Clayton }
60edd5192dSGreg Clayton 
619f35921bSJim Ingham void
6230fdc8d8SChris Lattner StreamFile::Flush ()
6330fdc8d8SChris Lattner {
64*51b1e2d2SGreg Clayton     m_file.Flush();
6530fdc8d8SChris Lattner }
6630fdc8d8SChris Lattner 
6730fdc8d8SChris Lattner int
6830fdc8d8SChris Lattner StreamFile::Write (const void *s, size_t length)
6930fdc8d8SChris Lattner {
70*51b1e2d2SGreg Clayton     m_file.Write (s, length);
71*51b1e2d2SGreg Clayton     return length;
7230fdc8d8SChris Lattner }
73