blob: 6a43aa23d5e575776f14560fd4f637684e4b68c7 [file] [log] [blame]
// ch.h - channel daemon defines
// --
// $timestamp::$
#ifndef __DAEMON_CHANNEL_H__
#define __DAEMON_CHANNEL_H__
#define P_CHANNELS "channels"
#define P_STD_CHANNEL "std_channel"
#define P_SWAP_CHANNELS "swap_channels"
#define CHMASTER "/p/daemon/channeld"
#define CMNAME "<MasteR>"
#define DEFAULTSV "/p/daemon/channel-sv"
#define DEFAULTSVNAME "Merlin"
// Message types
#define MSG_SAY 0
#define MSG_EMOTE 1
#define MSG_GEMOTE 2
#define MSG_EMPTY 3
// Errors
// Kommentar zu E_ACCESS_DENIED: das umfasst auch eine nicht-existierende
// Ebene. Das muss so sein, damit man nicht pruefen kann, ob eine Ebene
// existiert, obwohl man die nicht sehen darf. Also: kein E_NO_CHANNEL
// einfuehren und nachruesten.
#define E_ACCESS_DENIED -1
#define E_ALREADY_JOINED -2
#define E_NOT_MEMBER -3
#define E_EMPTY_MESSAGE -4
#define E_UNKNOWN_TYPE -5
// Commands
#define C_NEW "new"
#define C_JOIN "join"
#define C_LEAVE "leave"
#define C_SEND "send"
#define C_LIST "list"
#define C_FIND "find"
// Ebenen-Flags, die Verhalten von Ebenen steuern (vom CHANNELD verwendet)
#define CHF_FIXED_SUPERVISOR 1 // Kein Wechsel des SV erlaubt
// Flags fuer Zugriffsverwaltung, nur benutzt von den Ebenen-Supervisoren
// F_WIZARD kennzeichnet reine Magierebenen
#define CH_ACCESS_WIZARD 1
// Ebenen, auf denen keine Gaeste erlaubt sind, sind mit F_NOGUEST markiert.
#define CH_ACCESS_NOGUEST 2
#endif //__DAEMON_CHANNEL_H__
// prototypes
#ifdef NEED_PROTOTYPES
#ifndef __CHANNEL_H_PROTO__
#define __CHANNEL_H_PROTO__
public varargs int new(string ch_name, object owner, string|closure desc,
int channel_flags);
public varargs int send(string chname, object sender, string msg, int type);
#endif //__CHANNEL_H_PROTO__
#endif //NEED_PROTOTYPES