/** * @module cdatset * @author Guenther Neuwirth (0626638), Manuel Mausz (0728348) * @brief Datatype template and datatype definition for CCPU and CMem * @date 26.05.2009 */ #ifndef CDATSET_H #define CDATSET_H 1 #include #include "cdat.h" /** * @class CDatSet * * Datatype template for CCPU and CMem. */ class CDatSet : public CDat, public boost::operators { public: /** * @method CDatSet * @brief Default ctor * @param - * @return - * @globalvars none * @exception bad_alloc * @pre none * @post none */ CDatSet() {} /** * @method CDatSet * @brief Copy constructor for int * @param newval new value for CDatSet * @return - * @globalvars none * @exception none * @pre none * @post none */ CDatSet(const int newval) : CDat(newval) {} /** * @method operator>> * @brief Shift/read operator for inputstream * @param stream reference to inputstream * @param cdat reference to object which will be read from stream * @return reference to inputstream * @globalvars none * @exception none * @pre stream != null * @post cdat.m_value = count of char 'o' */ friend std::istream& operator>>(std::istream & stream, CDatSet& cdat) { unsigned count = 0; while(stream.good() && !stream.eof()) { int val = stream.get(); if (val != 'o') break; ++count; } stream.clear(); cdat.m_value = count; return stream; } }; #endif /* vim: set et sw=2 ts=2: */