com.staros.filecache.FileCache Maven / Gradle / Ivy
// Copyright 2021-present StarRocks, Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.staros.filecache;
import com.staros.proto.FileCacheInfo;
// FileCache is cache unit for one shard
public class FileCache {
private FileCacheProperty cacheProperty;
public FileCache() {
this.cacheProperty = new FileCacheProperty();
}
public FileCache(FileCacheProperty cacheProperty) {
this.cacheProperty = cacheProperty;
}
public FileCacheInfo toProtobuf() {
FileCacheInfo.Builder builder = FileCacheInfo.newBuilder();
builder.setEnableCache(cacheProperty.enableCache());
builder.setTtlSeconds(cacheProperty.ttlSec());
builder.setAsyncWriteBack(cacheProperty.asyncWriteBack());
return builder.build();
}
public static FileCache fromProtobuf(FileCacheInfo cacheInfo) {
boolean enableCache = cacheInfo.getEnableCache();
long ttlSec = cacheInfo.getTtlSeconds();
boolean asyncWriteBack = cacheInfo.getAsyncWriteBack();
FileCacheProperty property = new FileCacheProperty(enableCache, ttlSec, asyncWriteBack);
return new FileCache(property);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy