/*
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 <Foundation/Foundation.h>
#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
syntax highlighted by Code2HTML, v. 0.9.1