File indexing completed on 2024-04-21 15:43:00

0001 /*
0002  * This file is part of TelepathyLoggerQt
0003  *
0004  * Copyright (C) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
0005  *
0006  * This library is free software; you can redistribute it and/or modify
0007  * it under the terms of the GNU Lesser General Public License as published
0008  * by the Free Software Foundation; either version 2.1 of the License, or
0009  * (at your option) any later version.
0010  *
0011  * This program is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014  * GNU General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU Lesser General Public License
0017  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0018  */
0019 #ifndef _TelepathyLoggerQt_types_h_HEADER_GUARD_
0020 #define _TelepathyLoggerQt_types_h_HEADER_GUARD_
0021 
0022 #include <TelepathyQt/Types>
0023 #include <QtCore/QList>
0024 #include <QtCore/QDate>
0025 
0026 namespace Tpl
0027 {
0028 
0029 enum EntityType
0030 {
0031     //codegen: EntityTypeUnknown=ENTITY_UNKNOWN,EntityTypeContact=ENTITY_CONTACT,EntityTypeRoom=ENTITY_ROOM,EntityTypeSelf=ENTITY_SELF
0032     EntityTypeUnknown, /**< the current contact's type is unknown **/
0033     EntityTypeContact, /**< the the contact's type represents a user (buddy), but not
0034                          the account's owner for which EntityTypeSelf is used **/
0035     EntityTypeRoom,    /**< a named room **/
0036     EntityTypeSelf     /**< the contact's type represents the owner of the account
0037                          whose channel has been logged, as opposed to 
0038                          EntityTypeContact which represents any other user */
0039 };
0040 
0041 enum LogManagerError
0042 {
0043     LogManagerErrorAddEvent /**  Error returned when adding logs fails **/
0044 };
0045 
0046 /**
0047  * \brief Mask used to filter type of Tpl::Event returned.
0048  */
0049 enum EventTypeMask
0050 {
0051     //codegen: EventTypeMaskText=EVENT_MASK_TEXT,EventTypeMaskCall=EVENT_MASK_CALL,EventTypeMaskAny=EVENT_MASK_ANY
0052     EventTypeMaskText = 1 << 0, /**< Mask to Tpl::TextEvent **/
0053     EventTypeMaskCall = 1 << 1, /**< Mask to Tpl::CallEvent **/
0054     EventTypeMaskAny = 0xffff   /**< Special value to select all type of Tpl::Event **/
0055 };
0056 
0057 class CallEvent;
0058 class Entity;
0059 class Event;
0060 class LogManager;
0061 class LogWalker;
0062 class TextEvent;
0063 
0064 class Logger;
0065 class LogWalker;
0066 class PendingDates;
0067 class PendingEvents;
0068 class PendingEntities;
0069 class PendingOperation;
0070 class PendingSearch;
0071 struct SearchHit;
0072 
0073 typedef QSharedPointer<CallEvent> CallEventPtr;
0074 typedef QSharedPointer<Entity> EntityPtr;
0075 typedef QSharedPointer<Event> EventPtr;
0076 typedef LogManager* LogManagerPtr;
0077 typedef QSharedPointer<LogWalker> LogWalkerPtr;
0078 typedef QSharedPointer<TextEvent> TextEventPtr;
0079 
0080 typedef QSharedPointer<Logger> LoggerPtr;
0081 typedef QList<Tp::ContactPtr> ContactPtrList;
0082 typedef QList<EntityPtr> EntityPtrList;
0083 typedef QList<EventPtr> EventPtrList;
0084 typedef QList<QDate> QDateList;
0085 typedef QList<SearchHit> SearchHitList;
0086 
0087 typedef bool (*LogEventFilter)(const EventPtr &event, void *user_data);
0088 
0089 } //namespace
0090 
0091 struct _TplCallEvent;
0092 struct _TplEntity;
0093 struct _TplEvent;
0094 struct _TplLogManager;
0095 struct _TplLogWalker;
0096 struct _TplTextEvent;
0097 
0098 
0099 #include "global.h"
0100 
0101 #endif