36 #include "Foundation.h"
43 namespace ALEMBIC_VERSION_NS {
45 class IData::PrivateData
48 PrivateData(IStreamsPtr iStreams)
58 Alembic::Util::uint64_t pos;
59 Alembic::Util::uint64_t size;
67 IData::IData(IStreamsPtr iStreams,
68 Alembic::Util::uint64_t iPos,
69 std::size_t iThreadId) :
70 mData(new IData::PrivateData(iStreams))
75 mData->pos = iPos & INVALID_GROUP;
77 Alembic::Util::uint64_t size = 0;
80 if ( mData->pos != 0 )
82 mData->streams->read(iThreadId, mData->pos, 8, &size);
87 void IData::read(Alembic::Util::uint64_t iSize,
void * iData,
88 Alembic::Util::uint64_t iOffset, std::size_t iThreadId)
91 if (iSize == 0 || mData->size == 0 || iOffset + iSize > mData->size)
97 mData->streams->read(iThreadId, mData->pos + iOffset + 8, iSize, iData);
100 Alembic::Util::uint64_t IData::getSize()
const
105 Alembic::Util::uint64_t IData::getPos()
const