Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
JDChain
Bftsmart
提交
6772744f
B
Bftsmart
项目概览
JDChain
/
Bftsmart
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Bftsmart
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6772744f
编写于
1月 13, 2010
作者:
L
liquidsnake@sapo.pt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed some bugs located in the TransferableState class
上级
f351d8b0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
35 addition
and
15 deletion
+35
-15
src/navigators/smart/statemanagment/TransferableState.java
src/navigators/smart/statemanagment/TransferableState.java
+18
-5
src/navigators/smart/tom/core/TOMLayer.java
src/navigators/smart/tom/core/TOMLayer.java
+17
-10
未找到文件。
src/navigators/smart/statemanagment/TransferableState.java
浏览文件 @
6772744f
...
...
@@ -94,9 +94,18 @@ public class TransferableState implements Serializable {
public
boolean
equals
(
Object
obj
)
{
if
(
obj
instanceof
TransferableState
)
{
TransferableState
tState
=
(
TransferableState
)
obj
;
if
(
this
.
messageBatches
.
length
!=
tState
.
messageBatches
.
length
)
return
false
;
if
(
this
.
messageBatches
==
null
&&
tState
.
messageBatches
==
null
)
return
true
;
if
((
this
.
messageBatches
!=
null
&&
tState
.
messageBatches
==
null
)
||
(
this
.
messageBatches
==
null
&&
tState
.
messageBatches
!=
null
))
return
false
;
if
(
this
.
messageBatches
!=
null
&&
tState
.
messageBatches
!=
null
&&
this
.
messageBatches
.
length
!=
tState
.
messageBatches
.
length
)
return
false
;
for
(
int
i
=
0
;
i
<
this
.
messageBatches
.
length
;
i
++)
if
(!
Arrays
.
equals
(
this
.
messageBatches
[
i
],
tState
.
messageBatches
[
i
]))
return
false
;
return
(
Arrays
.
equals
(
this
.
state
,
tState
.
state
)
&&
tState
.
nextEid
==
this
.
nextEid
);
}
return
false
;
...
...
@@ -106,10 +115,14 @@ public class TransferableState implements Serializable {
public
int
hashCode
()
{
int
hash
=
1
;
hash
=
hash
*
31
+
this
.
nextEid
;
for
(
int
i
=
0
;
i
<
this
.
state
.
length
;
i
++)
hash
=
hash
*
31
+
(
int
)
this
.
state
[
i
];
for
(
int
i
=
0
;
i
<
this
.
messageBatches
.
length
;
i
++)
for
(
int
j
=
0
;
j
<
this
.
messageBatches
[
i
].
length
;
j
++)
hash
=
hash
*
31
+
(
int
)
this
.
messageBatches
[
i
][
j
];
if
(
this
.
state
!=
null
)
for
(
int
i
=
0
;
i
<
this
.
state
.
length
;
i
++)
hash
=
hash
*
31
+
(
int
)
this
.
state
[
i
];
else
hash
=
hash
*
31
+
0
;
if
(
this
.
messageBatches
!=
null
)
for
(
int
i
=
0
;
i
<
this
.
messageBatches
.
length
;
i
++)
for
(
int
j
=
0
;
j
<
this
.
messageBatches
[
i
].
length
;
j
++)
hash
=
hash
*
31
+
(
int
)
this
.
messageBatches
[
i
][
j
];
else
hash
=
hash
*
31
+
0
;
return
hash
;
}
}
src/navigators/smart/tom/core/TOMLayer.java
浏览文件 @
6772744f
...
...
@@ -973,22 +973,29 @@ public final class TOMLayer extends Thread implements RequestReceiver {
stateManager
.
addState
(
msg
.
getSender
(),
msg
.
getState
());
if
(
stateManager
.
moreThenF_Replies
())
{
/************************* TESTE *************************
System.out.println("Recebi um estado valido!");
System.out.println("Quem enviou: " + msg.getSender());
System.out.println("Que tipo: " + msg.getType());
System.out.println("Que EID pedido: " + msg.getEid());
System.out.println("Que EID do estado: " + msg.getState().getCurrentCheckpointEid());
System.exit(0);
/************************* TESTE *************************/
TransferableState
state
=
stateManager
.
getValidState
();
if
(
state
!=
null
)
{
stateManager
.
getLog
().
update
(
msg
.
getState
());
/************************* TESTE *************************
System.out.println("Tenho um estado valido!");
System.out.println("Estado pedido: " + msg.getEid());
System.out.println("EID do estado: " + state.getCurrentCheckpointEid());
System.out.println("Numero de batches: " + state.getMessageBatches().length);
int value = 0;
for (int i = 0; i < 4; i++) {
int shift = (4 - 1 - i) * 8;
value += (state.getState()[i] & 0x000000FF) << shift;
}
System.out.println("Valor do estado: " + value);
System.exit(0);
/************************* TESTE *************************/
//receiver.setState(state);
}
else
if
(
stateManager
.
getReplies
()
>=
(
2
*
conf
.
getF
()))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录