int DnDURIObject::Read(void *pvBuf, size_t cbBuf, uint32_t *pcbRead) { AssertPtrReturn(pvBuf, VERR_INVALID_POINTER); AssertReturn(cbBuf, VERR_INVALID_PARAMETER); /* pcbRead is optional. */ size_t cbRead = 0; int rc; switch (m_Type) { case File: { rc = OpenEx(m_strSrcPath, File, Source, /* Use some sensible defaults. */ RTFILE_O_OPEN | RTFILE_O_READ | RTFILE_O_DENY_WRITE, 0 /* fFlags */); if (RT_SUCCESS(rc)) { rc = RTFileRead(u.m_hFile, pvBuf, cbBuf, &cbRead); if (RT_SUCCESS(rc)) { m_cbProcessed += cbRead; Assert(m_cbProcessed <= m_cbSize); /* End of file reached or error occurred? */ if ( m_cbSize && m_cbProcessed == m_cbSize) { rc = VINF_EOF; } } } break; } case Directory: { rc = VINF_SUCCESS; break; } default: rc = VERR_NOT_IMPLEMENTED; break; } if (RT_SUCCESS(rc)) { if (pcbRead) *pcbRead = (uint32_t)cbRead; } LogFlowFunc(("Returning strSourcePath=%s, cbRead=%zu, rc=%Rrc\n", m_strSrcPath.c_str(), cbRead, rc)); return rc; }
bool Player::Open(const char* fname) { //Close(); //srcStrm.open(fname, iof::in); //if( !srcStrm.good() ) // return false; // //return mInf.GetInfo(prsCont); return OpenEx(boost::lambda::bind(&OpenStream, boost::ref(srcStrm), fname)); }
int DnDURIObject::Write(const void *pvBuf, size_t cbBuf, uint32_t *pcbWritten) { AssertPtrReturn(pvBuf, VERR_INVALID_POINTER); AssertReturn(cbBuf, VERR_INVALID_PARAMETER); /* pcbWritten is optional. */ size_t cbWritten = 0; int rc; switch (m_Type) { case File: { rc = OpenEx(m_strTgtPath, File, Target, /* Use some sensible defaults. */ RTFILE_O_OPEN_CREATE | RTFILE_O_DENY_WRITE | RTFILE_O_WRITE, 0 /* fFlags */); if (RT_SUCCESS(rc)) { rc = RTFileWrite(u.m_hFile, pvBuf, cbBuf, &cbWritten); if (RT_SUCCESS(rc)) m_cbProcessed += cbWritten; } break; } case Directory: { rc = VINF_SUCCESS; break; } default: rc = VERR_NOT_IMPLEMENTED; break; } if (RT_SUCCESS(rc)) { if (pcbWritten) *pcbWritten = (uint32_t)cbWritten; } LogFlowFunc(("Returning strSourcePath=%s, cbWritten=%zu, rc=%Rrc\n", m_strSrcPath.c_str(), cbWritten, rc)); return rc; }
fsInternetResult fsHttpFile::Open(LPCSTR pszFilePath, UINT64 uStartPos) { return OpenEx (pszFilePath, uStartPos, _UI64_MAX); }
bool Player::OpenFBuf(ptr::shared<io::fbuf> fbuf) { return OpenEx(boost::lambda::bind(&io::stream::init_buf, &srcStrm, fbuf)); }
/** * (Re-)Opens the object with a specific view, open and file mode. * * @return IPRT status code. * @param enmView View to use for opening the object. * @param fOpen File open flags to use. * @param fMode File mode to use. */ int DnDURIObject::Open(View enmView, uint64_t fOpen /* = 0 */, RTFMODE fMode /* = 0 */) { return OpenEx( enmView == View_Source ? m_strSrcPathAbs : m_strTgtPathAbs , enmView, fOpen, fMode, DNDURIOBJECT_FLAGS_NONE); }
int DnDURIObject::Open(Dest enmDest, uint64_t fOpen /* = 0 */, uint32_t fMode /* = 0 */) { return OpenEx( enmDest == Source ? m_strSrcPath : m_strTgtPath , m_Type, enmDest, fOpen, fMode, 0 /* fFlags */); }