Pass the current settings down to the parsers so they can behave accordingly (i.e...
authorJamie Thompson <jamie@.(none)>
Thu, 25 Aug 2011 01:46:25 +0000 (02:46 +0100)
committerJamie Thompson <jamie@.(none)>
Thu, 25 Aug 2011 01:46:25 +0000 (02:46 +0100)
17 files changed:
EventParsers/VMGEntities/Factory.h
EventParsers/VMGEntities/SMSEntity.cpp
EventParsers/VMGEntities/SMSEntity.h
EventParsers/VMGEntities/VBody.cpp
EventParsers/VMGEntities/VBody.h
EventParsers/VMGEntities/VCalendar.cpp
EventParsers/VMGEntities/VCalendar.h
EventParsers/VMGEntities/VCard.cpp
EventParsers/VMGEntities/VCard.h
EventParsers/VMGEntities/VEnvelope.cpp
EventParsers/VMGEntities/VEnvelope.h
EventParsers/VMGEntities/VMGFactory.cpp
EventParsers/VMGEntities/VMessage.cpp
EventParsers/VMGEntities/VMessage.h
EventParsers/VMGParser.cpp
EventTypes/PhoneCall.h
EventTypes/SMS.cpp

index f6ce10b..ecd60ae 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef EVENTPARSERS_VMGEntities_FACTORY_H
 #define EVENTPARSERS_VMGEntities_FACTORY_H
 
+class Settings;
+
 class QString;
 
 namespace EventParsers
@@ -34,7 +36,7 @@ namespace EventParsers
                        Factory() {};
 
                public:
-                       static iReader* Instantiate(QString& lineData, const SMSEntity* parent);
+                       static iReader* Instantiate(const Settings &settings, QString& lineData, const SMSEntity* parent);
                };
        }
 }
index 1a23c6c..b60a00d 100644 (file)
@@ -22,8 +22,8 @@
 
 using namespace EventParsers::VMGEntities;
 
-SMSEntity::SMSEntity(const SMSEntity* parent):
-       m_Parent(parent)
+SMSEntity::SMSEntity(const Settings &settings, const SMSEntity *parent):
+       m_Settings(settings), m_Parent(parent)
 {
 }
 
index 9ed198a..30fe6a8 100644 (file)
@@ -31,16 +31,18 @@ namespace EventParsers
                class SMSEntity
                {
                public:
-                       SMSEntity(const SMSEntity* parent);
                        virtual ~SMSEntity() {};
+                       SMSEntity(const Settings &settings, const SMSEntity* parent);
 
                protected:
                        const bool isAttachment() const;
 
                        const SMSEntity* m_Parent;
                        const SMSEntity* getParent() const { return m_Parent; };
+                       const Settings &CurrentSettings() const { return m_Settings; }
 
                        virtual const char* getTagName() const { return "VBODY"; }
+                       const Settings &m_Settings;
                };
        }
 }
index dba3fd7..346d97b 100644 (file)
@@ -30,8 +30,8 @@
 
 using namespace EventParsers::VMGEntities;
 
-VBody::VBody(const SMSEntity* parent) :
-       SMSEntity(parent)
+VBody::VBody(const Settings &settings, const SMSEntity *parent) :
+       SMSEntity(settings, parent)
 {
 }
 
@@ -97,7 +97,7 @@ bool VBody::Read(const QString &initialLine, QTextStream &stream, EventTypes::SM
                }
                else if(lineData.startsWith("BEGIN:"))
                {
-                       iReader* reader = Factory::Instantiate(lineData, this);
+                       iReader* reader = Factory::Instantiate(CurrentSettings(), lineData, this);
                        bool valid(NULL != reader && reader->Read(lineData, stream, event));
                        delete reader;
 
index 5a9bb6c..8eb84c0 100644 (file)
@@ -25,6 +25,8 @@
 #include "iReader.h"
 #include "iWriter.h"
 
+class Settings;
+
 class QString;
 
 namespace EventTypes { class SMS; }
@@ -36,7 +38,7 @@ namespace EventParsers
                class VBody : public SMSEntity, public iWriter, public iReader
                {
                public:
-                       VBody(const SMSEntity *parent);
+                       VBody(const Settings &settings, const SMSEntity *parent);
                        //VBody(QTextStream& stream);
                        ~VBody();
 
index 8b97dab..db7a1b0 100644 (file)
@@ -38,8 +38,8 @@
 
 using namespace EventParsers::VMGEntities;
 
-VCalendar::VCalendar(const SMSEntity* parent) :
-       SMSEntity(parent), m_Version(1.0)
+VCalendar::VCalendar(const Settings &settings, const SMSEntity* parent) :
+       SMSEntity(settings, parent), m_Version(1.0)
 {
 }
 
@@ -47,8 +47,8 @@ VCalendar::VCalendar(const SMSEntity* parent) :
 //{
 //}
 
-VCalendar::VCalendar(const SMSEntity* parent, float version) :
-       SMSEntity(parent), m_Version(version)
+VCalendar::VCalendar(const Settings &settings, const SMSEntity* parent, float version) :
+       SMSEntity(settings, parent), m_Version(version)
 {
 }
 
@@ -134,7 +134,7 @@ bool VCalendar::Read(const QString &initialLine, QTextStream &stream, EventTypes
                        }
                        else if(lineData.startsWith("BEGIN:"))
                        {
-                               iReader* reader = Factory::Instantiate(lineData, this);
+                               iReader* reader = Factory::Instantiate(CurrentSettings(), lineData, this);
                                bool valid(NULL != reader && reader->Read(lineData, stream, event));
                                delete reader;
 
index f64c72d..de6a323 100644 (file)
@@ -34,9 +34,9 @@ namespace EventParsers
                class VCalendar : public SMSEntity, public iWriter, public iReader
                {
                public:
-                       VCalendar (const SMSEntity *parent);
+                       VCalendar (const Settings &settings, const SMSEntity *parent);
                        //VCalendar (QTextStream& stream);
-                       VCalendar (const SMSEntity *parent, float version);
+                       VCalendar (const Settings &settings, const SMSEntity *parent, float version);
                        ~VCalendar ();
 
                        virtual bool Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event);
index b6d6b63..e5e0a7d 100644 (file)
@@ -38,8 +38,8 @@
 
 using namespace EventParsers::VMGEntities;
 
-VCard::VCard(const SMSEntity* parent) :
-       SMSEntity(parent), m_Version(2.1), m_Target(VCARD_LOCAL)
+VCard::VCard(const Settings &settings, const SMSEntity* parent) :
+       SMSEntity(settings, parent), m_Version(2.1), m_Target(VCARD_LOCAL)
 {
 }
 
@@ -47,8 +47,8 @@ VCard::VCard(const SMSEntity* parent) :
 //{
 //}
 
-VCard::VCard(const SMSEntity* parent, float version, eTarget target) :
-       SMSEntity(parent), m_Version(version), m_Target(target)
+VCard::VCard(const Settings &settings, const SMSEntity* parent, float version, eTarget target) :
+       SMSEntity(settings, parent), m_Version(version), m_Target(target)
 {
 }
 
@@ -164,7 +164,7 @@ bool VCard::Read(const QString &initialLine, QTextStream &stream, EventTypes::SM
                        }
                        else if(lineData.startsWith("BEGIN:"))
                        {
-                               iReader* reader = Factory::Instantiate(lineData, this);
+                               iReader* reader = Factory::Instantiate(CurrentSettings(), lineData, this);
                                bool valid(NULL != reader && reader->Read(lineData, stream, event));
                                delete reader;
 
index 29d3960..0386c97 100644 (file)
@@ -40,9 +40,9 @@ namespace EventParsers
                                VCARD_REMOTE
                        };
 
-                       VCard(const SMSEntity *parent);
+                       VCard(const Settings &settings, const SMSEntity *parent);
                        //VCard(QTextStream& stream);
-                       VCard(const SMSEntity *parent, float version, eTarget target);
+                       VCard(const Settings &settings, const SMSEntity *parent, float version, eTarget target);
                        ~VCard();
 
                        virtual bool Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event);
index 54b8f41..aa8c10c 100644 (file)
@@ -27,8 +27,8 @@
 
 using namespace EventParsers::VMGEntities;
 
-VEnvelope::VEnvelope(const SMSEntity* parent) :
-       SMSEntity(parent)
+VEnvelope::VEnvelope(const Settings &settings, const SMSEntity* parent) :
+       SMSEntity(settings, parent)
 {
 }
 
@@ -75,7 +75,7 @@ bool VEnvelope::Read(const QString &initialLine, QTextStream &stream, EventTypes
        {
                if(lineData.startsWith("BEGIN:"))
                {
-                       iReader* reader = Factory::Instantiate(lineData, this);
+                       iReader* reader = Factory::Instantiate(CurrentSettings(), lineData, this);
                        bool valid(NULL != reader && reader->Read(lineData, stream, event));
                        delete reader;
 
index d399a90..cff710f 100644 (file)
@@ -38,7 +38,7 @@ namespace EventParsers
                class VEnvelope : public SMSEntity, public iWriter, public iReader
                {
                public:
-                       VEnvelope(const SMSEntity* parent);
+                       VEnvelope(const Settings &settings, const SMSEntity* parent);
                        //VEnvelope(QTextStream& stream);
                        ~VEnvelope();
 
index 1959d89..849932b 100644 (file)
 
 using namespace EventParsers::VMGEntities;
 
-iReader *Factory::Instantiate(QString& lineData, const SMSEntity *parent)
+iReader *Factory::Instantiate(const Settings &settings, QString& lineData, const SMSEntity *parent)
 {
        if(lineData.startsWith("BEGIN:"))
        {
                QString item = lineData.mid(lineData.indexOf(":")+1);
 
                if(item == "VMSG")
-                       return new VMessage(parent);
+                       return new VMessage(settings, parent);
                else if(item == "VCARD")
-                       return new VCard(parent);
+                       return new VCard(settings, parent);
                else if(item == "VENV")
-                       return new VEnvelope(parent);
+                       return new VEnvelope(settings, parent);
                else if(item == "VBODY")
-                       return new VBody(parent);
+                       return new VBody(settings, parent);
                else if(item == "VCALENDAR")
-                       return new VCalendar(parent);
+                       return new VCalendar(settings, parent);
        }
 
        qDebug() << "Unrecognised entity '" << lineData <<"'";
index 59097d7..b798462 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "EventTypes/SMS.h"
 #include "Factory.h"
+#include "Settings.h"
 #include "VCard.h"
 #include "VEnvelope.h"
 #include "VBody.h"
@@ -31,8 +32,8 @@
 
 using namespace EventParsers::VMGEntities;
 
-VMessage::VMessage(const SMSEntity* parent) :
-       SMSEntity(parent), m_Version(1.1)
+VMessage::VMessage(const Settings &settings, const SMSEntity *parent) :
+       SMSEntity(settings, parent), m_Version(1.1)
 {
 }
 
@@ -40,8 +41,8 @@ VMessage::VMessage(const SMSEntity* parent) :
 //{
 //}
 
-VMessage::VMessage(const SMSEntity* parent, float version) :
-       SMSEntity(parent), m_Version(version)
+VMessage::VMessage(const Settings &settings, const SMSEntity *parent, float version) :
+       SMSEntity(settings, parent), m_Version(version)
 {
 }
 
@@ -105,7 +106,7 @@ bool VMessage::Read(const QString & initialLine, QTextStream & stream, EventType
                }
                else if(lineData.startsWith("BEGIN:"))
                {
-                       iReader* reader = Factory::Instantiate(lineData, this);
+                       iReader* reader = Factory::Instantiate(CurrentSettings(), lineData, this);
                        bool valid(NULL != reader && reader->Read(lineData, stream, event));
                        delete reader;
 
@@ -141,24 +142,24 @@ void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event)
        stream << "X-IRMC-BOX:" << ( event.Destination() == EventTypes::SMS::SENT ? "SENT" : "INBOX") << "\n";
        stream << "X-NOK-DT:" << event.Timestamp().toUTC().toString("yyyyMMddThhmmssZ") << "\n";
 
-       VEnvelope msgEnvelope(this);
+       VEnvelope msgEnvelope(CurrentSettings(), this);
 
        // Add in the empty vcard for outgoing messages
        if(event.Destination() == EventTypes::SMS::SENT)
        {
-               VCard(this, 2.1, VCard::VCARD_LOCAL).Write(stream, event);
+               VCard(CurrentSettings(), this, 2.1, VCard::VCARD_LOCAL).Write(stream, event);
 
-               msgEnvelope.getContentWriters().append(new VCard(&msgEnvelope, 2.1, VCard::VCARD_REMOTE));
+               msgEnvelope.getContentWriters().append(new VCard(CurrentSettings(), &msgEnvelope, 2.1, VCard::VCARD_REMOTE));
 
-               VEnvelope *bodyEnvelope = new VEnvelope(this);
-               bodyEnvelope->getContentWriters().append(new VBody(bodyEnvelope));
+               VEnvelope *bodyEnvelope = new VEnvelope(CurrentSettings(), this);
+               bodyEnvelope->getContentWriters().append(new VBody(CurrentSettings(), bodyEnvelope));
                msgEnvelope.getContentWriters().append(bodyEnvelope);
        }
        else
        {
-               VCard(this, 2.1, VCard::VCARD_REMOTE).Write(stream, event);
+               VCard(CurrentSettings(), this, 2.1, VCard::VCARD_REMOTE).Write(stream, event);
 
-               msgEnvelope.getContentWriters().append(new VBody(&msgEnvelope));
+               msgEnvelope.getContentWriters().append(new VBody(CurrentSettings(), &msgEnvelope));
        }
 
        msgEnvelope.Write(stream, event);
index 725b175..b302c5d 100644 (file)
@@ -23,6 +23,8 @@
 #include "iReader.h"
 #include "iWriter.h"
 
+class Settings;
+
 class QString;
 class QTextStream;
 
@@ -38,9 +40,9 @@ namespace EventParsers
                class VMessage : public SMSEntity, public iWriter, public iReader
                {
                public:
-                       VMessage(const SMSEntity* parent);
+                       VMessage(const Settings &settings, const SMSEntity* parent);
                        //VMessage(QTextStream& stream);
-                       VMessage(const SMSEntity* parent, float version);
+                       VMessage(const Settings &settings, const SMSEntity* parent, float version);
                        ~VMessage();
 
                        virtual bool Read(const QString & initialLine, QTextStream& stream, EventTypes::SMS & event);
index 5011ca4..0cfda71 100644 (file)
@@ -81,7 +81,7 @@ EventTypes::EventFromFileList VMGParser::ParseFile(QFile &eventFile, const QList
        // Parse the event
        EventTypes::SMS *event(new EventTypes::SMS(CurrentSettings()));
        QString lineData = eventStream.readLine();
-       EventParsers::VMGEntities::iReader* reader = EventParsers::VMGEntities::Factory::Instantiate(lineData, NULL);
+       EventParsers::VMGEntities::iReader* reader = EventParsers::VMGEntities::Factory::Instantiate(CurrentSettings(), lineData, NULL);
        bool valid(NULL != reader && reader->Read(QString(""), eventStream, *event));
        delete reader;
        if (!valid)
index f709713..c246258 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef EVENTTYPES_PHONECALL_H
 #define EVENTTYPES_PHONECALL_H
 
+#include "Settings.h"
+
 #include <QDateTime>
 #include <QDebug>
 #include <QList>
index b80b833..97ee9c5 100644 (file)
@@ -141,7 +141,7 @@ void SMS::Export(const QString &baseDirectory) const
                stream.setAutoDetectUnicode(false);
                stream.setCodec("UTF-16LE");
 
-               EventParsers::VMGEntities::VMessage writer(NULL, 1.1);
+               EventParsers::VMGEntities::VMessage writer(CurrentSettings(), NULL, 1.1);
                writer.Write(stream, *this);
 //stream << "Test";
                //stream.setCodec(oldCodec);