// {{{RME classifier 'Logical View::CommAlteracaoRota'

#ifndef CommAlteracaoRota_H
#define CommAlteracaoRota_H

#ifdef PRAGMA
#pragma interface "CommAlteracaoRota.h"
#endif

#include <RTSystem/PVA.h>

struct CommAlteracaoRota
{
	class Base : public RTRootProtocol
	{
	public:
		inline Base( void );
		inline ~Base( void );
		enum
		{
			rti_Corrigir = rtiLast_RTRootProtocol + 1,
			rti_Desviar,
			rti_Retornar
		};

	protected:
		enum { rtiLast_CommAlteracaoRota = rti_Retornar };

	public:
		inline RTInSignal Corrigir( void );
		inline RTInSignal Desviar( void );
		inline RTInSignal Retornar( void );
		inline RTOutSignal Obstaculo( void );
		inline RTOutSignal PVA_Desvio( void );
		inline RTOutSignal PVA_Rumo( void );
		inline RTOutSignal PVA_XY( void );
		static const RTProtocolDescriptor rt_class;

	private:
		static const RTSignalDescriptor rt_signals[];
	};
	class Conjugate : public RTRootProtocol
	{
	public:
		inline Conjugate( void );
		inline ~Conjugate( void );
		enum
		{
			rti_Obstaculo = rtiLast_RTRootProtocol + 1,
			rti_PVA_Desvio,
			rti_PVA_Rumo,
			rti_PVA_XY
		};

	protected:
		enum { rtiLast_CommAlteracaoRota = rti_PVA_XY };

	public:
		inline RTInSignal Obstaculo( void );
		inline RTInSignal PVA_Desvio( void );
		inline RTInSignal PVA_Rumo( void );
		inline RTInSignal PVA_XY( void );
		inline RTOutSignal Corrigir( void );
		inline RTOutSignal Desviar( void );
		inline RTOutSignal Retornar( void );
		static const RTProtocolDescriptor rt_class;

	private:
		static const RTSignalDescriptor rt_signals[];
	};
};

inline CommAlteracaoRota::Base::Base( void )
	: RTRootProtocol()
{
}

inline CommAlteracaoRota::Base::~Base( void )
{
}

inline RTInSignal CommAlteracaoRota::Base::Corrigir( void )
{
	return RTInSignal( this, rti_Corrigir );
}

inline RTInSignal CommAlteracaoRota::Base::Desviar( void )
{
	return RTInSignal( this, rti_Desviar );
}

inline RTInSignal CommAlteracaoRota::Base::Retornar( void )
{
	return RTInSignal( this, rti_Retornar );
}

inline RTOutSignal CommAlteracaoRota::Base::Obstaculo( void )
{
	return RTOutSignal( this, Conjugate::rti_Obstaculo, (const void *)0, &RTType_void );
}

inline RTOutSignal CommAlteracaoRota::Base::PVA_Desvio( void )
{
	return RTOutSignal( this, Conjugate::rti_PVA_Desvio, (const void *)0, &RTType_void );
}

inline RTOutSignal CommAlteracaoRota::Base::PVA_Rumo( void )
{
	return RTOutSignal( this, Conjugate::rti_PVA_Rumo, (const void *)0, &RTType_void );
}

inline RTOutSignal CommAlteracaoRota::Base::PVA_XY( void )
{
	return RTOutSignal( this, Conjugate::rti_PVA_XY, (const void *)0, &RTType_void );
}

inline CommAlteracaoRota::Conjugate::Conjugate( void )
	: RTRootProtocol()
{
}

inline CommAlteracaoRota::Conjugate::~Conjugate( void )
{
}

inline RTInSignal CommAlteracaoRota::Conjugate::Obstaculo( void )
{
	return RTInSignal( this, rti_Obstaculo );
}

inline RTInSignal CommAlteracaoRota::Conjugate::PVA_Desvio( void )
{
	return RTInSignal( this, rti_PVA_Desvio );
}

inline RTInSignal CommAlteracaoRota::Conjugate::PVA_Rumo( void )
{
	return RTInSignal( this, rti_PVA_Rumo );
}

inline RTInSignal CommAlteracaoRota::Conjugate::PVA_XY( void )
{
	return RTInSignal( this, rti_PVA_XY );
}

inline RTOutSignal CommAlteracaoRota::Conjugate::Corrigir( void )
{
	return RTOutSignal( this, Base::rti_Corrigir, (const void *)0, &RTType_void );
}

inline RTOutSignal CommAlteracaoRota::Conjugate::Desviar( void )
{
	return RTOutSignal( this, Base::rti_Desviar, (const void *)0, &RTType_void );
}

inline RTOutSignal CommAlteracaoRota::Conjugate::Retornar( void )
{
	return RTOutSignal( this, Base::rti_Retornar, (const void *)0, &RTType_void );
}

#endif /* CommAlteracaoRota_H */

// }}}RME
