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

#ifndef Dados_H
#define Dados_H

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

#include <RTSystem/DetectarPacoteComponent.h>

struct Dados
{
	class Base : public RTRootProtocol
	{
	public:
		inline Base( void );
		inline ~Base( void );
		enum
		{
			rti_PacoteCorreto = rtiLast_RTRootProtocol + 1,
			rti_DetectaPacote,
			rti_ProximoLocal,
			rti_CodigoPacote
		};

	protected:
		enum { rtiLast_Dados = rti_CodigoPacote };

	public:
		inline RTInSignal PacoteCorreto( void );
		inline RTInSignal DetectaPacote( void );
		inline RTInSignal ProximoLocal( void );
		inline RTInSignal CodigoPacote( void );
		inline RTOutSignal CarregarPacote( const bool & data );
		inline RTOutSignal PacoteDetectado( const bool & data );
		inline RTOutSignal LocalProximo( const float & data );
		inline RTOutSignal AvisarCentral( const int & data );
		static const RTProtocolDescriptor rt_class;

	private:
		static const RTSignalDescriptor rt_signals[];
	};
	class Conjugate : public RTRootProtocol
	{
	public:
		inline Conjugate( void );
		inline ~Conjugate( void );
		enum
		{
			rti_CarregarPacote = rtiLast_RTRootProtocol + 1,
			rti_PacoteDetectado,
			rti_LocalProximo,
			rti_AvisarCentral
		};

	protected:
		enum { rtiLast_Dados = rti_AvisarCentral };

	public:
		inline RTInSignal CarregarPacote( void );
		inline RTInSignal PacoteDetectado( void );
		inline RTInSignal LocalProximo( void );
		inline RTInSignal AvisarCentral( void );
		inline RTOutSignal PacoteCorreto( const bool & data );
		inline RTOutSignal DetectaPacote( const bool & data );
		inline RTOutSignal ProximoLocal( const float & data );
		inline RTOutSignal CodigoPacote( const long & data );
		static const RTProtocolDescriptor rt_class;

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

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

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

inline RTInSignal Dados::Base::PacoteCorreto( void )
{
	return RTInSignal( this, rti_PacoteCorreto );
}

inline RTInSignal Dados::Base::DetectaPacote( void )
{
	return RTInSignal( this, rti_DetectaPacote );
}

inline RTInSignal Dados::Base::ProximoLocal( void )
{
	return RTInSignal( this, rti_ProximoLocal );
}

inline RTInSignal Dados::Base::CodigoPacote( void )
{
	return RTInSignal( this, rti_CodigoPacote );
}

inline RTOutSignal Dados::Base::CarregarPacote( const bool & data )
{
	return RTOutSignal( this, Conjugate::rti_CarregarPacote, &data, &RTType_bool );
}

inline RTOutSignal Dados::Base::PacoteDetectado( const bool & data )
{
	return RTOutSignal( this, Conjugate::rti_PacoteDetectado, &data, &RTType_bool );
}

inline RTOutSignal Dados::Base::LocalProximo( const float & data )
{
	return RTOutSignal( this, Conjugate::rti_LocalProximo, &data, &RTType_float );
}

inline RTOutSignal Dados::Base::AvisarCentral( const int & data )
{
	return RTOutSignal( this, Conjugate::rti_AvisarCentral, &data, &RTType_int );
}

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

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

inline RTInSignal Dados::Conjugate::CarregarPacote( void )
{
	return RTInSignal( this, rti_CarregarPacote );
}

inline RTInSignal Dados::Conjugate::PacoteDetectado( void )
{
	return RTInSignal( this, rti_PacoteDetectado );
}

inline RTInSignal Dados::Conjugate::LocalProximo( void )
{
	return RTInSignal( this, rti_LocalProximo );
}

inline RTInSignal Dados::Conjugate::AvisarCentral( void )
{
	return RTInSignal( this, rti_AvisarCentral );
}

inline RTOutSignal Dados::Conjugate::PacoteCorreto( const bool & data )
{
	return RTOutSignal( this, Base::rti_PacoteCorreto, &data, &RTType_bool );
}

inline RTOutSignal Dados::Conjugate::DetectaPacote( const bool & data )
{
	return RTOutSignal( this, Base::rti_DetectaPacote, &data, &RTType_bool );
}

inline RTOutSignal Dados::Conjugate::ProximoLocal( const float & data )
{
	return RTOutSignal( this, Base::rti_ProximoLocal, &data, &RTType_float );
}

inline RTOutSignal Dados::Conjugate::CodigoPacote( const long & data )
{
	return RTOutSignal( this, Base::rti_CodigoPacote, &data, &RTType_long );
}

#endif /* Dados_H */

// }}}RME
