+#include <string>
+#include <vector>
+
+#include "tape_block.hh"
+#include "discard_block.hh"
+
+
+using namespace std;
+
+/***************************************************************/
+/*!
+ *\brief Copy constructor.
+ */
+discard_block::discard_block(discard_block & org){
+ operator=(org);
+}
+
+/***************************************************************/
+/*!
+ *\brief Get a cleartext description of the block.
+ *\return ldc style descriptive line for the block
+ */
+vector<string> discard_block::get_description(){
+ string r_string;
+ switch(init_state){
+ case TBS_OK:
+ r_string="***** (X-XX) Discard block, init_status OK,\
+ this is an illegal condition!";
+ break;
+ case TBS_EOF_LEGAL:
+ r_string=" (EOF) Legal EOF";
+ break;
+ case TBS_EOF_ILLEGAL:
+ r_string=" (EOF) Illegal EOF while in block!";
+ break;
+ case TBS_CHECKSUM:
+ r_string=" (CHK) Checksum error in Block!";
+ break;
+ case TBS_IOERR:
+ r_string=" (IOE) IO-Error during initialisation!";
+ break;
+ case TBS_DEFAULT:
+ r_string="***** (X-XX) Discard block, init_status not set,\
+ this is an illegal condition!";
+ break;
+ default:
+ r_string="***** (X-XX) Discard block, init_status unknown,\
+ this is an illegal condition!";
+ break;
+ }
+ vector<string> result;
+ result.insert(result.end(),r_string);
+ return result;
+}
+
+/***************************************************************/
+/*!
+ *\brief Specialisation constructor
+ */
+discard_block::discard_block(tape_block & org)
+ : tape_block(org)
+{
+}
+
+/***************************************************************/
+/*!
+ *\brief Default constructor.
+ */
+discard_block::discard_block(){}