1/*
2 This file is part of the kcal library.
3
4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.
20*/
21
22//
23// DummyScheduler - iMIP implementation of iTIP methods
24//
25
26#include "dummyscheduler.h"
27#include "event.h"
28#include "icalformat.h"
29
30#include <kdebug.h>
31#include <kstandarddirs.h>
32
33#include <QtCore/QFile>
34#include <QtCore/QTextStream>
35
36using namespace KCal;
37
38DummyScheduler::DummyScheduler( Calendar *calendar )
39 : Scheduler( calendar )
40{
41}
42
43DummyScheduler::~DummyScheduler()
44{
45}
46
47bool DummyScheduler::publish( IncidenceBase *incidence, const QString &recipients )
48{
49 Q_UNUSED( recipients );
50 QString messageText = mFormat->createScheduleMessage( incidence, iTIPPublish );
51
52 return saveMessage( messageText );
53}
54
55bool DummyScheduler::performTransaction( IncidenceBase *incidence,
56 iTIPMethod method,
57 const QString &recipients )
58{
59 Q_UNUSED( recipients );
60 QString messageText = mFormat->createScheduleMessage( incidence, method );
61
62 return saveMessage( messageText );
63}
64
65bool DummyScheduler::performTransaction( IncidenceBase *incidence, iTIPMethod method )
66{
67 QString messageText = mFormat->createScheduleMessage( incidence, method );
68
69 return saveMessage( messageText );
70}
71
72bool DummyScheduler::saveMessage( const QString &message )
73{
74 QFile f( "dummyscheduler.store" );
75 if ( f.open( QIODevice::WriteOnly | QIODevice::Append ) ) {
76 QTextStream t( &f );
77 t << message << endl;
78 f.close();
79 return true;
80 } else {
81 return false;
82 }
83}
84
85QList<ScheduleMessage*> DummyScheduler::retrieveTransactions()
86{
87 QList<ScheduleMessage*> messageList;
88
89 QFile f( "dummyscheduler.store" );
90 if ( !f.open( QIODevice::ReadOnly ) ) {
91 kDebug() << "Can't open file";
92 } else {
93 QTextStream t( &f );
94 QString messageString;
95 QString messageLine = t.readLine();
96 while ( !messageLine.isNull() ) {
97 messageString += messageLine + '\n';
98 if ( messageLine.indexOf( "END:VCALENDAR" ) >= 0 ) {
99 kDebug() << "---------------" << messageString;
100 ScheduleMessage *message = mFormat->parseScheduleMessage( mCalendar,
101 messageString );
102 kDebug() << "--Parsed";
103 if ( message ) {
104 messageList.append( message );
105 } else {
106 QString errorMessage;
107 if ( mFormat->exception() ) {
108 errorMessage = mFormat->exception()->message();
109 }
110 kDebug() << "Error parsing message:" << errorMessage;
111 }
112 messageString = "";
113 }
114 messageLine = t.readLine();
115 }
116 f.close();
117 }
118
119 return messageList;
120}
121
122QString DummyScheduler::freeBusyDir()
123{
124 // the dummy scheduler should never handle freebusy stuff - so it's hardcoded
125 return QString( "" );
126}
127