Esempio n. 1
0
        private char *_Ptr;                          //current pointer into text
        #endregion

        #region [.ctor().]
        public UrlDetector(UrlDetectorConfig config)
        {
            _ExtractValue = (config.UrlExtractMode == UrlExtractModeEnum.ValueAndPosition);

            _FirstLevelDomains          = config.Model.FirstLevelDomains;
            _FirstLevelDomainsMaxLength = config.Model.FirstLevelDomainsMaxLength;

            _URIschemes          = config.Model.URIschemes;
            _URIschemesMaxLength = config.Model.URIschemesMaxLength;

            _Urls          = new List <url_t>(DEFAULT_LIST_CAPACITY);
            _StringBuilder = new StringBuilder();
            _Url           = new url_t();
            _Urlstructs    = new List <url_struct_t>(DEFAULT_LIST_CAPACITY);

            _CTM = xlat_Unsafe.Inst._CHARTYPE_MAP;
            _UIM = xlat_Unsafe.Inst._UPPER_INVARIANT_MAP;

            //-1-
            _FirstLevelDomainBuffer         = new char[_FirstLevelDomainsMaxLength + 1];
            _FirstLevelDomainBufferGCHandle = GCHandle.Alloc(_FirstLevelDomainBuffer, GCHandleType.Pinned);
            _FldBufferPtrBase = (char *)_FirstLevelDomainBufferGCHandle.AddrOfPinnedObject().ToPointer();

            //-2-
            _URIschemesBuffer         = new char[_URIschemesMaxLength + 1];
            _URIschemesBufferGCHandle = GCHandle.Alloc(_URIschemesBuffer, GCHandleType.Pinned);
            _UriSchBufferPtrBase      = (char *)_URIschemesBufferGCHandle.AddrOfPinnedObject().ToPointer();
        }
Esempio n. 2
0
        unsafe static internal url_t to_url(url_struct_t url, char *_base)
        {
            var _url = new url_t()
            {
                startIndex = (int)(url.startPtr - _base),
                length     = url.length,
            };

            return(_url);
        }
Esempio n. 3
0
        internal url_t create_copy()
        {
            var url = new url_t()
            {
                startIndex = this.startIndex,
                length     = this.length,
                value      = this.value,
            };

            return(url);
        }