• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepimlibs API Reference
  • KDE Home
  • Contact Us
 

KCalCore Library

  • sources
  • kde-4.12
  • kdepimlibs
  • kcalcore
calformat.cpp
Go to the documentation of this file.
1 /*
2  This file is part of the kcalcore 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 */
32 #include <config-kcalcore.h>
33 #include "calformat.h"
34 #include "exceptions.h"
35 
36 #if defined(HAVE_UUID_UUID_H)
37 #include <uuid/uuid.h>
38 #else
39 #include <KRandom>
40 #include <QtCore/QDateTime>
41 #endif
42 
43 using namespace KCalCore;
44 
49 //@cond PRIVATE
50 class KCalCore::CalFormat::Private
51 {
52 public:
53  Private() : mException(0) {}
54  ~Private() {
55  delete mException;
56  }
57  static QString mApplication; // Name of application, for creating unique ID strings
58  static QString mProductId; // PRODID string to write to calendar files
59  QString mLoadedProductId; // PRODID string loaded from calendar file
60  Exception *mException;
61 };
62 
63 QString CalFormat::Private::mApplication = QLatin1String("libkcal");
64 QString CalFormat::Private::mProductId =
65  QLatin1String("-//K Desktop Environment//NONSGML libkcal 4.3//EN");
66 //@endcond
67 
68 CalFormat::CalFormat()
69  : d(new KCalCore::CalFormat::Private)
70 {
71 }
72 
73 CalFormat::~CalFormat()
74 {
75  clearException();
76  delete d;
77 }
78 
79 void CalFormat::clearException()
80 {
81  delete d->mException;
82  d->mException = 0;
83 }
84 
85 void CalFormat::setException(Exception *exception)
86 {
87  delete d->mException;
88  d->mException = exception;
89 }
90 
91 Exception *CalFormat::exception() const
92 {
93  return d->mException;
94 }
95 
96 void CalFormat::setApplication(const QString &application,
97  const QString &productID)
98 {
99  Private::mApplication = application;
100  Private::mProductId = productID;
101 }
102 
103 const QString &CalFormat::application()
104 {
105  return Private::mApplication;
106 }
107 
108 const QString &CalFormat::productId()
109 {
110  return Private::mProductId;
111 }
112 
113 QString CalFormat::loadedProductId()
114 {
115  return d->mLoadedProductId;
116 }
117 
118 void CalFormat::setLoadedProductId(const QString &id)
119 {
120  d->mLoadedProductId = id;
121 }
122 
123 QString CalFormat::createUniqueId()
124 {
125 #if defined(HAVE_UUID_UUID_H)
126  uuid_t uuid;
127  char suuid[64];
128 
129  uuid_generate_random(uuid);
130  uuid_unparse(uuid, suuid);
131  return QString::fromLatin1(suuid);
132 #else
133  int hashTime = QTime::currentTime().hour() +
134  QTime::currentTime().minute() + QTime::currentTime().second() +
135  QTime::currentTime().msec();
136  QString uidStr = QString("%1-%2.%3").
137  arg(Private::mApplication).
138  arg(KRandom::random()).
139  arg(hashTime);
140  return uidStr;
141 #endif
142 }
143 
144 void CalFormat::virtual_hook(int id, void *data)
145 {
146  Q_UNUSED(id);
147  Q_UNUSED(data);
148  Q_ASSERT(false);
149 }
KCalCore::Exception
Exception base class, currently used as a fancy kind of error code and not as an C++ exception...
Definition: exceptions.h:50
KCalCore::CalFormat::productId
static const QString & productId()
Returns the our library's PRODID string to write into calendar files.
Definition: calformat.cpp:108
KCalCore::CalFormat::setException
void setException(Exception *error)
Sets an exception that is to be used by the functions of this class to report errors.
Definition: calformat.cpp:85
KCalCore::CalFormat::clearException
void clearException()
Clears the exception status.
Definition: calformat.cpp:79
KCalCore::CalFormat::CalFormat
CalFormat()
Constructs a new Calendar Format object.
Definition: calformat.cpp:68
KCalCore::CalFormat::virtual_hook
virtual void virtual_hook(int id, void *data)
Definition: calformat.cpp:144
KCalCore::CalFormat::setApplication
static void setApplication(const QString &application, const QString &productID)
Sets the application name for use in unique IDs and error messages, and product ID for incidence PROD...
Definition: calformat.cpp:96
KCalCore::CalFormat
An abstract base class that provides an interface to various calendar formats.
Definition: calformat.h:48
KCalCore::CalFormat::createUniqueId
static QString createUniqueId()
Creates a unique id string.
Definition: calformat.cpp:123
calformat.h
This file is part of the API for handling calendar data and defines the CalFormat abstract base class...
exceptions.h
This file is part of the API for handling calendar data and defines the Exception class...
KCalCore::CalFormat::loadedProductId
QString loadedProductId()
Returns the PRODID string loaded from calendar file.
Definition: calformat.cpp:113
KCalCore::CalFormat::setLoadedProductId
void setLoadedProductId(const QString &id)
Sets the PRODID string loaded from calendar file.
Definition: calformat.cpp:118
KCalCore::CalFormat::exception
Exception * exception() const
Returns an exception, if there is any, containing information about the last error that occurred...
Definition: calformat.cpp:91
KCalCore::CalFormat::~CalFormat
virtual ~CalFormat()
Destructor.
Definition: calformat.cpp:73
KCalCore::CalFormat::application
static const QString & application()
Returns the application name used in unique IDs and error messages.
Definition: calformat.cpp:103
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:59:57 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KCalCore Library

Skip menu "KCalCore Library"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepimlibs API Reference

Skip menu "kdepimlibs API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kldap
  • kmbox
  • kmime
  • kpimidentities
  • kpimtextedit
  • kresources
  • ktnef
  • kxmlrpcclient
  • microblog

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal