Source: ./Nobel/BlockException.h
|
|
|
|
#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. |