#pragma once #include #include #include #include #include #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; };