CanadianMachines / MachineLib / AirSink.h
AirSink.h
Raw
/**
 * @file AirSink.h
 * @author sriram
 *
 *
 */

#ifndef CANADIANEXPERIENCE_MACHINELIB_AIRSINK_H
#define CANADIANEXPERIENCE_MACHINELIB_AIRSINK_H

#include "Component.h"
#include "BezierEnd.h"

class AirSource;

/**
 * air sink class
 */
class AirSink: public BezierEnd
{
private:

	///component for this airsink
	Component* mComponent=nullptr;

	///air source for the sink
	AirSource* mSource;

public:

	///constructor
	AirSink(){}

	/// Copy constructor (disabled)
	AirSink(const AirSink &) = delete;

	/// Assignment operator
	void operator=(const AirSink &) = delete;

	/**
	 * sends the pressure
	 * @param pressure
	 */
	void SendPressure(double pressure);

	/**
	 * setter for component
	 * @param comp
	 */
	void SetComponent(Component* comp){mComponent=comp;}

	/**
	 * getter for component
	 * @return
	 */
	Component* GetComponent(){return mComponent;}

	/**
	 * setter for source
	 * @param source
	 */
	void SetSource(AirSource* source){mSource=source;}

	/**
	 * getter for source
	 * @return
	 */
	AirSource* GetSource(){return mSource;}
};

#endif //CANADIANEXPERIENCE_MACHINELIB_AIRSINK_H