
* Move the files shared between server and preflet to the server folder. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43159 a95241bf-73f2-0310-859d-f6bbb57e9c96
165 lines
2.8 KiB
C++
165 lines
2.8 KiB
C++
/*
|
|
* 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@bong.com.au
|
|
* Mikael Eiman, mikael@eiman.tv
|
|
* Pier Luigi Fiorini, pierluigi.fiorini@gmail.com
|
|
*/
|
|
|
|
#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;
|
|
}
|