📄 replicationstaticslavestorageimpl.java
字号:
package org.garret.perst.impl;
import java.io.*;
import java.net.*;
import org.garret.perst.*;
public class ReplicationStaticSlaveStorageImpl extends ReplicationSlaveStorageImpl
{
public ReplicationStaticSlaveStorageImpl(int port) {
this.port = port;
}
public void open(IFile file, int pagePoolSize) {
try {
acceptor = new ServerSocket(port);
} catch (IOException x) {
throw new StorageError(StorageError.BAD_REPLICATION_PORT);
}
byte[] rootPage = new byte[Page.pageSize];
int rc = file.read(0, rootPage);
if (rc == Page.pageSize) {
prevIndex = rootPage[DB_HDR_CURR_INDEX_OFFSET];
initialized = rootPage[DB_HDR_INITIALIZED_OFFSET] != 0;
} else {
initialized = false;
prevIndex = -1;
}
outOfSync = false;
super.open(file, pagePoolSize);
}
Socket getSocket() throws IOException {
return acceptor.accept();
}
// Cancel accept
void cancelIO() {
try {
Socket s = new Socket("localhost", port);
s.close();
} catch (IOException x) {}
}
protected ServerSocket acceptor;
protected int port;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -