summaryrefslogtreecommitdiffstats
path: root/lib/pilotRecord.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pilotRecord.cpp')
-rw-r--r--lib/pilotRecord.cpp132
1 files changed, 132 insertions, 0 deletions
diff --git a/lib/pilotRecord.cpp b/lib/pilotRecord.cpp
new file mode 100644
index 0000000..8d5940a
--- /dev/null
+++ b/lib/pilotRecord.cpp
@@ -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 <tqregexp.h>
+
+#include <tdeglobal.h>
+#include <kcharsets.h>
+
+#include "pilot.h"
+#include "pilotRecord.h"
+
+
+
+/* virtual */ TQString PilotRecordBase::textRepresentation() const
+{
+ return CSL1("[ %1,%2,%3 ]") . arg(attributes(),category(),id());
+}
+
+/* virtual */ TQString 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;
+}
+