MCPcopy Index your code
hub / github.com/dearcode/candy / add

Method add

store/file.go:150–181  ·  view source on GitHub ↗
(key []byte, data []byte)

Source from the content-addressed store, hash-verified

148}
149
150func (f *fileDB) add(key []byte, data []byte) error {
151 f.Lock()
152 defer f.Unlock()
153
154 if f.isFull() {
155 if err := f.newFile(); err != nil {
156 return errors.Trace(err)
157 }
158 }
159
160 offset, err := f.master.file.Seek(0, os.SEEK_END)
161 if err != nil {
162 return errors.Trace(err)
163 }
164
165 size, err := f.master.file.Write(data)
166 if err != nil {
167 return errors.Trace(err)
168 }
169
170 i := fileInfo{Key: key, Name: f.master.name, Time: time.Now().Unix(), Offset: int32(offset), Size: int32(size)}
171 if data, err = json.Marshal(i); err != nil {
172 return errors.Trace(err)
173 }
174
175 if err = f.db.Put(i.Key, data, nil); err != nil {
176 return errors.Trace(err)
177 }
178
179 log.Debugf("add key:%x to file:%s offset:%d size:%d", key, i.Name, i.Offset, i.Size)
180 return nil
181}
182
183func (f *fileDB) get(key []byte) (data []byte, err error) {
184 var file *os.File

Callers 3

UploadFileMethod · 0.80
TestFileDBFunction · 0.80
TestMessageDBFunction · 0.80

Calls 2

isFullMethod · 0.95
newFileMethod · 0.95

Tested by 2

TestFileDBFunction · 0.64
TestMessageDBFunction · 0.64