You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.5 KiB
130 lines
3.5 KiB
/*-
|
|
* Copyright (c) 2017-2021 Carsten Sonne Larsen <cs@innolan.net>
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
#ifndef MESSAGE_H_INCLUDED
|
|
#define MESSAGE_H_INCLUDED
|
|
|
|
#include "config.h"
|
|
#include "log.h"
|
|
|
|
#define LOGGER_PORT_NAME "TimeLoggerIn"
|
|
#define CONTROL_PORT_NAME "TimeKeeperCtrl"
|
|
#define AREXX_PORT_NAME "TIMEKEEPER.1"
|
|
#define AREXX_ERROR_VAR_CODE "TIMEKEEPER.ERRORCODE"
|
|
#define AREXX_ERROR_VAR_TEXT "TIMEKEEPER.ERRORTEXT"
|
|
|
|
#define ATK_DEFAULT 0
|
|
#define ATK_LASTSYNC 1
|
|
#define ATK_RESTART 10
|
|
#define ATK_REFRESH 11
|
|
#define ATK_STORE 13
|
|
#define ATK_APPLY 14
|
|
#define ATK_UNDO 15
|
|
#define ATK_SHOW 16
|
|
#define ATK_HIDE 17
|
|
#define ATK_ENABLE 20
|
|
#define ATK_DISABLE 21
|
|
#define ATK_READONLY 22
|
|
#define ATK_READWRITE 23
|
|
#define ATK_SHUTDOWN 30
|
|
#define ATK_TZ_CHANGED 40
|
|
#define ATK_TZONE_CHANGED 41
|
|
#define ATK_LOCALE_CHANGED 42
|
|
#define ATK_ID 50
|
|
#define ATK_VERSION 51
|
|
#define ATK_STATUS 52
|
|
#define ATK_TIME 53
|
|
#define ATK_TIMEZONE 54
|
|
|
|
#define ATK_CTRL_OK 0
|
|
#define ATK_CTRL_ERROR 10
|
|
#define ATK_CTRL_UNKNOWN 255
|
|
|
|
#define MODULENAMESIZE 20
|
|
#define MAXLOGLINESIZE 100
|
|
|
|
#define MSGPORT_BROKER 1
|
|
#define MSGPORT_SYNCER 2
|
|
#define MSGPORT_WINDOW 3
|
|
#define MSGPORT_MEMORY 4
|
|
#define MSGPORT_CONTROL 5
|
|
#define MSGPORT_AREXX 6
|
|
|
|
#define MSGTYPE_APP 1
|
|
#define MSGTYPE_LOG 2
|
|
#define MSGTYPE_CTRL 3
|
|
|
|
struct ApplicationMesage
|
|
{
|
|
struct Message Msg;
|
|
long MsgType;
|
|
long MsgId;
|
|
};
|
|
|
|
struct ControlMesage
|
|
{
|
|
struct ApplicationMesage AppMsg;
|
|
STRPTR Args;
|
|
STRPTR Result;
|
|
long Code;
|
|
};
|
|
|
|
enum LogSeverity
|
|
{
|
|
ErrorMessage = 5,
|
|
WarningMessage = 10,
|
|
NoticeMessage = 15,
|
|
InfoMessage = 20,
|
|
DebugMessage = 30,
|
|
TraceMessage = 40,
|
|
MemTraceMessage = 90
|
|
};
|
|
|
|
struct LogMessage
|
|
{
|
|
struct ApplicationMesage AppMsg;
|
|
enum LogSeverity Severity;
|
|
char Module[MODULENAMESIZE];
|
|
char Text[MAXLOGLINESIZE];
|
|
};
|
|
|
|
void InitMessages(void);
|
|
bool SetupPorts(void);
|
|
void CleanupPorts(void);
|
|
bool CreateMessagePort(long port);
|
|
void DestroyMessagePort(long port);
|
|
ULONG GetPortSignalMask(long);
|
|
struct MsgPort *GetMessagePort(long);
|
|
struct Message *GetNewMessage(long);
|
|
void SendBrokerMessage(long);
|
|
void SendWindowMessage(long);
|
|
void SendLogMessage(struct LogMessage *);
|
|
void SendMessageWait(long, long);
|
|
void HandleMemoryMessages(void);
|
|
void CleanupMsgPort(struct MsgPort **);
|
|
|
|
#endif
|