com.gemstone.gemfire.internal.cache.versions.DiskRegionVersionVector Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gemfire-core Show documentation
Show all versions of gemfire-core Show documentation
SnappyData store based off Pivotal GemFireXD
The newest version!
/*
* Copyright (c) 2010-2015 Pivotal Software, 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
*
* http://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. See accompanying
* LICENSE file.
*/
package com.gemstone.gemfire.internal.cache.versions;
import com.gemstone.gemfire.internal.cache.persistence.DiskStoreID;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.concurrent.ConcurrentHashMap;
/**
* A region version vector for regions with persistent data. This region
* version vector uses the persistent disk store UUID as the member id.
* @author dsmith
*
*/
public class DiskRegionVersionVector extends RegionVersionVector {
/** for deserialization */
public DiskRegionVersionVector() throws IOException, ClassNotFoundException {
super();
}
public DiskRegionVersionVector(DiskStoreID ownerId) {
super(ownerId);
}
@Override
public void recordVersion(DiskStoreID member, long version) {
//TODO - RVV - This is a temporary check to make sure we get
//an exception if we try to add a non disk store id to this vector
super.recordVersion(member, version);
}
@Override
public void recordGCVersion(DiskStoreID mbr, long regionVersion) {
//TODO - RVV - This is a temporary check to make sure we get
//an exception if we try to add a non disk store id to this vector
super.recordGCVersion(mbr, regionVersion);
}
public DiskRegionVersionVector(DiskStoreID ownerId,
ConcurrentHashMap> vector, long version,
ConcurrentHashMap gcVersions, long gcVersion,
boolean singleMember,
RegionVersionHolder localExceptions) {
super(ownerId, vector, version, gcVersions, gcVersion, singleMember,
localExceptions);
}
@Override
protected RegionVersionVector createCopy(DiskStoreID ownerId,
ConcurrentHashMap> vector, long version,
ConcurrentHashMap gcVersions, long gcVersion,
boolean singleMember,
RegionVersionHolder localExceptions) {
return new DiskRegionVersionVector(ownerId, vector, version,
gcVersions, gcVersion, singleMember, localExceptions);
}
@Override
protected void writeMember(DiskStoreID member, DataOutput out) throws IOException {
out.writeLong(member.getMostSignificantBits());
out.writeLong(member.getLeastSignificantBits());
}
@Override
protected DiskStoreID readMember(DataInput in) throws IOException {
long mostSignificantBits = in.readLong();
long leastSignificantBits = in.readLong();
DiskStoreID member = new DiskStoreID(mostSignificantBits, leastSignificantBits);
return member;
}
@Override
public int getDSFID() {
return PERSISTENT_RVV;
}
}