blob: cc678fdc1600431da811589d5fc5c8695bf75b80 [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
*******************************************************************************/
#ifndef SRC_MODULES_EMBRICK_SLAVE_HANDLE_H_
#define SRC_MODULES_EMBRICK_SLAVE_HANDLE_H_
#include <stdint.h>
#include <cstring>
#include <forte_sync.h>
#include <forte_bool.h>
#include <forte_dword.h>
#include <io/mapper/io_handle.h>
class EmbrickSlaveHandler;
class EmbrickSlaveHandle : public forte::core::io::IOHandle {
public:
EmbrickSlaveHandle(forte::core::io::IODeviceController *paController, forte::core::io::IOMapper::Direction paDirection, CIEC_ANY::EDataTypeID type,
uint8_t paOffset, EmbrickSlaveHandler *paSlave);
virtual ~EmbrickSlaveHandle();
virtual void set(const CIEC_ANY &);
virtual bool equal(unsigned char*) = 0;
protected:
virtual void reset() {
}
virtual void onObserver(forte::core::io::IOObserver *paObserver);
virtual void dropObserver();
unsigned char* mBuffer;
const uint8_t mOffset;
EmbrickSlaveHandler* mSlave;
CSyncObject *mUpdateMutex;
};
#endif /* SRC_MODULES_EMBRICK_SLAVE_HANDLE_H_ */