|
|
#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 NobelNS { 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; /** Palauta robotin uusi suhteellinen pose. * @return uusi suhteellinen pose */ virtual Pose getRelativePose() const; //std::runtime_error-funktiot tähän /** * Konstruktori * * @param a liikkumatta jäänyt matka * @param b esteen suhteellinen sijainti robottiin nähden * @param c robotin uusi suhteellinen pose */ explicit BlockException(const Vector& a, const Vector& b, const Pose& c); /** * 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 Tue Mar 20 23:14:05 2001, using kdoc 2.0a53. |