1*06c3fb27SDimitry Andric %extend lldb::SBFile { MakeBorrowed(lldb::FileSP BORROWED)2*06c3fb27SDimitry Andric static lldb::SBFile MakeBorrowed(lldb::FileSP BORROWED) { 3*06c3fb27SDimitry Andric return lldb::SBFile(BORROWED); 4*06c3fb27SDimitry Andric } MakeForcingIOMethods(lldb::FileSP FORCE_IO_METHODS)5*06c3fb27SDimitry Andric static lldb::SBFile MakeForcingIOMethods(lldb::FileSP FORCE_IO_METHODS) { 6*06c3fb27SDimitry Andric return lldb::SBFile(FORCE_IO_METHODS); 7*06c3fb27SDimitry Andric } MakeBorrowedForcingIOMethods(lldb::FileSP BORROWED_FORCE_IO_METHODS)8*06c3fb27SDimitry Andric static lldb::SBFile MakeBorrowedForcingIOMethods(lldb::FileSP BORROWED_FORCE_IO_METHODS) { 9*06c3fb27SDimitry Andric return lldb::SBFile(BORROWED_FORCE_IO_METHODS); 10*06c3fb27SDimitry Andric } 11*06c3fb27SDimitry Andric 12*06c3fb27SDimitry Andric #ifdef SWIGPYTHON 13*06c3fb27SDimitry Andric %pythoncode { 14*06c3fb27SDimitry Andric @classmethod 15*06c3fb27SDimitry Andric def Create(cls, file, borrow=False, force_io_methods=False): 16*06c3fb27SDimitry Andric """ 17*06c3fb27SDimitry Andric Create a SBFile from a python file object, with options. 18*06c3fb27SDimitry Andric 19*06c3fb27SDimitry Andric If borrow is set then the underlying file will 20*06c3fb27SDimitry Andric not be closed when the SBFile is closed or destroyed. 21*06c3fb27SDimitry Andric 22*06c3fb27SDimitry Andric If force_scripting_io is set then the python read/write 23*06c3fb27SDimitry Andric methods will be called even if a file descriptor is available. 24*06c3fb27SDimitry Andric """ 25*06c3fb27SDimitry Andric if borrow: 26*06c3fb27SDimitry Andric if force_io_methods: 27*06c3fb27SDimitry Andric return cls.MakeBorrowedForcingIOMethods(file) 28*06c3fb27SDimitry Andric else: 29*06c3fb27SDimitry Andric return cls.MakeBorrowed(file) 30*06c3fb27SDimitry Andric else: 31*06c3fb27SDimitry Andric if force_io_methods: 32*06c3fb27SDimitry Andric return cls.MakeForcingIOMethods(file) 33*06c3fb27SDimitry Andric else: 34*06c3fb27SDimitry Andric return cls(file) 35*06c3fb27SDimitry Andric } 36*06c3fb27SDimitry Andric #endif 37*06c3fb27SDimitry Andric } 38