FakeOTReceiver.java 815 B

123456789101112131415161718192021222324252627282930313233
  1. // Copyright (C) 2013 by Yan Huang <yhuang@cs.umd.edu>
  2. // Improved by Xiao Shaun Wang <wangxiao@cs.umd.edu>
  3. package com.oblivm.backend.ot;
  4. import com.oblivm.backend.gc.GCSignal;
  5. import com.oblivm.backend.network.Network;
  6. public class FakeOTReceiver extends OTReceiver {
  7. public FakeOTReceiver(Network channel) {
  8. super(channel);
  9. }
  10. @Override
  11. public GCSignal receive(boolean c) {
  12. GCSignal[] m = new GCSignal[2];
  13. m[0] = GCSignal.receive(channel);
  14. m[1] = GCSignal.receive(channel);
  15. return m[c ? 1 : 0];
  16. }
  17. @Override
  18. public GCSignal[] receive(boolean[] c) {
  19. GCSignal[] res = new GCSignal[c.length];
  20. for (int i = 0; i < c.length; i++) {
  21. GCSignal[] m = new GCSignal[2];
  22. m[0] = GCSignal.receive(channel);
  23. m[1] = GCSignal.receive(channel);
  24. res[i] = m[c[i] ? 1 : 0];
  25. }
  26. return res;
  27. }
  28. }