summaryrefslogtreecommitdiff
path: root/indra/newview/lleventnotifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lleventnotifier.cpp')
-rw-r--r--indra/newview/lleventnotifier.cpp118
1 files changed, 63 insertions, 55 deletions
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index 16897e9ebd..66a922e288 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -166,28 +166,19 @@ bool LLEventNotifier::handleResponse(U32 eventId, const LLSD& notification, cons
return true;
}
-bool LLEventNotifier::add(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName)
+bool LLEventNotifier::add(LLEventInfo event)
{
- LLEventNotification *new_enp = new LLEventNotification(eventId, eventEpoch, eventDateStr, eventName);
-
- LL_INFOS() << "Add event " << eventName << " id " << eventId << " date " << eventDateStr << LL_ENDL;
- if(!new_enp->isValid())
- {
- delete new_enp;
+ if (mEventInfoSignal(event))
return false;
- }
-
- mEventNotifications[new_enp->getEventID()] = new_enp;
- return true;
+ return add(event.mID, event.mUnixTime, event.mTimeStr, event.mName);
}
-bool LLEventNotifier::add(const LLEventStruct& event)
+bool LLEventNotifier::add(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName)
{
- if (mNewEventSignal(event)) return false;
- LLEventNotification *new_enp = new LLEventNotification(event.eventId, event.eventEpoch, event.eventDateStr, event.eventName);
+ LLEventNotification *new_enp = new LLEventNotification(eventId, eventEpoch, eventDateStr, eventName);
- LL_INFOS() << "Add event " << event.eventName << " id " << event.eventId << " date " << event.eventDateStr << LL_ENDL;
+ LL_INFOS() << "Add event " << eventName << " id " << eventId << " date " << eventDateStr << LL_ENDL;
if(!new_enp->isValid())
{
delete new_enp;
@@ -215,34 +206,9 @@ void LLEventNotifier::add(U32 eventId)
//static
void LLEventNotifier::processEventInfoReply(LLMessageSystem *msg, void **)
{
- // extract the agent id
- LLUUID agent_id;
- U32 event_id;
- std::string event_name;
- std::string eventd_date;
- U32 event_time_utc;
-
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id );
- msg->getU32("EventData", "EventID", event_id);
- msg->getString("EventData", "Name", event_name);
- msg->getString("EventData", "Date", eventd_date);
- msg->getU32("EventData", "DateUTC", event_time_utc);
-
- //gEventNotifier.add(event_id, (F64)event_time_utc, eventd_date, event_name);
-
- LLEventStruct event(event_id, (F64)event_time_utc, eventd_date, event_name);
- msg->getString("EventData", "Creator", event.creator);
- msg->getString("EventData", "Category", event.category);
- msg->getString("EventData", "Desc", event.desc);
- msg->getU32("EventData", "Duration", event.duration);
- msg->getU32("EventData", "Cover", event.cover);
- msg->getU32("EventData", "Amount", event.amount);
- msg->getString("EventData", "SimName", event.simName);
- msg->getVector3d("EventData", "GlobalPos", event.globalPos);
- msg->getU32("EventData", "EventFlags", event.flags);
-
- gEventNotifier.add(event);
-
+ LLEventInfo info;
+ info.unpack(msg);
+ gEventNotifier.add(info);
}
@@ -280,15 +246,11 @@ void LLEventNotifier::load(const LLSD& event_options)
substitution["datetime"] = date;
LLStringUtil::format(dateStr, substitution);
- //add(response["event_id"].asInteger(), response["event_date_ut"], dateStr, response["event_name"].asString());
- LLEventStruct event(response["event_id"].asInteger(), response["event_date_ut"], dateStr, response["event_name"].asString());
- add(event);
+ add(response["event_id"].asInteger(), response["event_date_ut"], dateStr, response["event_name"].asString());
}
else
{
- //add(response["event_id"].asInteger(), response["event_date_ut"], response["event_date"].asString(), response["event_name"].asString());
- LLEventStruct event(response["event_id"].asInteger(), response["event_date_ut"], response["event_date"].asString(), response["event_name"].asString());
- add(event);
+ add(response["event_id"].asInteger(), response["event_date_ut"], response["event_date"].asString(), response["event_name"].asString());
}
}
}
@@ -322,21 +284,67 @@ void LLEventNotifier::remove(const U32 event_id)
void LLEventNotifier::serverPushRequest(U32 event_id, bool add)
{
// Push up a message to tell the server we have this notification.
- gMessageSystem->newMessageFast(add ? _PREHASH_EventNotificationAddRequest : _PREHASH_EventNotificationRemoveRequest);
+ gMessageSystem->newMessage(add?"EventNotificationAddRequest":"EventNotificationRemoveRequest");
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- gMessageSystem->nextBlockFast(_PREHASH_EventData);
- gMessageSystem->addU32Fast(_PREHASH_EventID, event_id);
+ gMessageSystem->nextBlock("EventData");
+ gMessageSystem->addU32("EventID", event_id);
gAgent.sendReliableMessage();
}
+void LLEventInfo::unpack(LLMessageSystem* msg)
+{
+ U32 event_id;
+ msg->getU32("EventData", "EventID", event_id);
+ mID = event_id;
+
+ msg->getString("EventData", "Name", mName);
+
+ msg->getString("EventData", "Category", mCategoryStr);
+
+ msg->getString("EventData", "Date", mTimeStr);
+
+ U32 duration;
+ msg->getU32("EventData", "Duration", duration);
+ mDuration = duration;
+
+ U32 date;
+ msg->getU32("EventData", "DateUTC", date);
+ mUnixTime = date;
+
+ msg->getString("EventData", "Desc", mDesc);
+
+ std::string buffer;
+ msg->getString("EventData", "Creator", buffer);
+ mRunByID = LLUUID(buffer);
+
+ U32 foo;
+ msg->getU32("EventData", "Cover", foo);
+
+ mHasCover = foo ? true : false;
+ if (mHasCover)
+ {
+ U32 cover;
+ msg->getU32("EventData", "Amount", cover);
+ mCover = cover;
+ }
+
+ msg->getString("EventData", "SimName", mSimName);
+
+ msg->getVector3d("EventData", "GlobalPos", mPosGlobal);
+
+ // Mature content
+ U32 event_flags;
+ msg->getU32("EventData", "EventFlags", event_flags);
+ mEventFlags = event_flags;
+}
-LLEventNotification::LLEventNotification(U32 eventId, F64 eventEpoch, std::string eventDateStr, std::string eventName) :
+LLEventNotification::LLEventNotification(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName) :
mEventID(eventId),
- mEventName(std::move(eventName)),
+ mEventName(eventName),
mEventDateEpoch(eventEpoch),
- mEventDateStr(std::move(eventDateStr))
+ mEventDateStr(eventDateStr)
{
}