mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
955 B
41 lines
955 B
class Strm : public Stream {
|
|
public:
|
|
Strm(MSF* pmsf_, SN sn_) {
|
|
pmsf = pmsf_;
|
|
sn = sn_;
|
|
}
|
|
CB QueryCb() {
|
|
return MSFGetCbStream(pmsf, sn);
|
|
}
|
|
BOOL Read(OFF off, void* pvBuf, CB* pcbBuf) {
|
|
return MSFReadStream2(pmsf, sn, off, pvBuf, pcbBuf);
|
|
}
|
|
BOOL Read2(OFF off, void* pvBuf, CB cbBuf) {
|
|
CB cbT = cbBuf;
|
|
return MSFReadStream2(pmsf, sn, off, pvBuf, &cbT) && cbT == cbBuf;
|
|
}
|
|
BOOL Write(OFF off, void* pvBuf, CB cbBuf) {
|
|
return MSFWriteStream(pmsf, sn, off, pvBuf, cbBuf);
|
|
}
|
|
BOOL Replace(void* pvBuf, CB cbBuf) {
|
|
return MSFReplaceStream(pmsf, sn, pvBuf, cbBuf);
|
|
}
|
|
BOOL Append(void* pvBuf, CB cbBuf) {
|
|
return MSFAppendStream(pmsf, sn, pvBuf, cbBuf);
|
|
}
|
|
BOOL Truncate(CB cb) {
|
|
return MSFTruncateStream(pmsf, sn, cb);
|
|
}
|
|
BOOL Delete() {
|
|
// BUG: does not revoke the streamname->sn mapping.
|
|
assert(0);
|
|
return MSFDeleteStream(pmsf, sn);
|
|
}
|
|
BOOL Release() {
|
|
delete this;
|
|
return TRUE;
|
|
}
|
|
private:
|
|
MSF* pmsf;
|
|
SN sn;
|
|
};
|