Beispiel #1
0
        public BBDataCache(ByteBuffer buffer, int id)
        {
            Checker.Assert(buffer != null && id != 0);

            _bBData = new BBData <T>(buffer.id, id);

            _buffer         = buffer;
            _version        = buffer.version;
            _headerPtrCache = buffer.FindHeaderPtrWithID(id);
            _dataPtrCache   = buffer.GetData <T>(_headerPtrCache);
        }
Beispiel #2
0
        internal BBDataCache(ByteBuffer buffer, BBDataHeader *headerPtr, T *dataPtr)
        {
            Checker.Assert(buffer != null && buffer.isValid && headerPtr != null && dataPtr != null);

            _bBData = new BBData <T>(buffer.id, headerPtr->id);

            _buffer         = buffer;
            _version        = buffer.version;
            _headerPtrCache = headerPtr;
            _dataPtrCache   = dataPtr;
        }
Beispiel #3
0
        private void CheckVersion()
        {
            if (_buffer == null)
            {
                _buffer = ByteBuffer.Get(_bBData.bbId);
            }
            else if (_version == _buffer.version)
            {
                return;
            }

            Checker.Assert(isValid);
            //版本发生变化,重新缓存指针
            _headerPtrCache = _buffer.FindHeaderPtrWithID(_bBData.id);
            _dataPtrCache   = _buffer.GetData <T>(_headerPtrCache);
            _version        = _buffer.version;
        }