Annotation of fam/fam/Event.c++, Revision 1.1
1.1 ! trev 1: // Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
! 2: //
! 3: // This program is free software; you can redistribute it and/or modify it
! 4: // under the terms of version 2 of the GNU General Public License as
! 5: // published by the Free Software Foundation.
! 6: //
! 7: // This program is distributed in the hope that it would be useful, but
! 8: // WITHOUT ANY WARRANTY; without even the implied warranty of
! 9: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
! 10: // license provided herein, whether implied or otherwise, is limited to
! 11: // this program in accordance with the express provisions of the GNU
! 12: // General Public License. Patent licenses, if any, provided herein do not
! 13: // apply to combinations of this program with other product or programs, or
! 14: // any other product whatsoever. This program is distributed without any
! 15: // warranty that the program is delivered free of the rightful claim of any
! 16: // third person by way of infringement or the like. See the GNU General
! 17: // Public License for more details.
! 18: //
! 19: // You should have received a copy of the GNU General Public License along
! 20: // with this program; if not, write the Free Software Foundation, Inc., 59
! 21: // Temple Place - Suite 330, Boston MA 02111-1307, USA.
! 22:
! 23: #include "Event.h"
! 24:
! 25: #include "Log.h"
! 26:
! 27: #include <assert.h>
! 28: #include <stdio.h>
! 29:
! 30: const Event Event::Changed = Event(ChangedT);
! 31: const Event Event::Deleted = Event(DeletedT);
! 32: const Event Event::Executing = Event(ExecutingT);
! 33: const Event Event::Exited = Event(ExitedT);
! 34: const Event Event::Created = Event(CreatedT);
! 35: const Event Event::Acknowledge = Event(AcknowledgeT);
! 36: const Event Event::Exists = Event(ExistsT);
! 37: const Event Event::EndExist = Event(EndExistT);
! 38: const Event Event::Error = Event(ErrorT);
! 39:
! 40:
! 41: const Event*
! 42: Event::getEventFromOpcode(char opcode)
! 43: {
! 44: switch (opcode)
! 45: {
! 46: case 'c':
! 47: return &Changed;
! 48: case 'A':
! 49: return &Deleted;
! 50: case 'X':
! 51: return &Executing;
! 52: case 'Q':
! 53: return &Exited;
! 54: case 'F':
! 55: return &Created;
! 56: // case 'M': /* M is unsupported */
! 57: // return Moved;
! 58: case 'G':
! 59: return &Acknowledge;
! 60: case 'e':
! 61: return ∃
! 62: case 'P':
! 63: return &EndExist;
! 64: default:
! 65: Log::error("unrecognized event opcode '%c' ('\0%o')",
! 66: opcode, opcode & 0377);
! 67: return &Error;
! 68: }
! 69: }
! 70:
! 71: const char *
! 72: Event::name() const
! 73: {
! 74: static char buf[40];
! 75:
! 76: switch (which)
! 77: {
! 78: case ChangedT:
! 79: return "Changed";
! 80:
! 81: case DeletedT:
! 82: return "Deleted";
! 83:
! 84: case ExecutingT:
! 85: return "Executing";
! 86:
! 87: case ExitedT:
! 88: return "Exited";
! 89:
! 90: case CreatedT:
! 91: return "Created";
! 92:
! 93: case MovedT:
! 94: return "Moved";
! 95:
! 96: case AcknowledgeT:
! 97: return "Acknowledge";
! 98:
! 99: case ExistsT:
! 100: return "Exists";
! 101:
! 102: case EndExistT:
! 103: return "EndExist";
! 104:
! 105: default:
! 106: sprintf(buf, "UNKNOWN EVENT %d", which);
! 107: return buf;
! 108: }
! 109: }
! 110:
! 111: char
! 112: Event::code() const
! 113: {
! 114: // Map event to letter.
! 115:
! 116: static const char codeletters[] = "?cAXQFMGeP";
! 117: assert(which < sizeof codeletters - 1);
! 118: char code = codeletters[which];
! 119: assert(code != '?');
! 120: return code;
! 121: }
! 122:
! 123:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>