#pragma once

// #include "basda/service/bcu/worker/DeviceFactory.h"
#include "tiptilt_ctrl/bcu/Interface/Sharknir/Bcu/DeviceFactory.h"

#include "tiptilt_ctrl/bcu/util/Assertions.h"

#include <Nice/Property/Joint.h>

namespace Sharknir { namespace Bcu {

class DeviceFactoryImpl : public DeviceFactory
{
public:
    explicit DeviceFactoryImpl(const Nice::JointPtr& config);

    /** @note overridden */
    virtual DevicePtr buildDevice();

    /** @note overridden */
    virtual ~DeviceFactoryImpl();

private:
    Nice::JointPtr config_;
};

typedef boost::shared_ptr<DeviceFactoryImpl> DeviceFactoryImplPtr;

}
}
