31 #include "exceptions/WDHNoSuchSubject.h"
33 #include "../common/WLogger.h"
34 #include "../common/WStringUtils.h"
36 #include "WDataHandler.h"
56 + subject->getName() +
"\".",
57 "Data Handler", LL_DEBUG );
69 + subject->getName() +
"\".",
70 "Data Handler", LL_DEBUG );
73 for( SubjectContainerType::iterator iter = l->get().begin(); iter != l->get().end();
76 if( ( *iter ) == subject )
78 l->get().erase( iter );
90 for( SubjectContainerType::const_iterator iter = l->get().begin(); iter != l->get().end();
95 "Data Handler", LL_DEBUG );
113 boost::shared_ptr< WSubject > result;
116 if( subjectID < l->
get().size() )
118 result = l->get().at( subjectID );
122 result = boost::shared_ptr< WSubject >();
125 catch(
const std::out_of_range& e )
145 return getDataHandler()->getSubjectByID( WSubject::SUBJECT_UNKNOWN );
boost::shared_ptr< WSharedObjectTicketWrite< SubjectContainerType > > WriteTicket
Type for write tickets.
void push_back(const typename S::value_type &x)
Adds a new element at the end of the container.
Should be thrown when an invalid index is used to get a WSubject from the WDataHandler.
Container for all WDataSets belonging to one subject or patient.
virtual ~WDataHandler()
Destructor.
static WLogger * getLogger()
Returns pointer to the currently running logger instance.
SubjectSharedContainerType::ReadTicket getSubjects() const
Returns read-access to the list of subjects.
void addLogMessage(std::string message, std::string source="", LogLevel level=LL_DEBUG)
Appends a log message to the logging queue.
ReadTicket getReadTicket() const
Returns a ticket to get read access to the contained data.
WriteTicket getWriteTicket(bool suppressNotify=false) const
Returns a ticket to get write access to the contained data.
void removeSubject(boost::shared_ptr< WSubject > subject)
Removes the specified subject if it is in the set.
SubjectSharedContainerType m_subjects
A container for all WSubjects.
WDataHandler()
Empty standard constructor.
std::string toString(const T &value)
Convert a given value to a string.
static boost::shared_ptr< WSubject > getDefaultSubject()
Gets the subject with the ID SUBJECT_UNKNOWN.
void clear()
Remove all subjects.
void addSubject(boost::shared_ptr< WSubject > subject)
Insert a new subject referenced by a pointer.
static boost::shared_ptr< WDataHandler > getDataHandler()
As WDataHandler is a singleton -> return instance.
boost::shared_ptr< WSubject > getSubjectByID(size_t subjectID)
Returns the subject which corresponds to the specified ID.
boost::shared_ptr< WSharedObjectTicketRead< SubjectContainerType > > ReadTicket
Type for read tickets.
static boost::shared_ptr< WDataHandler > m_instance
Singleton instance of WDataHandler.