1674e18fbSTyler Dauwalder //---------------------------------------------------------------------- 2674e18fbSTyler Dauwalder // This software is part of the OpenBeOS distribution and is covered 3674e18fbSTyler Dauwalder // by the OpenBeOS license. 4674e18fbSTyler Dauwalder //--------------------------------------------------------------------- 5674e18fbSTyler Dauwalder /*! 6674e18fbSTyler Dauwalder \file sniffer/Rule.h 7674e18fbSTyler Dauwalder Mime sniffer rule declarations 8674e18fbSTyler Dauwalder */ 982b75665STyler Dauwalder #ifndef _SNIFFER_RULE_H 1082b75665STyler Dauwalder #define _SNIFFER_RULE_H 11674e18fbSTyler Dauwalder 1201293d6eSTyler Dauwalder #include <SupportDefs.h> 1368faee10STyler Dauwalder #include <vector> 14674e18fbSTyler Dauwalder 1501293d6eSTyler Dauwalder class BPositionIO; 1601293d6eSTyler Dauwalder 17*09d84e61STyler Dauwalder namespace BPrivate { 18*09d84e61STyler Dauwalder namespace Storage { 19674e18fbSTyler Dauwalder namespace Sniffer { 20674e18fbSTyler Dauwalder 2193d145bbSTyler Dauwalder class DisjList; 22674e18fbSTyler Dauwalder 230bc621d5STyler Dauwalder /*! \brief A priority and a list of expressions to be used for sniffing out the 240bc621d5STyler Dauwalder type of an untyped file. 250bc621d5STyler Dauwalder */ 26674e18fbSTyler Dauwalder class Rule { 27674e18fbSTyler Dauwalder public: 28674e18fbSTyler Dauwalder Rule(); 2968faee10STyler Dauwalder ~Rule(); 3001293d6eSTyler Dauwalder 3101293d6eSTyler Dauwalder status_t InitCheck() const; 3201293d6eSTyler Dauwalder 3301293d6eSTyler Dauwalder double Priority() const; 3401293d6eSTyler Dauwalder bool Sniff(BPositionIO *data) const; 35674e18fbSTyler Dauwalder private: 3668faee10STyler Dauwalder friend class Parser; 3768faee10STyler Dauwalder 3868faee10STyler Dauwalder void Unset(); 3993d145bbSTyler Dauwalder void SetTo(double priority, std::vector<DisjList*>* list); 4068faee10STyler Dauwalder 4168faee10STyler Dauwalder double fPriority; 4293d145bbSTyler Dauwalder std::vector<DisjList*> *fConjList; // A list of DisjLists to be ANDed 43674e18fbSTyler Dauwalder }; 44674e18fbSTyler Dauwalder 45*09d84e61STyler Dauwalder }; // namespace Sniffer 46*09d84e61STyler Dauwalder }; // namespace Storage 47*09d84e61STyler Dauwalder }; // namespace BPrivate 48674e18fbSTyler Dauwalder 4982b75665STyler Dauwalder #endif // _SNIFFER_RULE_H 50*09d84e61STyler Dauwalder 51*09d84e61STyler Dauwalder 52