filestoraged/src/structures

49 lines
1.0 KiB
Plaintext

module FileStorage
def self.message_buffer_size
def self.file_reading_buffer_size
def self.data_digest(data : Bytes)
def self.file_digest(file : File)
end
class FileStorage::Chunk
n : Int32 # chunk's number
on : Int32 # number of chunks
digest : String # digest of the current chunk
initialize(@n, @on, data)
end
class FileStorage::FileInfo
name : String
size : UInt64
nb_chunks : Int32
digest : String
tags : Array(String)
initialize(file : File, tags = nil)
end
class TransferInfo
owner : Int32
file_info : FileStorage::FileInfo
chunks : Array(Int32)
initialize(@owner, @file_info)
end
# Keep track of connected users and their requests.
class FileStorage::UserData
property uid : Int32
property uploads : Array(Upload) # NOT USED.
property downloads : Array(Download) # NOT USED.
initialize(@uid, @uploads = Array(Upload).new,
@downloads = Array(Download).new)
end
root/
files/ : actual files
meta/ : DODB TransferInfo
users/ : DODP UserData (for later use: quotas, rights)