75 lines
1.2 KiB
C++
75 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <ctime>
|
|
#include <sstream>
|
|
#include <iostream>
|
|
#include <cassert>
|
|
|
|
#include "Routerin.H"
|
|
|
|
class Routerin;
|
|
|
|
class Sicobject
|
|
{
|
|
public:
|
|
|
|
Sicobject() = delete;
|
|
|
|
Sicobject(const Routerin * master) :
|
|
_routerin(master),
|
|
_isvalid(false)
|
|
{
|
|
};
|
|
|
|
Sicobject(const Routerin *master, unsigned int idnum, std::string fname,size_t objsize,time_t upl_date) :
|
|
_size(objsize),
|
|
_idnum(idnum),
|
|
_routerin(master),
|
|
_isvalid(true),
|
|
_upl_date(upl_date),
|
|
_fname(fname)
|
|
{
|
|
}
|
|
|
|
|
|
~Sicobject();
|
|
std::string get_loadurl(){
|
|
std::string retval = "files/"; //TODO add master.get_baseurl()
|
|
//TODO: add idnum
|
|
return retval;
|
|
}
|
|
|
|
std::string get_fname()
|
|
{
|
|
return _fname;
|
|
}
|
|
|
|
size_t get_size() { return _size;}
|
|
|
|
std::string bytesize_string()
|
|
{
|
|
std::ostringstream strm( std::ios_base::ate);
|
|
int i = 0;
|
|
size_t size = _size;
|
|
const char* units[] = {"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"};
|
|
while (size > 1024) {
|
|
size /= 1024;
|
|
i++;
|
|
}
|
|
assert(i < 9);
|
|
strm << size << units[i];
|
|
return strm.str();
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
size_t _size;
|
|
unsigned int _idnum;
|
|
const Routerin * _routerin;
|
|
bool _isvalid;
|
|
time_t _upl_date;
|
|
std::string _fname;
|
|
};
|