summaryrefslogtreecommitdiffstats
path: root/kpilot/lib/pilotRecord.cc
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch)
tree67208f7c145782a7e90b123b982ca78d88cc2c87 /kpilot/lib/pilotRecord.cc
downloadtdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz
tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kpilot/lib/pilotRecord.cc')
-rw-r--r--kpilot/lib/pilotRecord.cc132
1 files changed, 132 insertions, 0 deletions
diff --git a/kpilot/lib/pilotRecord.cc b/kpilot/lib/pilotRecord.cc
new file mode 100644
index 000000000..44ae4f7be
--- /dev/null
+++ b/kpilot/lib/pilotRecord.cc
@@ -0,0 +1,132 @@
+/* KPilot
+**
+** Copyright (C) 1998-2001 by Dan Pilone
+** Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
+**
+** This is a wrapper for pilot-link's general
+** Pilot database structures. These records are
+*** just collections of bits. See PilotAppCategory
+** for interpreting the bits in a meaningful way.
+**
+** As a crufty hack, the non-inline parts of
+** PilotAppCategory live in this file as well.
+*/
+
+/*
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU Lesser General Public License as published by
+** the Free Software Foundation; either version 2.1 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU Lesser General Public License for more details.
+**
+** You should have received a copy of the GNU Lesser General Public License
+** along with this program in a file called COPYING; if not, write to
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+** MA 02110-1301, USA.
+*/
+
+/*
+** Bug reports and questions can be sent to kde-pim@kde.org
+*/
+#include "options.h"
+
+#include <string.h>
+
+#include <qregexp.h>
+
+#include <kglobal.h>
+#include <kcharsets.h>
+
+#include "pilot.h"
+#include "pilotRecord.h"
+
+
+
+/* virtual */ QString PilotRecordBase::textRepresentation() const
+{
+ return CSL1("[ %1,%2,%3 ]") . arg(attributes(),category(),id());
+}
+
+/* virtual */ QString PilotRecord::textRepresentation() const
+{
+ return CSL1("[ %1,%2 ]")
+ .arg(PilotRecordBase::textRepresentation())
+ .arg(size());
+}
+
+
+
+/* static */ int PilotRecord::fAllocated = 0;
+/* static */ int PilotRecord::fDeleted = 0;
+
+/* static */ void PilotRecord::allocationInfo()
+{
+ FUNCTIONSETUP;
+ DEBUGKPILOT << fname
+ << ": Allocated " << fAllocated
+ << " Deleted " << fDeleted << endl;
+}
+
+PilotRecord::PilotRecord(void *data, int len, int attrib, int cat, recordid_t uid) :
+ PilotRecordBase(attrib,cat,uid),
+ fData(0L),
+ fLen(len),
+ fBuffer(0L)
+{
+ FUNCTIONSETUPL(4);
+ fData = new char[len];
+
+ memcpy(fData, data, len);
+
+ fAllocated++;
+}
+
+PilotRecord::PilotRecord(PilotRecord * orig) :
+ PilotRecordBase( orig->attributes(), orig->category(), orig->id() ) ,
+ fBuffer(0L)
+{
+ FUNCTIONSETUPL(4);
+ fData = new char[orig->size()];
+
+ memcpy(fData, orig->data(), orig->size());
+ fLen = orig->size();
+ fAllocated++;
+}
+
+PilotRecord & PilotRecord::operator = (PilotRecord & orig)
+{
+ FUNCTIONSETUP;
+ if (fBuffer)
+ {
+ pi_buffer_free(fBuffer);
+ fBuffer=0L;
+ fData=0L;
+ }
+
+ if (fData)
+ delete[]fData;
+ fData = new char[orig.size()];
+
+ memcpy(fData, orig.data(), orig.size());
+ fLen = orig.size();
+ setAttributes( orig.attributes() );
+ setCategory( orig.category() );
+ setID( orig.id() );
+ return *this;
+}
+
+void PilotRecord::setData(const char *data, int len)
+{
+ FUNCTIONSETUP;
+ if (fData)
+ delete[]fData;
+ fData = new char[len];
+
+ memcpy(fData, data, len);
+ fLen = len;
+}
+