| 29 | } |
| 30 | |
| 31 | func NewMemoryWriter(memoryStorage *MemoryStorage, key string, expiredAt int64, status int, isDirty bool, expectedBodySize int64, maxSize int64, endFunc func(valueItem *MemoryItem)) *MemoryWriter { |
| 32 | var valueItem = &MemoryItem{ |
| 33 | ExpiresAt: expiredAt, |
| 34 | ModifiedAt: fasttime.Now().Unix(), |
| 35 | Status: status, |
| 36 | } |
| 37 | |
| 38 | if expectedBodySize > 0 { |
| 39 | valueItem.BodyValue = make([]byte, 0, expectedBodySize) |
| 40 | } |
| 41 | |
| 42 | var w = &MemoryWriter{ |
| 43 | storage: memoryStorage, |
| 44 | key: key, |
| 45 | expiredAt: expiredAt, |
| 46 | item: valueItem, |
| 47 | status: status, |
| 48 | isDirty: isDirty, |
| 49 | expectedBodySize: expectedBodySize, |
| 50 | maxSize: maxSize, |
| 51 | endFunc: endFunc, |
| 52 | } |
| 53 | |
| 54 | w.hash = w.calculateHash(key) |
| 55 | |
| 56 | return w |
| 57 | } |
| 58 | |
| 59 | // WriteHeader 写入数据 |
| 60 | func (this *MemoryWriter) WriteHeader(data []byte) (n int, err error) { |