text: //--------------------------------------------------------------------------
  // Code generated by the SmartSoft MDSD Toolchain
  // The SmartSoft Toolchain has been developed by:
  //  
  // Service Robotics Research Center
  // University of Applied Sciences Ulm
  // Prittwitzstr. 10
  // 89075 Ulm (Germany)
  //
  // Information about the SmartSoft MDSD Toolchain is available at:
  // www.servicerobotik-ulm.de
  //
  // Please do not modify this file. It will be re-generated
  // running the code generator.
  //--------------------------------------------------------------------------
  #ifndef COMMMANIPULATOROBJECTS_COMMINVERSEKINEMATICSRESPONSE_CORE_H_
  #define COMMMANIPULATOROBJECTS_COMMINVERSEKINEMATICSRESPONSE_CORE_H_
  
  #include "CommManipulatorObjects/CommInverseKinematicsResponseData.hh"
  
  #include <iostream>
  #include <string>
  #include <list>
  
  namespace CommManipulatorObjects {
  	
  class CommInverseKinematicsResponseCore {
  protected:
  	// data structure
  	CommManipulatorObjectsIDL::CommInverseKinematicsResponse idl_CommInverseKinematicsResponse;
  	
  public:
  	// give a publicly accessible type-name for the template parameter IDL
  	typedef CommManipulatorObjectsIDL::CommInverseKinematicsResponse DATATYPE;
  	
  	#ifdef ENABLE_HASH
  		static size_t generateDataHash(const DATATYPE &);
  	#endif
  	
  	static const char* getCompiledHash();
  	static void getAllHashValues(std::list<std::string> &hashes);
  	static void checkAllHashValues(std::list<std::string> &hashes);
  	
  	// default constructors
  	CommInverseKinematicsResponseCore();
  	CommInverseKinematicsResponseCore(const DATATYPE &data);
  	// default destructor
  	virtual ~CommInverseKinematicsResponseCore();
  	
  	const DATATYPE& get() const { return idl_CommInverseKinematicsResponse; }
  	operator const DATATYPE&() const { return idl_CommInverseKinematicsResponse; }
  	DATATYPE& set() { return idl_CommInverseKinematicsResponse; }
  
  	static inline std::string identifier(void) { return "CommManipulatorObjects::CommInverseKinematicsResponse"; }
  	
  	// helper method to easily implement output stream in derived classes
  	void to_ostream(std::ostream &os = std::cout) const;
  	
  	// convert to xml stream
  	void to_xml(std::ostream &os, const std::string &indent = "") const;
  	
  	// restore from xml stream
  	void from_xml(std::istream &is);
  	
  	// User Interface
  	
  	// getter and setter for element Joint_angles
  	/**
  	 * Getter methods for idl_CommInverseKinematicsResponse.joint_angles of type vector<float>
  	 */
  	inline std::vector<float>& getJoint_anglesRef() { return idl_CommInverseKinematicsResponse.joint_angles; }
  	inline std::vector<float> getJoint_anglesCopy() const {
  		return std::vector<float>(idl_CommInverseKinematicsResponse.joint_angles.begin(), idl_CommInverseKinematicsResponse.joint_angles.end());
  	}
  	inline float getJoint_anglesElemAtPos(const size_t &pos) const { return idl_CommInverseKinematicsResponse.joint_angles[pos]; }
  	inline size_t getJoint_anglesSize() const { return idl_CommInverseKinematicsResponse.joint_angles.size(); }
  	inline bool isJoint_anglesEmpty() const { return idl_CommInverseKinematicsResponse.joint_angles.empty(); }
  	/**
  	 * Setter methods for idl_CommInverseKinematicsResponse.joint_angles of type vector<float>
  	 */
  	inline CommInverseKinematicsResponseCore& setJoint_angles(const std::vector<float> &joint_angles) { idl_CommInverseKinematicsResponse.joint_angles = joint_angles; return *this; }
  	inline bool setJoint_anglesElemAtPos(const size_t &pos, const float &elem) {
  		if(pos < idl_CommInverseKinematicsResponse.joint_angles.size()) {
  			idl_CommInverseKinematicsResponse.joint_angles[pos] = elem;
  			return true;
  		}
  		return false;
  	}
  	inline bool insertJoint_anglesVectorAtPos(const size_t &pos, const std::vector<float> &data) {
  		if(pos <= idl_CommInverseKinematicsResponse.joint_angles.size()) {
  			idl_CommInverseKinematicsResponse.joint_angles.insert(idl_CommInverseKinematicsResponse.joint_angles.begin()+pos, data.begin(), data.end());
  			return true;
  		}
  		return false;
  	}
  	inline void resizeJoint_angles(const size_t &size) { idl_CommInverseKinematicsResponse.joint_angles.resize(size); }
  	inline bool eraseJoint_anglesElemsAtPos(const size_t &pos, const size_t &nbr_elems) {
  		if( (pos+nbr_elems) <= idl_CommInverseKinematicsResponse.joint_angles.size() ) {
  			idl_CommInverseKinematicsResponse.joint_angles.erase(idl_CommInverseKinematicsResponse.joint_angles.begin()+pos, idl_CommInverseKinematicsResponse.joint_angles.begin()+pos+nbr_elems);
  			return true;
  		}
  		return false;
  	}
  	inline void clearJoint_angles() { idl_CommInverseKinematicsResponse.joint_angles.clear(); }
  	
  	// getter and setter for element Is_valid
  	inline bool getIs_valid() const { return idl_CommInverseKinematicsResponse.is_valid; }
  	inline CommInverseKinematicsResponseCore& setIs_valid(const bool &is_valid) { idl_CommInverseKinematicsResponse.is_valid = is_valid; return *this; }
  };
  
  } /* namespace CommManipulatorObjects */
  #endif /* COMMMANIPULATOROBJECTS_COMMINVERSEKINEMATICSRESPONSE_CORE_H_ */
  