/// Time from days, hours, minutes, seconds Time::Time(int days, int hours, int minutes, int seconds) { hours += HOURS_PER_DAY*days; if ((hours*minutes >= 0) && (hours*seconds >= 0) && (minutes*seconds >= 0)) { // same sign, carry on m_impl = ImplPtr(new ImplType(hours, minutes, seconds, 0)); } else { // mixed sign ImplType negativeDuration(std::min(hours,0),std::min(minutes,0),std::min(seconds,0),0); m_impl = ImplPtr(new ImplType(std::max(hours,0),std::max(minutes,0),std::max(seconds,0),0)); *m_impl += negativeDuration; } }
InterfaceManager::InterfaceManager(io_service& io) : mEventLoop(io), mWork(new io_service::work(mImplService)) { mImpl = ImplPtr(new InterfaceManagerImpl); mThreadGroop.create_thread(boost::bind(&io_service::run, &mImplService)); /**< Connecting signals */ mImpl->interfaceListUpdateSignal.connect(boost::bind(&InterfaceManager::onInterfaceUpdateSlot, this, _1, _2)); mImpl->updateFailedSignal.connect(boost::bind(&InterfaceManager::onUpdateFailedSlot, this)); }
/// Time from number of days, fractional values ok Time::Time(double fracDays) { double fracHours = HOURS_PER_DAY * fracDays; int hours = floor0(fracHours); double fracMinutes = MINUTES_PER_HOUR * (fracHours-hours); int minutes = floor0(fracMinutes); double fracSeconds = SECONDS_PER_MINUTE * (fracMinutes-minutes); int seconds = floor0(fracSeconds); m_impl = ImplPtr(new ImplType(hours, minutes, seconds, 0)); }
DrillVector(): DrillCollection<Iface>(ImplPtr(new Impl())) {};
/// copy constructor Time::Time(const Time& other) : m_impl(ImplPtr(new ImplType(other.impl()))) {}
/// Default constructor Time::Time() : m_impl(ImplPtr(new ImplType(0, 0, 0, 0))) {}
/// assignment operator Time& Time::operator= (const Time& other) { m_impl = ImplPtr(new ImplType(other.impl())); return *this; }
/// Time from impl Time::Time(const ImplType& implType) { m_impl = ImplPtr(new ImplType(implType)); }