#include #include #include #include #include #include #include #include "Input.h" #include "Exceptions.h" #include "config.h" Input::Input(String no) throw (GeneralException) : Handle(no.strlen() ? open(no.to_charp(), O_RDONLY) : dup(0)), n(no) { if (GetHandle() < 0) { throw IOGeneral(String(_("Error opening file ")) + no + _(" for reading: ") + strerror(errno)); } size = lseek(GetHandle(), 0, SEEK_END); lseek(GetHandle(), 0, SEEK_SET); struct stat s; fstat(GetHandle(), &s); date_modif = s.st_mtime; } Input::Input(const Input & i) : Handle(i), n(i.n), size(i.size), date_modif(i.date_modif) { } bool Input::CanWrite() { return 0; } bool Input::CanRead() { return 1; } String Input::GetName() { return n; } ssize_t Input::GetSize() { return size; } time_t Input::GetModif() { return date_modif; } Stdin_t::Stdin_t() : Handle(dup(0)) { } bool Stdin_t::CanWrite() { return 0; } bool Stdin_t::CanRead() { return 1; } String Stdin_t::GetName() { return "Stdin"; } Stdin_t Stdin;