/* Copyright (c) 1998, 1999, 2000, 2001, 2003, 2004 Benhur Stein This file is part of Pajé. Pajé is free software; you can redistribute it and/or modify it 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. Pajé 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Pajé; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _PajeEventDecoder_h_ #define _PajeEventDecoder_h_ #include #include "../General/PajeEvent.h" #include "../General/PTime.h" #include "../General/DataScanner.h" #include "../General/PajeFilter.h" @interface PajeEventDecoder: PajeComponent { enum { OUT_DEF, IN_DEF, EVENTS } status; struct { NSMutableArray *fieldTypes; NSMutableArray *fieldNames; NSNumber *eventId; NSString *eventName; } eventBeingDefined; NSMutableArray *valArray; /* used only while reading an event */ int eventCount; int lineCount; NSMutableDictionary *eventNames; NSMutableDictionary *eventFieldTypes; NSMutableDictionary *eventFieldNames; DataScanner *scanner; NSCharacterSet *percent; NSCharacterSet *delimiter; NSMutableCharacterSet *alphanum; } - (id)initWithController:(PajeTraceController *)c; - (BOOL)readNextLine; - (void)scanDefinitionLine; - (PajeEvent *)readEvent; - (void)reset; - (void)raise:(NSString *)reason; - (int)eventCount; - (void)encodeCheckPointWithCoder:(NSCoder *)coder; - (void)decodeCheckPointWithCoder:(NSCoder *)coder; @end #endif