49 lines
1.0 KiB
Plaintext
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)
|
|
|