#ifndef __rf_channel_ih__ #define __rf_channel_ih__ #include "rf_channel.hh" #include "rf_object.ih" #include "rf_expr.ih" #include namespace rftype { inline Channel::Channel (FILE* _fp /* = null */) : fp (_fp) {} inline Channel::Channel (Channel const& _channel) : Object (), fp (_channel.fp) {} inline Channel::~Channel () { close(); } inline Channel& Channel::operator = (Channel const& _channel) { if (this != &_channel) { this->~Channel(); new(this) Channel(_channel); } return self; } inline unsigned Channel::get_type () const { return reg.get_type(); } // // FIXME: Return proper hash value inline uint32_t Channel::hash () const { return 0; } inline bool Channel::operator == (Object const& _obj) const { try { Channel const& ch = dynamic_cast(_obj); return fp == ch.fp; } catch (std::bad_cast&) { return false; } } inline bool Channel::open (char const* _fname, char const* _mode) { if (fp != 0) fclose(fp); fp = fopen(_fname, _mode); return fp != null ? true : false; } inline void Channel::close () { if (fp != 0) fclose(fp); } } #endif // __rf_channel_ih__