зеркало из https://github.com/mozilla/gecko-dev.git
204 строки
4.7 KiB
C
204 строки
4.7 KiB
C
|
|
/* W3 Copyright statement
|
|
Copyright 1995 by: Massachusetts Institute of Technology (MIT), INRIA</H2>
|
|
|
|
This W3C software is being provided by the copyright holders under the
|
|
following license. By obtaining, using and/or copying this software,
|
|
you agree that you have read, understood, and will comply with the
|
|
following terms and conditions:
|
|
|
|
Permission to use, copy, modify, and distribute this software and its
|
|
documentation for any purpose and without fee or royalty is hereby
|
|
granted, provided that the full text of this NOTICE appears on
|
|
<EM>ALL</EM> copies of the software and documentation or portions
|
|
thereof, including modifications, that you make.
|
|
|
|
<B>THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
|
|
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
|
|
BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
|
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
|
|
THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
|
|
THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
|
|
COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
|
|
OR DOCUMENTATION.
|
|
|
|
The name and trademarks of copyright holders may NOT be used
|
|
in advertising or publicity pertaining to the software without
|
|
specific, written prior permission. Title to copyright in this
|
|
software and any associated documentation will at all times remain
|
|
with copyright holders.
|
|
*/
|
|
/* Label data internals
|
|
LABEL DATA INTERNALS
|
|
|
|
*/
|
|
/*
|
|
** (c) COPYRIGHT MIT 1996.
|
|
** Please first read the full copyright statement in the file COPYRIGH.
|
|
*/
|
|
/*
|
|
|
|
This module defines the Label data structures read by CSParser.c. Applications will
|
|
include this if they want direct access to the data (as opposed to using iterator
|
|
methods).
|
|
|
|
The following data structures relate to the data encapsulated in a PICS Label. Each
|
|
data type correlates to a time in the BNF for the label description. See PICS Labels
|
|
spec for more details.
|
|
|
|
*/
|
|
#ifndef CSLLST_H
|
|
#define CSLLST
|
|
/*
|
|
|
|
LABEL ERROR
|
|
|
|
combination of:
|
|
|
|
_label-error_
|
|
|
|
_service-error_
|
|
|
|
_service-info_ 'no-ratings'
|
|
|
|
*/
|
|
typedef struct {
|
|
LabelErrorCode_t errorCode;
|
|
HTList * explanations; /* HTList of (char *) */
|
|
} LabelError_t;
|
|
/*
|
|
|
|
EXTENSION DATA
|
|
|
|
called _data_ in the BNF
|
|
|
|
*/
|
|
typedef struct ExtensionData_s ExtensionData_t;
|
|
struct ExtensionData_s {
|
|
char * text;
|
|
BOOL quoted;
|
|
HTList * moreData;
|
|
ExtensionData_t * pParentExtensionData;
|
|
};
|
|
/*
|
|
|
|
EXTENSION
|
|
|
|
_option_ 'extension'
|
|
|
|
*/
|
|
typedef struct {
|
|
BOOL mandatory;
|
|
SVal_t url;
|
|
HTList * extensionData;
|
|
} Extension_t;
|
|
/*
|
|
|
|
LABEL OPTIONS
|
|
|
|
called _option_ in the BNF
|
|
|
|
*/
|
|
typedef struct LabelOptions_s LabelOptions_t;
|
|
struct LabelOptions_s {
|
|
DVal_t at;
|
|
SVal_t by;
|
|
SVal_t complete_label;
|
|
BVal_t generic;
|
|
SVal_t fur; /* for is a reserved word */
|
|
SVal_t MIC_md5;
|
|
DVal_t on;
|
|
SVal_t signature_PKCS;
|
|
DVal_t until;
|
|
HTList * comments;
|
|
HTList * extensions;
|
|
/* find service-level label options */
|
|
LabelOptions_t * pParentLabelOptions;
|
|
};
|
|
|
|
/*
|
|
|
|
RATING
|
|
|
|
called _rating_ in the BNF
|
|
|
|
*/
|
|
typedef struct {
|
|
SVal_t identifier;
|
|
FVal_t value;
|
|
HTList * ranges;
|
|
} LabelRating_t;
|
|
/*
|
|
|
|
SINGLELABEL
|
|
|
|
called _single-label_ in the BNF
|
|
|
|
*/
|
|
typedef struct {
|
|
LabelOptions_t * pLabelOptions;
|
|
HTList * labelRatings;
|
|
} SingleLabel_t;
|
|
|
|
/*
|
|
|
|
LABEL
|
|
|
|
also called _label_
|
|
|
|
*/
|
|
typedef struct {
|
|
LabelError_t * pLabelError;
|
|
HTList * singleLabels;
|
|
SingleLabel_t * pSingleLabel;
|
|
} Label_t;
|
|
/*
|
|
|
|
SERVICEINFO
|
|
|
|
called _service-info_ in the BNF
|
|
|
|
*/
|
|
typedef struct {
|
|
SVal_t rating_service;
|
|
LabelOptions_t * pLabelOptions;
|
|
LabelError_t * pLabelError;
|
|
HTList * labels;
|
|
} ServiceInfo_t;
|
|
/*
|
|
|
|
CSLLDATA
|
|
|
|
The whole shebang.
|
|
|
|
*/
|
|
struct CSLLData_s {
|
|
FVal_t version;
|
|
LabelError_t * pLabelError;
|
|
HTList * serviceInfos;
|
|
|
|
/* some usefull flags */
|
|
BOOL complete;
|
|
BOOL hasTree; /* so it can't make a list of labels */
|
|
int mandatoryExtensions;
|
|
};
|
|
/*
|
|
|
|
--------------these need the above structures--------------
|
|
|
|
*/
|
|
extern CSLLData_t * CSLabel_getCSLLData(CSLabel_t * me);
|
|
extern LabelError_t * CSLabel_getLabelError(CSLabel_t * pCSLabel);
|
|
extern LabelOptions_t * CSLabel_getLabelOptions(CSLabel_t * pCSLabel);
|
|
extern ServiceInfo_t * CSLabel_getServiceInfo(CSLabel_t * pCSLabel);
|
|
extern Label_t * CSLabel_getLabel(CSLabel_t * pCSLabel);
|
|
extern SingleLabel_t * CSLabel_getSingleLabel(CSLabel_t * pCSLabel);
|
|
extern LabelRating_t * CSLabel_getLabelRating(CSLabel_t * pCSLabel);
|
|
/*
|
|
|
|
*/
|
|
#endif /* CSLLST_H */
|
|
/*
|
|
|
|
End of Declaration */
|