コード例 #1
0
ファイル: ZstandardDict.cs プロジェクト: wangdi2014/Nirvana
        public ZstandardDict(int compressionLevel, byte[] dictBuffer)
        {
            LibraryUtilities.CheckLibrary();

            _compressDict      = SafeNativeMethods.ZSTD_createCDict(dictBuffer, (ulong)dictBuffer.Length, compressionLevel);
            _decompressDict    = SafeNativeMethods.ZSTD_createDDict(dictBuffer, (ulong)dictBuffer.Length);
            _compressContext   = SafeNativeMethods.ZSTD_createCCtx();
            _decompressContext = SafeNativeMethods.ZSTD_createDCtx();
        }
コード例 #2
0
        public void CheckLibrary_ValidLibrary_NoExceptionThrown()
        {
            var ex = Record.Exception(() =>
            {
                LibraryUtilities.CheckLibrary();
            });

            Assert.Null(ex);
        }
コード例 #3
0
ファイル: Zlib.cs プロジェクト: zhouhufeng/Nirvana
 /// <summary>
 /// constructor
 /// </summary>
 public Zlib(int compressionLevel = 1)
 {
     _compressionLevel = compressionLevel;
     LibraryUtilities.CheckLibrary();
 }
コード例 #4
0
 public Zstandard(int compressionLevel = 17)
 {
     _compressionLevel = compressionLevel;
     LibraryUtilities.CheckLibrary();
 }
コード例 #5
0
ファイル: QuickLZ.cs プロジェクト: zhouhufeng/Nirvana
 /// <summary>
 /// constructor
 /// </summary>
 public QuickLZ()
 {
     LibraryUtilities.CheckLibrary();
 }
コード例 #6
0
        public Library(string path)
        {
            if (string.Equals("$(Default)", path, StringComparison.OrdinalIgnoreCase))
            {
                path = LibraryManager.DefaultX64;
            }

            if (string.IsNullOrWhiteSpace(path))
            {
                Error = $"Argument is null or empty: {nameof(path)}";
                return;
            }

            if (!Directory.Exists(path))
            {
                Error = $"Directory is not exists: {path}";
                return;
            }

            LibraryPath = path;

            AvailableLibraries = LibraryUtilities.FindAvailableFiles(path, LibrariesSubFolders, "*.lib");
            if (!AvailableLibraries.Any())
            {
                Error = "Libraries are not found";
                return;
            }

            VersionShort       = FindVersion(AvailableLibraries);
            AvailableLibraries = LibraryUtilities.FindAvailableFiles(path, LibrariesSubFolders, $"*{VersionShort}.lib");
            if (!AvailableLibraries.Any())
            {
                Error = "Libraries are not found";
                return;
            }

            LibrariesPath    = Path.GetDirectoryName(AvailableLibraries.First());
            Version          = ToFullVersion(VersionShort);
            AvailableModules = AvailableLibraries.Select(GetName).ToList();
            if (!AvailableModules.Any())
            {
                Error = "Modules are not found";
                return;
            }

            AvailableDlls = LibraryUtilities.FindAvailableFiles(path, DllSubFolders, $"*{VersionShort}.dll");
            if (!AvailableDlls.Any())
            {
                Error = "Dlls are not found";
                return;
            }
            Is64Bit  = FindIs64Bit(AvailableDlls);
            DllsPath = Path.GetDirectoryName(AvailableDlls.First());

            AvailableHeaders = LibraryUtilities.FindAvailableFiles(path, IncludeSubFolders, "*.hpp");
            if (!AvailableHeaders.Any())
            {
                Error = "Headers are not found";
                return;
            }
            HeadersPath = Path.GetDirectoryName(Path.GetDirectoryName(AvailableHeaders.First()));

            IsAvailable   = true;
            AvailableExes = LibraryUtilities.FindAvailableFiles(path, DllSubFolders, "*.exe");
            if (!AvailableExes.Any())
            {
                return;
            }

            ExesPath = Path.GetDirectoryName(AvailableExes.First());
        }