//-------------------------------------------------------------------------------------------------
// <copyright file="LWSetTraceOptionsInternalCmd.h" company="LiquidRobotics">
//  Copyright (c) Liquid Robotics Corporation, confidential and proprietary.  All rights reserved. 
// </copyright>
//
// <summary>
//	Declarations for LWSetTraceOptionsInternalCmd, a delegate class that sets trace
//  options for a lua instance.
// </summary>
//
// <owner>Mike Cookson</owner>
//-------------------------------------------------------------------------------------------------

#ifndef __LWSetTraceOptionsCmd_h__
#define __LWSetTraceOptionsCmd_h__

#include "LWConcreteCmd.h"

namespace LiquidRobotics {
namespace LuaWrapper {

class SHARED_LIB_PUBLIC LWSetTraceOptionsInternalCmd : public LWConcreteCmd
{
public:

	typedef LWConcreteCmd::CmdBasePtr CmdPtr;

	LWSetTraceOptionsInternalCmd(TCon& _ctrl, const string& _cmd, const string& _instanceName, const int _traceOpts);
	virtual ~LWSetTraceOptionsInternalCmd();

	// this method is called by the background thread to execute the command
	virtual void Execute();

	// get the output of the command
	virtual string GetResult();

private:

	LWControllerBase0& ctrl;
	const string cmd;
	const string instanceName;
	const string portInstanceName;
	const int traceOpts;
};

}
}

#endif
