# Copyright (c) 2012-2014 The CEF Python authors. All rights reserved. # License: New BSD License. # Website: http://code.google.com/p/cefpython/ cdef class PyStreamReader: cdef CefRefPtr[CefStreamReader] cefStreamReader cdef cpp_bool HasCefStreamReader(self) except *: if self.cefStreamReader != NULL and self.cefStreamReader.get(): return True return False cdef CefRefPtr[CefStreamReader] GetCefStreamReader(self) except *: if self.HasCefStreamReader(): return self.cefStreamReader return NULL cpdef py_void SetFile(self, py_string file): if os.path.exists(file): self.cefStreamReader = cef_stream_static.CreateForFile( PyToCefStringValue(file)) else: raise Exception("File does not exist: %s" % file) cpdef py_void SetData(self, py_string data): cdef cpp_string cppString = data # CreateForData() requires "void* data", we can't just pass # cppString.c_str() as it is const, we need to copy all data. cdef void* voidData cdef int dataLength = cppString.length() voidData = malloc(dataLength) memcpy(voidData, cppString.c_str(), dataLength) self.cefStreamReader = cef_stream_static.CreateForData( voidData, dataLength) free(voidData)