SnapShot* SnapShot::Parse(int64 snapId, ThreadContext* threadContext) { char asciiResourceName[64]; sprintf_s(asciiResourceName, 64, "snap_%I64i.snp", snapId); JsTTDStreamHandle snapHandle = threadContext->TTDStreamFunctions.pfGetResourceStream(threadContext->TTDUri.UriByteLength, threadContext->TTDUri.UriBytes, asciiResourceName, true, false); TTD_SNAP_READER snapreader(snapHandle, TTD_COMPRESSED_OUTPUT, threadContext->TTDStreamFunctions.pfReadBytesFromStream, threadContext->TTDStreamFunctions.pfFlushAndCloseStream); SnapShot* snap = SnapShot::ParseSnapshotFromFile(&snapreader); return snap; }
SnapShot* SnapShot::Parse(LPCWSTR sourceDir, DWORD snapId, ThreadContext* threadContext) { wchar* snapIdString = HeapNewArrayZ(wchar, 64); swprintf_s(snapIdString, 64, _u("%u"), snapId); HANDLE snapHandle = threadContext->TTDStreamFunctions.pfGetSnapshotStream(sourceDir, snapIdString, true, false); TTD_SNAP_READER snapreader(snapHandle, TTD_COMPRESSED_OUTPUT, threadContext->TTDStreamFunctions.pfReadBytesFromStream, threadContext->TTDStreamFunctions.pfFlushAndCloseStream); SnapShot* snap = SnapShot::ParseSnapshotFromFile(&snapreader); HeapDeleteArray(64, snapIdString); return snap; }