//-------------------------------------------------------------------------------------------------
// <copyright file="SEClassConfig.h" company="LiquidRobotics">
//  Copyright (c) Liquid Robotics Corporation, confidential and proprietary.  All rights reserved. 
// </copyright>
//
// <summary>
// 	Typedef's to configure the way Sensor template classes are used.
// </summary>
//
// <owner>Mike Cookson</owner>
//-------------------------------------------------------------------------------------------------

#ifndef __SEClassConfig_h__
#define __SEClassConfig_h__

#include "SensorCommandBase.h"
#include "SensorConcreteCommand.h"
#include "SensorControllerBase.h"
#include "SensorControllerBaseCmdID.h"
#include "SensorControllerExceptions.h"

namespace LiquidRobotics {
namespace SensorExample {

typedef EventLib::SensorControllerBaseCommandID SECmdID;
typedef EventLib::SensorCommandBase<SECmdID> SEControllerCommand;
typedef boost::shared_ptr<SEControllerCommand> SEControllerCommandPtr;
typedef EventLib::SensorControllerBase<SEControllerCommand,SECmdID> SEControllerBase0;

// additional class members can be added to SEControllerBase0 in an abstract class to provide a callback
// interface from commands to the controller

typedef EventLib::SensorConcreteCommand<SEControllerBase0,
										EventLib::SensorCommandBase<SECmdID>,
										SECmdID,
										EventLib::SensorControllerExceptions> SEConcreteCmd;

}
}

#endif
