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