123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /* $XConsortium: Message.C /main/1 1996/07/29 16:56:53 cde-hp $ */
- // Copyright (c) 1994 James Clark
- // See the file COPYING for copying permission.
- #ifdef __GNUG__
- #pragma implementation
- #endif
- #include "splib.h"
- #include "Message.h"
- #include "MessageArg.h"
- #ifdef SP_NAMESPACE
- namespace SP_NAMESPACE {
- #endif
- MessageFragment::MessageFragment(unsigned module, unsigned number, const char *
- #ifndef SP_NO_MESSAGE_TEXT
- text
- #endif
- )
- : module_(module),
- #ifndef SP_NO_MESSAGE_TEXT
- text_(text),
- #endif
- number_(number),
- spare_(0)
- {
- }
- MessageType::MessageType(Severity severity, unsigned module, unsigned number,
- const char *text, const char *
- #ifndef SP_NO_MESSAGE_TEXT
- auxText
- #endif
- )
- :
- #ifndef SP_NO_MESSAGE_TEXT
- auxText_(auxText),
- #endif
- MessageFragment(module, number, text)
- {
- spare_ = severity;
- }
-
- MessageType0::MessageType0(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType1::MessageType1(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType2::MessageType2(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType3::MessageType3(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType4::MessageType4(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType5::MessageType5(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType6::MessageType6(Severity severity, unsigned module, unsigned number,
- const char *text)
- : MessageType(severity, module, number, text)
- {
- }
- MessageType0L::MessageType0L(Severity severity, unsigned module, unsigned number,
- const char *text, const char *auxText)
- : MessageType(severity, module, number, text, auxText)
- {
- }
- MessageType1L::MessageType1L(Severity severity, unsigned module, unsigned number,
- const char *text, const char *auxText)
- : MessageType(severity, module, number, text, auxText)
- {
- }
- OpenElementInfo::OpenElementInfo()
- : included(0), matchIndex(0)
- {
- }
- Message::Message()
- : type(NULL)
- {
- }
- Message::Message(int nArgs)
- : args(nArgs), type(NULL)
- {
- }
- void Message::swap(Message &to)
- {
- const MessageType *tem = type;
- type = to.type;
- to.type = tem;
- to.loc.swap(loc);
- to.auxLoc.swap(auxLoc);
- args.swap(to.args);
- openElementInfo.swap(to.openElementInfo);
- }
- Messenger::Messenger()
- : haveNextLocation_(0)
- {
- }
- Messenger::~Messenger()
- {
- }
- void Messenger::dispatchMessage(Message &msg)
- {
- const Message &tem = msg;
- dispatchMessage(tem);
- }
- void Messenger::message(const MessageType0 &type)
- {
- Message msg(0);
- doInitMessage(msg);
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType1 &type, const MessageArg &arg0)
- {
- Message msg(1);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType2 &type,
- const MessageArg &arg0,
- const MessageArg &arg1)
- {
- Message msg(2);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.args[1] = arg1.copy();
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType3 &type,
- const MessageArg &arg0,
- const MessageArg &arg1,
- const MessageArg &arg2)
- {
- Message msg(3);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.args[1] = arg1.copy();
- msg.args[2] = arg2.copy();
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType4 &type,
- const MessageArg &arg0,
- const MessageArg &arg1,
- const MessageArg &arg2,
- const MessageArg &arg3)
- {
- Message msg(4);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.args[1] = arg1.copy();
- msg.args[2] = arg2.copy();
- msg.args[3] = arg3.copy();
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType5 &type,
- const MessageArg &arg0,
- const MessageArg &arg1,
- const MessageArg &arg2,
- const MessageArg &arg3,
- const MessageArg &arg4)
- {
- Message msg(5);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.args[1] = arg1.copy();
- msg.args[2] = arg2.copy();
- msg.args[3] = arg3.copy();
- msg.args[4] = arg4.copy();
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType6 &type,
- const MessageArg &arg0,
- const MessageArg &arg1,
- const MessageArg &arg2,
- const MessageArg &arg3,
- const MessageArg &arg4,
- const MessageArg &arg5)
- {
- Message msg(6);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.args[1] = arg1.copy();
- msg.args[2] = arg2.copy();
- msg.args[3] = arg3.copy();
- msg.args[4] = arg4.copy();
- msg.args[5] = arg5.copy();
- msg.type = &type;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType0L &type, const Location &loc)
- {
- Message msg(0);
- doInitMessage(msg);
- msg.type = &type;
- msg.auxLoc = loc;
- dispatchMessage(msg);
- }
- void Messenger::message(const MessageType1L &type, const MessageArg &arg0,
- const Location &loc)
- {
- Message msg(1);
- doInitMessage(msg);
- msg.args[0] = arg0.copy();
- msg.type = &type;
- msg.auxLoc = loc;
- dispatchMessage(msg);
- }
- void Messenger::setNextLocation(const Location &loc)
- {
- haveNextLocation_ = 1;
- nextLocation_ = loc;
- }
- void Messenger::initMessage(Message &)
- {
- }
- void Messenger::doInitMessage(Message &msg)
- {
- initMessage(msg);
- if (haveNextLocation_) {
- msg.loc = nextLocation_;
- haveNextLocation_ = 0;
- }
- }
- ForwardingMessenger::ForwardingMessenger(Messenger &to)
- : to_(&to)
- {
- }
- void ForwardingMessenger::dispatchMessage(Message &msg)
- {
- to_->dispatchMessage(msg);
- }
- void ForwardingMessenger::dispatchMessage(const Message &msg)
- {
- to_->dispatchMessage(msg);
- }
- void ForwardingMessenger::initMessage(Message &msg)
- {
- to_->initMessage(msg);
- }
- ParentLocationMessenger::ParentLocationMessenger(Messenger &mgr)
- : ForwardingMessenger(mgr)
- {
- }
- void ParentLocationMessenger::initMessage(Message &msg)
- {
- ForwardingMessenger::initMessage(msg);
- if (!msg.loc.origin().isNull())
- msg.loc = msg.loc.origin()->parent();
- }
- NullMessenger::NullMessenger()
- {
- }
- void NullMessenger::dispatchMessage(Message &)
- {
- }
- void NullMessenger::dispatchMessage(const Message &)
- {
- }
- #ifdef SP_NAMESPACE
- }
- #endif
|