[haiku-commits] r43159 - in haiku/trunk: headers/private src/servers/notification

  • From: pulkomandy@xxxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 3 Nov 2011 13:49:18 +0100 (CET)

Author: pulkomandy
Date: 2011-11-03 13:49:18 +0100 (Thu, 03 Nov 2011)
New Revision: 43159
Changeset: https://dev.haiku-os.org/changeset/43159

Added:
   haiku/trunk/headers/private/notification/
   haiku/trunk/src/servers/notification/AppUsage.cpp
   haiku/trunk/src/servers/notification/NotificationReceived.cpp
   haiku/trunk/src/servers/notification/Notifications.cpp
Modified:
   haiku/trunk/src/servers/notification/Jamfile
Log:
 * revert '43157 as the files are actually needed. I still don't understand how 
I managed to build everything without them ...
 * Move the files shared between server and preflet to the server folder.


Copied: haiku/trunk/src/servers/notification/AppUsage.cpp (from rev 43156, 
haiku/trunk/src/kits/notification/AppUsage.cpp)
===================================================================
--- haiku/trunk/src/servers/notification/AppUsage.cpp                           
(rev 0)
+++ haiku/trunk/src/servers/notification/AppUsage.cpp   2011-11-03 12:49:18 UTC 
(rev 43159)
@@ -0,0 +1,193 @@
+/*
+ * Copyright 2010, Haiku, Inc. All Rights Reserved.
+ * Copyright 2008-2009, Pier Luigi Fiorini. All Rights Reserved.
+ * Copyright 2004-2008, Michael Davidson. All Rights Reserved.
+ * Copyright 2004-2007, Mikael Eiman. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Michael Davidson, slaad@xxxxxxxxxxx
+ *             Mikael Eiman, mikael@xxxxxxxx
+ *             Pier Luigi Fiorini, pierluigi.fiorini@xxxxxxxxx
+ */
+
+#include <Message.h>
+
+#include <AppUsage.h>
+#include <NotificationReceived.h>
+
+const type_code kTypeCode = 'ipau';
+
+
+AppUsage::AppUsage()
+       :
+       fName(""),
+       fAllow(true)
+{
+}
+
+
+AppUsage::AppUsage(const char* name, bool allow)
+       :
+       fName(name),
+       fAllow(allow)
+{      
+}
+
+
+AppUsage::~AppUsage()
+{
+       notification_t::iterator nIt;
+       for (nIt = fNotifications.begin(); nIt != fNotifications.end(); nIt++)
+               delete nIt->second;
+}
+
+
+bool
+AppUsage::AllowsTypeCode(type_code code) const
+{
+       return code == kTypeCode;
+}
+
+
+status_t
+AppUsage::Flatten(void* buffer, ssize_t numBytes) const
+{
+       BMessage msg;
+       msg.AddString("signature", fName);
+       msg.AddBool("allow", fAllow);
+
+       notification_t::const_iterator nIt;
+       for (nIt = fNotifications.begin(); nIt != fNotifications.end(); nIt++)
+               msg.AddFlat("notification", nIt->second);
+
+       if (numBytes < msg.FlattenedSize())
+               return B_ERROR;
+
+       return msg.Flatten((char*)buffer, numBytes);
+}
+
+
+ssize_t
+AppUsage::FlattenedSize() const
+{
+       BMessage msg;
+       msg.AddString("signature", fName);
+       msg.AddBool("allow", fAllow);
+
+       notification_t::const_iterator nIt;
+       for (nIt = fNotifications.begin(); nIt != fNotifications.end(); nIt++)
+               msg.AddFlat("notification", nIt->second);
+
+       return msg.FlattenedSize();
+}
+
+
+bool
+AppUsage::IsFixedSize() const
+{
+       return false;
+}
+
+
+type_code
+AppUsage::TypeCode() const
+{
+       return kTypeCode;
+}
+
+
+status_t
+AppUsage::Unflatten(type_code code, const void* buffer,
+       ssize_t numBytes)
+{
+       if (code != kTypeCode)
+               return B_ERROR;
+
+       BMessage msg;
+       status_t status = B_ERROR;
+
+       status = msg.Unflatten((const char*)buffer);
+
+       if (status == B_OK) {
+               msg.FindString("signature", &fName);
+               msg.FindBool("allow", &fAllow);
+
+               type_code type;
+               int32 count = 0;
+
+               status = msg.GetInfo("notification", &type, &count);
+               if (status != B_OK)
+                       return status;
+
+               for (int32 i = 0; i < count; i++) {
+                       NotificationReceived *notification = new 
NotificationReceived();
+                       msg.FindFlat("notification", i, notification);
+                       fNotifications[notification->Title()] = notification;
+               }
+
+               status = B_OK;
+       }
+       
+       return status;
+}
+
+                                               
+const char*
+AppUsage::Name()
+{
+       return fName.String();
+}
+
+
+bool
+AppUsage::Allowed(const char* title, notification_type type)
+{
+       bool allowed = fAllow;
+
+       if (allowed) {
+               notification_t::iterator nIt = fNotifications.find(title);
+               if (nIt == fNotifications.end()) {
+                       allowed = true;         
+                       fNotifications[title] = new NotificationReceived(title, 
type);
+               } else {
+                       allowed = nIt->second->Allowed();
+                       nIt->second->UpdateTimeStamp();
+                       nIt->second->SetType(type);
+               }
+       }
+
+       return allowed;
+}
+
+
+bool
+AppUsage::Allowed()
+{
+       return fAllow;
+}
+
+
+NotificationReceived*
+AppUsage::NotificationAt(int32 index)
+{
+       notification_t::iterator nIt = fNotifications.begin();
+       for (int32 i = 0; i < index; i++)
+               nIt++;
+
+       return nIt->second;
+}
+
+
+int32
+AppUsage::Notifications()
+{
+       return fNotifications.size();
+}
+
+
+void
+AppUsage::AddNotification(NotificationReceived* notification)
+{
+       fNotifications[notification->Title()] = notification;
+}

Modified: haiku/trunk/src/servers/notification/Jamfile
===================================================================
--- haiku/trunk/src/servers/notification/Jamfile        2011-11-03 12:21:06 UTC 
(rev 43158)
+++ haiku/trunk/src/servers/notification/Jamfile        2011-11-03 12:49:18 UTC 
(rev 43159)
@@ -19,4 +19,11 @@
        NotificationWindow.cpp
 ;
 
+# Stuff shared with the preflet
+StaticLibrary libnotification.a :
+       AppUsage.cpp
+       NotificationReceived.cpp
+       Notifications.cpp
+;
+
 Depends notification_server : libnotification.a ;

Copied: haiku/trunk/src/servers/notification/NotificationReceived.cpp (from rev 
43156, haiku/trunk/src/kits/notification/NotificationReceived.cpp)
===================================================================
--- haiku/trunk/src/servers/notification/NotificationReceived.cpp               
                (rev 0)
+++ haiku/trunk/src/servers/notification/NotificationReceived.cpp       
2011-11-03 12:49:18 UTC (rev 43159)
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2010, Haiku, Inc. All Rights Reserved.
+ * Copyright 2008-2009, Pier Luigi Fiorini. All Rights Reserved.
+ * Copyright 2004-2008, Michael Davidson. All Rights Reserved.
+ * Copyright 2004-2007, Mikael Eiman. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Michael Davidson, slaad@xxxxxxxxxxx
+ *             Mikael Eiman, mikael@xxxxxxxx
+ *             Pier Luigi Fiorini, pierluigi.fiorini@xxxxxxxxx
+ */
+
+#include <Message.h>
+#include <Notification.h>
+#include <NotificationReceived.h>
+
+const type_code kTypeCode = 'ipnt';
+
+
+NotificationReceived::NotificationReceived()
+       :
+       fTitle(""),
+       fType(B_INFORMATION_NOTIFICATION),
+       fEnabled(false),
+       fLastReceived(time(NULL))
+{
+}
+
+
+NotificationReceived::NotificationReceived(const char* title,
+       notification_type type, bool enabled)
+       :
+       fTitle(title),
+       fType(type),
+       fEnabled(enabled),
+       fLastReceived(time(NULL))
+{
+}
+
+
+NotificationReceived::~NotificationReceived()
+{
+}
+
+
+bool
+NotificationReceived::AllowsTypeCode(type_code code) const
+{
+       return code == kTypeCode;
+}
+
+
+status_t
+NotificationReceived::Flatten(void* buffer, ssize_t numBytes) const
+{
+       BMessage msg;
+       msg.AddString("notify_title", fTitle);
+       msg.AddInt32("notify_type", (int32)fType);
+       msg.AddInt32("notify_lastreceived", (int32)fLastReceived);
+       msg.AddBool("notify_enabled", fEnabled);
+
+       if (numBytes < msg.FlattenedSize())
+               return B_ERROR;
+               
+       return msg.Flatten((char*)buffer, numBytes);
+}
+
+
+ssize_t
+NotificationReceived::FlattenedSize() const
+{
+       BMessage msg;
+       msg.AddString("notify_title", fTitle);
+       msg.AddInt32("notify_type", (int32)fType);
+       msg.AddInt32("notify_lastreceived", (int32)fLastReceived);
+       msg.AddBool("notify_enabled", fEnabled);
+       
+       return msg.FlattenedSize();
+}
+
+
+bool
+NotificationReceived::IsFixedSize() const
+{
+       return false;
+}
+
+
+type_code
+NotificationReceived::TypeCode() const
+{
+       return kTypeCode;
+}
+
+
+status_t
+NotificationReceived::Unflatten(type_code code, const void* buffer,
+       ssize_t numBytes)
+{
+       if (code != kTypeCode)
+               return B_ERROR;
+
+       BMessage msg;
+       status_t error = msg.Unflatten((const char*)buffer);
+
+       if (error == B_OK) {
+               msg.FindString("notify_title", &fTitle);
+               msg.FindInt32("notify_type", (int32 *)&fType);
+               msg.FindInt32("notify_lastreceived", (int32 *)&fLastReceived);
+               msg.FindBool("notify_enabled", &fEnabled);
+       }
+
+       return error;
+}
+
+
+const char*
+NotificationReceived::Title()
+{
+       return fTitle.String();
+}
+
+
+notification_type
+NotificationReceived::Type()
+{
+       return fType;
+}
+
+
+void
+NotificationReceived::SetType(notification_type type)
+{
+       fType = type;
+}
+
+
+time_t
+NotificationReceived::LastReceived()
+{
+       return fLastReceived;
+}
+
+
+bool
+NotificationReceived::Allowed()
+{
+       return fEnabled;
+}
+
+
+void
+NotificationReceived::UpdateTimeStamp()
+{
+       fLastReceived = time(NULL);
+}
+
+
+void
+NotificationReceived::SetTimeStamp(time_t time)
+{
+       fLastReceived = time;
+}

Copied: haiku/trunk/src/servers/notification/Notifications.cpp (from rev 43156, 
haiku/trunk/src/kits/notification/Notifications.cpp)
===================================================================
--- haiku/trunk/src/servers/notification/Notifications.cpp                      
        (rev 0)
+++ haiku/trunk/src/servers/notification/Notifications.cpp      2011-11-03 
12:49:18 UTC (rev 43159)
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2010, Haiku, Inc. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ */
+
+
+#include <Notifications.h>
+
+
+// Settings constants
+const char* kSettingsDirectory = "system/notifications";
+const char* kFiltersSettings = "filters";
+const char* kGeneralSettings = "general";
+const char* kDisplaySettings = "display";
+
+// General settings
+const char* kAutoStartName = "auto-start";
+const char* kTimeoutName = "timeout";
+
+// Display settings
+const char* kWidthName = "width";
+const char* kIconSizeName = "icon size";


Other related posts: