From 5281d5ec783cec1d5582117fa0212caf42c84edb Mon Sep 17 00:00:00 2001 From: Chris Frey Date: Thu, 19 Jan 2012 22:12:30 -0500 Subject: [PATCH] lib: implemented GetFieldHandles() for Message/PINMessage/SavedMessages --- src/r_message_base.cc | 45 ++++++++++++++++++++++++++++++++++++++++++++- src/record.h | 9 +++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/r_message_base.cc b/src/r_message_base.cc index 5f095efc..bb0bbcd5 100644 --- a/src/r_message_base.cc +++ b/src/r_message_base.cc @@ -320,7 +320,50 @@ void DoFillHandles(std::vector > &handles) // start fresh handles.clear(); - // FIXME +#undef CONTAINER_OBJECT_NAME +#define CONTAINER_OBJECT_NAME handles + +#undef RECORD_CLASS_NAME +#define RECORD_CLASS_NAME RecordT + + FHP(RecType, "Record Type Code"); + FHP(RecordId, "Unique Record ID"); + + FHD(From, "From", MBFC_FROM, true); + FHD(To, "To", MBFC_TO, true); + FHD(Cc, "CC", MBFC_CC, true); + FHD(Bcc, "BCC", MBFC_BCC, true); + FHD(Sender, "Sender", MBFC_SENDER, true); + FHD(ReplyTo, "Reply To", MBFC_REPLY_TO, true); + FHD(Subject, "Subject", MBFC_SUBJECT, true); + FHD(Body, "Body", MBFC_BODY, true); + FHD(Attachment, "Attachment", MBFC_ATTACHMENT, false); + + FHD(MessageRecordId, "Message Record ID", MBFC_RECORDID, false); + FHP(MessageReplyTo, "Message Reply To"); + FHP(MessageDateSent, "Date Sent"); + FHP(MessageDateReceived, "Date Received"); + + FHP(MessageTruncated, "Truncated"); + FHP(MessageRead, "Read"); + FHP(MessageReply, "Reply"); + FHP(MessageSaved, "Saved"); + FHP(MessageSavedDeleted, "Saved Deleted"); + + FHET(pt, PriorityType, Priority, "Priority"); + FHE_CONST(pt, LowPriority, "Low"); + FHE_CONST(pt, NormalPriority, "Normal"); + FHE_CONST(pt, HighPriority, "High"); + FHE_CONST(pt, UnknownPriority, "Unknown"); + + FHET(st, SensitivityType, Sensitivity, "Sensitivity"); + FHE_CONST(st, NormalSensitivity, "Normal"); + FHE_CONST(st, Personal, "Personal"); + FHE_CONST(st, Private, "Private"); + FHE_CONST(st, Confidential, "Confidential"); + FHE_CONST(st, UnknownSensitivity, "Unknown"); + + FHP(Unknowns, "Unknown Fields"); } std::string MessageBase::GetDescription() const diff --git a/src/record.h b/src/record.h index ddd9dd7b..46799921 100644 --- a/src/record.h +++ b/src/record.h @@ -1109,6 +1109,15 @@ void ForEachFieldValue(const RecordT &rec, const FieldValueHandlerBase &vh) CONTAINER_OBJECT_NAME.push_back( \ FieldHandle(new_var_name, \ FieldIdentity(#record_field_name, display))) +// same as FHE, but for when RECORD_CLASS_NAME is a template argument +#define FHET(new_var_name, record_field_type, record_field_name, display) \ + EnumField \ + *new_var_name = new \ + EnumField \ + (&RECORD_CLASS_NAME::record_field_name); \ + CONTAINER_OBJECT_NAME.push_back( \ + FieldHandle(new_var_name, \ + FieldIdentity(#record_field_name, display))) // add constant to enum created above #define FHE_CONST(var, name, display) \ var->AddConstant(#name, display, RECORD_CLASS_NAME::name) -- 2.11.4.GIT