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(); }
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); }
internal url_t create_copy() { var url = new url_t() { startIndex = this.startIndex, length = this.length, value = this.value, }; return(url); }