Versions in this module Expand all Collapse all v1 v1.0.0 Mar 11, 2024 Changes in this version + const ROOT_UUID + func NodeInfoToArtificialCloudItem(nodeInfo *NodeInfo) putersdk.CloudItem + type AssociationService struct + CacheStampedeMap map[string]*sync.Mutex + CacheStampedeMapLock sync.RWMutex + InoToLocalUID lang.IMap[uint64, string] + LocalUIDToBaseHash lang.IMap[string, string] + LocalUIDToIno lang.IMap[string, uint64] + LocalUIDToNodeInfo *kvdotgo.KVMap[string, fao.NodeInfo] + LocalUIDToRemoteUID lang.IMap[string, string] + PathToBaseHash lang.IMap[string, string] + PathToLocalUID lang.IMap[string, string] + RemoteUIDToLocalUID lang.IMap[string, string] + func CreateAssociationService() *AssociationService + func (svc *AssociationService) GetLocalUIDFromRemote(remoteUID string) string + func (svc *AssociationService) Init(services services.IServiceContainer) + type BLOBCacheEntry struct + AwaitForgotten chan struct{} + AwaitRelease chan struct{} + AwaitRemovedFromFS chan struct{} + Hash string + References []*BLOBCacheReference + ReferencesLock sync.RWMutex + Uid string + type BLOBCacheReference struct + func (ref *BLOBCacheReference) AwaitForgotten() <-chan struct{} + func (ref *BLOBCacheReference) AwaitRemovedFromFS() <-chan struct{} + func (ref *BLOBCacheReference) GetHash() string + func (ref *BLOBCacheReference) Release() + type BLOBCacheService struct + ConfigService IConfig + Filesystem afero.Fs + KnownBlobs lang.IMap[string, *BLOBCacheEntry] + func CreateBLOBCacheService(fs afero.Fs) *BLOBCacheService + func (svc *BLOBCacheService) Get(hash string, offset, size int64) io.Reader + func (svc *BLOBCacheService) GetBytes(hash string, offset int64, buffer []byte) (int, bool, error) + func (svc *BLOBCacheService) Hold(hash string) *BLOBCacheReference + func (svc *BLOBCacheService) Init(services services.IServiceContainer) + func (svc *BLOBCacheService) Store(reader io.Reader) *BLOBCacheReference + type ConfigLoadedEvent struct + type ConfigService struct + func CreateConfigService() *ConfigService + func (svc *ConfigService) Init(services services.IServiceContainer) + type IConfig interface + GetString func(key string) string + type I_Batcher_EnqueueOperationRequest interface + EnqueueOperationRequest func(operation putersdk.Operation, blob []byte) OperationRequestPromise + type Mutation interface + Apply func(inStream io.ReadCloser) (outStream io.ReadCloser, err error) + ApplyToBuffer func(buffer []byte, offset int64) + type MutationChain struct + Mutations []interface{} + Releasables []Releasable + func (chain *MutationChain) ApplyToBuffer(buffer []byte, offset int64) + type MutationReference struct + func (ref *MutationReference) Release() + type NodeInfo struct + Name string + Path string + Size uint64 + Type NodeType + type NodeType int + const Dir + const File + const Symlink + type OperationRequest struct + Operation putersdk.Operation + Resolve chan<- OperationResponse + type OperationRequestPromise struct + Await <-chan OperationResponse + type OperationResponse struct + Data map[string]interface{} + type OperationService struct + OperationRequestQueue chan *OperationRequest + QueueReadyQueue chan struct{} + SDK *putersdk.PuterSDK + func (svc_op *OperationService) EnqueueOperationRequest(operation putersdk.Operation, blob []byte) OperationRequestPromise + func (svc_op *OperationService) Init(services services.IServiceContainer) + type PendingNodeService struct + LookupTableParent map[string][]*NodeInfo + LookupTableParentLock sync.RWMutex + LookupTablePath map[string]*NodeInfo + LookupTablePathLock sync.RWMutex + func (svc *PendingNodeService) Forget(parent, name string) + func (svc *PendingNodeService) GetChildren(parent string) []*NodeInfo + func (svc *PendingNodeService) GetNodeInfo(path string) *NodeInfo + func (svc *PendingNodeService) Init(services services.IServiceContainer) + func (svc *PendingNodeService) Link(parent, name string, typ NodeType) *NodeInfo + func (svc *PendingNodeService) SetFileData(path string, data []byte) int + type Releasable interface + Release func() + type RemoveMutation struct + type TruncateMutation struct + Size uint64 + type VirtualDirectoryEntry struct + LastReaddir time.Time + MemberNameToUID lang.IMap[string, string] + MemberUIDToName lang.IMap[string, string] + func CreateVirtualDirectoryEntry() *VirtualDirectoryEntry + func (v *VirtualDirectoryEntry) GetUIDs() []string + type VirtualEntry struct + type VirtualFileEntry struct + func CreateVirtualFileEntry() *VirtualFileEntry + type VirtualTreeService struct + Directories lang.IMap[string, *VirtualDirectoryEntry] + DirectoriesCacheLock *lang.CacheStampedeMap[string] + Files lang.IMap[string, *VirtualFileEntry] + func CreateVirtualTreeService() *VirtualTreeService + func (svc *VirtualTreeService) Init(services services.IServiceContainer) + func (svc *VirtualTreeService) Link(parentUID, childUID, name string) + func (svc *VirtualTreeService) RegisterDirectory(uid string) string + func (svc *VirtualTreeService) RegisterFile(uid string) string + func (svc *VirtualTreeService) ResolvePath(parts []string) *VirtualDirectoryEntry + func (svc *VirtualTreeService) Unlink(parentUID, childUID string) + func (svc *VirtualTreeService) UpdateLastReaddir(uid string) + type WholeFileCacheService struct + FileData map[string][]byte + FileVer map[string]int + func (svc_cache *WholeFileCacheService) DeleteFileData(path string, ver int) + func (svc_cache *WholeFileCacheService) GetFileData(path string) []byte + func (svc_cache *WholeFileCacheService) Init(services services.IServiceContainer) + func (svc_cache *WholeFileCacheService) SetFileData(path string, data []byte) int + type WriteCacheService struct + CachedOperations lang.IMap[string, *MutationChain] + func CreateWriteCacheService() *WriteCacheService + func (svc *WriteCacheService) ApplyMutation(localUID string, mut Mutation) *MutationReference + func (svc *WriteCacheService) ApplyToBuffer(localUID string, buffer []byte, offset int64) + func (svc *WriteCacheService) Init(services services.IServiceContainer) + type WriteMutation struct + Data []byte + Offset int64 + func (mut *WriteMutation) Apply(inStream io.ReadCloser) (outStream io.ReadCloser, err error) + func (mut *WriteMutation) ApplyToBuffer(buffer []byte, offset int64)