Annotation of win32/apache22/srclib/apr-util/include/apr_strmatch.h, revision 1.1
1.1 ! moko 1: /* Licensed to the Apache Software Foundation (ASF) under one or more
! 2: * contributor license agreements. See the NOTICE file distributed with
! 3: * this work for additional information regarding copyright ownership.
! 4: * The ASF licenses this file to You under the Apache License, Version 2.0
! 5: * (the "License"); you may not use this file except in compliance with
! 6: * the License. You may obtain a copy of the License at
! 7: *
! 8: * http://www.apache.org/licenses/LICENSE-2.0
! 9: *
! 10: * Unless required by applicable law or agreed to in writing, software
! 11: * distributed under the License is distributed on an "AS IS" BASIS,
! 12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
! 13: * See the License for the specific language governing permissions and
! 14: * limitations under the License.
! 15: */
! 16:
! 17: #ifndef APR_STRMATCH_H
! 18: #define APR_STRMATCH_H
! 19: /**
! 20: * @file apr_strmatch.h
! 21: * @brief APR-UTIL string matching routines
! 22: */
! 23:
! 24: #include "apu.h"
! 25: #include "apr_pools.h"
! 26:
! 27: #ifdef __cplusplus
! 28: extern "C" {
! 29: #endif
! 30:
! 31: /**
! 32: * @defgroup APR_Util_StrMatch String matching routines
! 33: * @ingroup APR_Util
! 34: * @{
! 35: */
! 36:
! 37: /** @see apr_strmatch_pattern */
! 38: typedef struct apr_strmatch_pattern apr_strmatch_pattern;
! 39:
! 40: /**
! 41: * Precompiled search pattern
! 42: */
! 43: struct apr_strmatch_pattern {
! 44: /** Function called to compare */
! 45: const char *(*compare)(const apr_strmatch_pattern *this_pattern,
! 46: const char *s, apr_size_t slen);
! 47: const char *pattern; /**< Current pattern */
! 48: apr_size_t length; /**< Current length */
! 49: void *context; /**< hook to add precomputed metadata */
! 50: };
! 51:
! 52: #if defined(DOXYGEN)
! 53: /**
! 54: * Search for a precompiled pattern within a string
! 55: * @param pattern The pattern
! 56: * @param s The string in which to search for the pattern
! 57: * @param slen The length of s (excluding null terminator)
! 58: * @return A pointer to the first instance of the pattern in s, or
! 59: * NULL if not found
! 60: */
! 61: APU_DECLARE(const char *) apr_strmatch(const apr_strmatch_pattern *pattern,
! 62: const char *s, apr_size_t slen);
! 63: #else
! 64: #define apr_strmatch(pattern, s, slen) (*((pattern)->compare))((pattern), (s), (slen))
! 65: #endif
! 66:
! 67: /**
! 68: * Precompile a pattern for matching using the Boyer-Moore-Horspool algorithm
! 69: * @param p The pool from which to allocate the pattern
! 70: * @param s The pattern string
! 71: * @param case_sensitive Whether the matching should be case-sensitive
! 72: * @return a pointer to the compiled pattern, or NULL if compilation fails
! 73: */
! 74: APU_DECLARE(const apr_strmatch_pattern *) apr_strmatch_precompile(apr_pool_t *p, const char *s, int case_sensitive);
! 75:
! 76: /** @} */
! 77: #ifdef __cplusplus
! 78: }
! 79: #endif
! 80:
! 81: #endif /* !APR_STRMATCH_H */
E-mail: