MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / read

Method read

Engine/source/core/util/zip/centralDir.cpp:79–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77//-----------------------------------------------------------------------------
78
79bool CentralDir::read(Stream *stream)
80{
81 stream->read(&mHeaderSig);
82 if(mHeaderSig != mCentralDirSignature)
83 return false;
84
85 stream->read(&mVersionMadeBy);
86 stream->read(&mExtractVer);
87 stream->read(&mFlags);
88 stream->read(&mCompressMethod);
89 stream->read(&mModTime);
90 stream->read(&mModDate);
91 stream->read(&mCRC32);
92 stream->read(&mCompressedSize);
93 stream->read(&mUncompressedSize);
94
95 U16 fnLen, efLen, fcLen;
96 stream->read(&fnLen);
97 stream->read(&efLen);
98 stream->read(&fcLen);
99
100 stream->read(&mDiskNumStart);
101
102 stream->read(&mInternalFileAttr);
103 stream->read(&mExternalFileAttr);
104
105 stream->read(&mLocalHeadOffset);
106
107 char *fn = new char[fnLen + 1];
108 stream->read(fnLen, fn);
109 fn[fnLen] = 0;
110 mFilename = String(fn);
111 SAFE_DELETE_ARRAY(fn);
112
113
114 // [tom, 10/28/2006] We currently only need the extra fields when we want to
115 // open the file, so we won't bother reading them here. This avoids keeping
116 // them in memory twice.
117
118 //readExtraFields(stream, efLen);
119 stream->setPosition(stream->getPosition() + efLen);
120
121 fn = new char[fcLen + 1];
122 stream->read(fcLen, fn);
123 fn[fcLen] = 0;
124
125 SAFE_DELETE_ARRAY(mFileComment);
126 mFileComment = fn;
127
128 // Sanity checks to make life easier elsewhere
129 if(mCompressMethod != Stored && mUncompressedSize == 0 && mCompressedSize == 0)
130 mCompressMethod = Stored;
131
132 return true;
133}
134
135bool CentralDir::write(Stream *stream)
136{

Callers 1

findInStreamMethod · 0.45

Calls 3

StringClass · 0.50
setPositionMethod · 0.45
getPositionMethod · 0.45

Tested by

no test coverage detected