2018-03-11 Fred Gleason <fredg@paravelsystems.com>

* Converted ripcd(8) to use RDApplication.
	* Documented a 'Notification' message type in
	'docs/apis/notification.xml'.
	* Added an 'RDMulticaster' class.
	* Added an 'mcast_recv_test' program in 'tests/'.
	* Added a 'SYSTEM.NOTIFICATION_ADDRESS' field to the database.
	* Incremented the database version to 276.
	* Added an 'Mcast Address for Notifications' control to the
	'System-Wide Settings' dialog in rdadmin(1).
	* Implemented the 'Process Notification' ['ON'] command in
	ripcd(8).
	* Added an 'RDRipc::sendNotification()' method.
	* Added an 'RDRipc::notificationReceived()' signal.
This commit is contained in:
Fred Gleason
2018-03-11 20:24:39 -04:00
parent 7835be386e
commit 7ce4b2ff10
71 changed files with 1302 additions and 368 deletions

53
lib/rdnotification.h Normal file
View File

@@ -0,0 +1,53 @@
// rdnotification.h
//
// A container class for a Rivendell Notification message.
//
// (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef RDNOTIFICATION_H
#define RDNOTIFICATION_H
#include <qstring.h>
#include <qvariant.h>
class RDNotification
{
public:
enum Type {NullType=0,CartType=1,LastType=2};
enum Action {NoAction=0,AddAction=1,DeleteAction=2,ModifyAction=3,
LastAction=4};
RDNotification();
Type type() const;
void setType(Type type);
Action action() const;
void setAction(Action action);
QVariant id() const;
void setId(const QVariant id);
bool isValid() const;
bool read(const QString &str);
QString write() const;
static QString typeString(Type type);
static QString actionString(Action action);
private:
Type notify_type;
Action notify_action;
QVariant notify_id;
};
#endif // RDNOTIFICATION_H