diff --git a/pkg/resource/resource.go b/pkg/resource/resource.go index 65fc343..181b78d 100644 --- a/pkg/resource/resource.go +++ b/pkg/resource/resource.go @@ -93,6 +93,10 @@ type Resource struct { callback func(*Resource) progressCallback func(*Resource) readOffset int64 + requestID []byte + isResponse bool + hashmap []byte + parts [][]byte } func New(data interface{}, autoCompress bool) (*Resource, error) { @@ -220,12 +224,6 @@ func (r *Resource) GetSegments() uint16 { return r.segments } -func (r *Resource) IsCompressed() bool { - r.mutex.RLock() - defer r.mutex.RUnlock() - return r.compressed -} - func (r *Resource) Cancel() { r.mutex.Lock() defer r.mutex.Unlock() @@ -422,3 +420,97 @@ func (r *Resource) GetSize() int64 { defer r.mutex.RUnlock() return r.dataSize } + +func (r *Resource) HasMetadata() bool { + r.mutex.RLock() + defer r.mutex.RUnlock() + return false +} + +func (r *Resource) IsRequest() bool { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.requestID != nil && !r.isResponse +} + +func (r *Resource) IsResponse() bool { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.isResponse +} + +func (r *Resource) GetRequestID() []byte { + r.mutex.RLock() + defer r.mutex.RUnlock() + if r.requestID == nil { + return nil + } + return append([]byte{}, r.requestID...) +} + +func (r *Resource) SetRequestID(id []byte) { + r.mutex.Lock() + defer r.mutex.Unlock() + if id == nil { + r.requestID = nil + return + } + r.requestID = append([]byte{}, id...) +} + +func (r *Resource) SetIsResponse(isResponse bool) { + r.mutex.Lock() + defer r.mutex.Unlock() + r.isResponse = isResponse +} + +func (r *Resource) getHashmap() []byte { + r.mutex.RLock() + defer r.mutex.RUnlock() + if r.hashmap == nil { + return nil + } + return append([]byte{}, r.hashmap...) +} + +func (r *Resource) GetRandomHash() []byte { + r.mutex.RLock() + defer r.mutex.RUnlock() + if r.randomHash == nil { + return nil + } + return append([]byte{}, r.randomHash...) +} + +func (r *Resource) GetOriginalHash() []byte { + r.mutex.RLock() + defer r.mutex.RUnlock() + if r.originalHash == nil { + return nil + } + return append([]byte{}, r.originalHash...) +} + +func (r *Resource) GetSegmentIndex() uint16 { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.segmentIndex +} + +func (r *Resource) GetTotalSegments() uint16 { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.totalSegments +} + +func (r *Resource) IsEncrypted() bool { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.encrypted +} + +func (r *Resource) IsSplit() bool { + r.mutex.RLock() + defer r.mutex.RUnlock() + return r.split +}