/*============================================================================= Library: CTK Copyright (c) 2010 German Cancer Research Center, Division of Medical and Biological Informatics Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =============================================================================*/ #ifndef CTKLOGREADERSERVICE_H #define CTKLOGREADERSERVICE_H #include #include "ctkLogEntry.h" /** * \ingroup LogService * * Provides methods to retrieve ctkLogEntry objects from the log. *

* There are three ways to retrieve ctkLogEntry objects: *

* * @remarks This class is thread safe. * @see ctkLogEntry * @see ctkLogListener * @see ctkLogListener#logged(ctkLogEntryPtr) */ struct ctkLogReaderService { virtual ~ctkLogReaderService() {} /** * Subscribes to ctkLogEntry objects. * *

* This method connects a Qt slot with the Log Reader * Service. The slot must take a ctkLogEntryPtr as the * only argument and will be * called for each ctkLogEntry object placed into the log. * *

* When a plugin which connects a Qt slot is stopped, the Log Reader * Service must disconnect all of the plugin's connected slots. * *

* If the same slot from the same object is already connected, this * method does nothing. * * @param receiver The object to connect to. * @param slot The name of the slot to be connected. * @returns true if the connection was successfull; * false otherwise. * @see ctkLogListener * @see ctkLogEntry * @see ctkLogListener#logged(ctkLogEntryPtr) */ virtual bool connectLogListener(const QObject* receiver, const char* slot) = 0; /** * Returns a QList of all ctkLogEntry objects in * the log. * *

* Each element of the QList is a ctkLogEntry object, ordered * with the most recent entry first. Whether the list is of all * ctkLogEntry objects since the Log Service was started or some * recent past is implementation-specific. Also implementation-specific is * whether informational and debug ctkLogEntry objects are included * in the list. * @return A QList of all ctkLogEntry objects in * the log. */ virtual QList getLog() = 0; }; Q_DECLARE_INTERFACE(ctkLogReaderService, "org.commontk.service.log.LogReaderService") #endif // CTKLOGREADERSERVICE_H