ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.I.b.tar.gz#/lib/gcc-lib/i386-next-nextstep3/2.7.2.2.f.2/include/indexing/IXAttributeParser.h

This is IXAttributeParser.h in view mode; [Download] [Up]

/*
IXAttributeParser.h
Copyright 1991, NeXT Computer, Inc.
*/

#import	<objc/Object.h>
#import	<objc/hashtable.h>
#import	<dpsclient/dpsclient.h>

#import	"protocols.h"

@class List, IXAttributeBinder, IXFileConverter, IXWeightingDomain;

/* These atoms define standard attributes generated by the attribute parser.*/

extern NXAtom	IXDefaultAttribute;
extern NXAtom	IXContentAttribute;

/* These atoms define pasteboard types used by the attribute parser.  The */
/* former is the for the tokenized format produced by attribute readers.  The */
/* latter is for file descriptions generated by pasteboard file filters.*/

extern NXAtom	IXAttributeReaderPboardType;
extern NXAtom	IXFileDescriptionPboardType;

/* These are the types of weighting applied to tokens by the attribute parser.  */
/* Absolute weighting produces weights representing the number of occurrences */
/* of the token.  Frequency weighting produces weights representing the count */
/* divided by the total number of tokens in the sample.  Peculiarity weighting */
/* produces weights representing the frequency relative to a weighting domain.*/

typedef enum {
    IX_NoWeighting = 0, 
    IX_AbsoluteWeighting, IX_FrequencyWeighting, IX_PeculiarityWeighting 
} IXWeightingType;

@interface IXAttributeParser: Object <IXAttributeBinding>
{
    BOOL		_tokenUniquing;
    NXHashTable		*_sourceTypes;
    id			_attributeBinder;
    id			_fileConverter;
    List		*_attributeMapping;
    List		*_attributeReaders;
    IXWeightingType	_weightingType;
    IXWeightingDomain	*_weightingDomain;
    unsigned		_minimumWeight;
    unsigned		_percentPassed;
}

/* This method returns a DPSPortProc that does pasteboard access in the main */
/* thread of an appkit program, and takes the port that the proc will wait on.*/
+ (DPSPortProc)getFilterHandler:(port_t)filterPort;

/* These methods manage the list of attribute readers.  The source stream is */
/* pipelined through the list of readers in the order in which they appear.*/

- getAttributeReaders:(List *)aList; /* fills the list with installed readers.*/
- setAttributeReaders:(List *)aList; /* sets the readers from the supplied list.*/

- (BOOL)understandsType:(const char *)type; /* always yes until types are added*/
- addSourceType:(const char *)type; /* adds to the set of understood types*/
- removeSourceType:(const char *)type; /* removes a previously understood type*/

@end

@interface IXAttributeParser(Parsing)

- reset; /* clears the accumulated attribute bindings*/

/* if type is NULL or empty, this method will type the file*/
- parseFile:(const char *)filename ofType:(const char *)type;
- parseStream:(NXStream *)stream ofType:(const char *)type;

/* These methods pass the source through the list of attribute parsers, */
/* producing attribute reader format, rather than attribute bindings.*/

/* if type is NULL or empty, this method will type the file*/
- (NXStream *)analyzeFile:(const char *)filename ofType:(const char *)type;
- (NXStream *)analyzeStream:(NXStream *)stream ofType:(const char *)type;

@end

@interface IXAttributeParser(Configuration)

- (unsigned)minimumWeight; /* returns minimum weight*/
- setMinimumWeight:(unsigned)aMinimum; /* sets minimum weight*/

- (unsigned)percentPassed; /* returns per centage passed*/
- setPercentPassed:(unsigned)aPercent; /* sets per centage passed*/

- (IXWeightingDomain *)weightingDomain; /* returns weighting domain*/
- setWeightingDomain:(IXWeightingDomain *)aDomain; /* sets weighting domain*/

- (IXWeightingType)weightingType; /* returns weighting type */
- setWeightingType:(IXWeightingType)type; /* sets weighting type*/

- (IXFileConverter *)fileConverter; /* returns file converter*/
- setFileConverter:(IXFileConverter *)aConverter; /* sets file converter*/

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.