blob: e65de188813785cef3f7a267876ba47f8d5bdba4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 - 2018 Johannes Messmer (admin@jomess.com), fortiss GmbH
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Johannes Messmer - initial API and implementation and/or initial documentation
* Jose Cabral - Cleaning of namespaces
*******************************************************************************/
#include "io_handle.h"
#include "io_observer.h"
#include <io/device/io_controller.h>
using namespace forte::core::io;
IOHandle::IOHandle(IODeviceController *paController, IOMapper::Direction paDirection, CIEC_ANY::EDataTypeID paType) :
mController(paController), mType(paType), mDirection(paDirection), mObserver(0) {
}
IOHandle::~IOHandle() {
IOMapper::getInstance().deregisterHandle(this);
}
void IOHandle::onObserver(IOObserver *paObserver) {
this->mObserver = paObserver;
}
void IOHandle::dropObserver() {
this->mObserver = 0;
}
void IOHandle::onChange() {
if(mObserver != 0 && mObserver->onChange()) {
mController->fireIndicationEvent(mObserver);
}
}