Source: ./Nobel/BlockException.h


Annotated List
Files
Globals
Hierarchy
Index
#ifndef BLOCKEXCEPTION_H
#define BLOCKEXCEPTION_H

#include<exception>
#include<string>
#include"SelfTestingObject.h"
#include"Pose.h"
#include"Vector.h"
//#include"BlockExceptionRep.h"
// includoiminen saattaisi luoda riippuvuuden kenties ehkä ??

namespace Nobel {

   class BlockExceptionRep;
//Kaikkien omien poikkeusluokkien yliluokaksi tulee runtime_error
//standardikirjastosta. BlockException toteuttaa abstraktin SelfTestingObject-
//rajapinnan.

//Handle:
/**
* @short BlockException on poikkeusolio, jonka Movement-
* olio heittää yllättävän esteen ilmestyessä.
* @author Jarkko Salminen
* @see Nobel::Movement#Pose move(const Vector&, const Pose&)
*/
class BlockException : public std::runtime_error, public SelfTestingObject {
public:
/**
* Esittää poikkeuksen stringinä.
*
* @return Olion esitys stringinä.
*/
	virtual std::string getMessage() const;

/**
* Palauttaa robotin kulkematta jääneen matkan
*
* @return kulkematta jäänyt matka
*/
	virtual Vector getUnfinishedMovement() const;

/**
* Aksessori, joka palauttaa poikkeuksen aiheuttaneen
* esteen sijainnin.
*
* @return Esteen sijainti
*/
	virtual Vector getBlockLocation() const;

	//std::runtime_error-funktiot tähän

/**
* Konstruktori
*
* @param a liikkumatta jäänyt matka
* @param b esteen suhteellinen sijainti robottiin nähden
*/
	explicit BlockException(const Vector& a, const Vector& b);

/**
* Kopiokonstruktori
*/
	BlockException(const BlockException&);

/**
* Swap
*/
	virtual void swap(BlockException&);

/**
* Sijoitus
*/
	BlockException& operator=(const BlockException&);

/**
* Destruktori
*/
	virtual ~BlockException();

/**
* Testaa olion tilan oikeellisuuden.
*
* @see Nobel::SelfTestingObject
*
* @return Palauttaa true, jos olion attribuutit
* ovat eheässä tilassa. Muuten false.
*/
	virtual bool invariant() const;
private:
	BlockExceptionRep* rep;
};
}
#endif

Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50.