Nfsv4FullEncoder.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.Nfsv4FullEncoder = void 0;
  4. const Writer_1 = require("@jsonjoy.com/buffers/lib/Writer");
  5. const Nfsv4Encoder_1 = require("./Nfsv4Encoder");
  6. const RpcMessageEncoder_1 = require("../../rpc/RpcMessageEncoder");
  7. const RmRecordEncoder_1 = require("../../rm/RmRecordEncoder");
  8. class Nfsv4FullEncoder {
  9. constructor(writer = new Writer_1.Writer()) {
  10. this.writer = writer;
  11. this.nfsEncoder = new Nfsv4Encoder_1.Nfsv4Encoder(writer);
  12. this.rpcEncoder = new RpcMessageEncoder_1.RpcMessageEncoder(writer);
  13. this.rmEncoder = new RmRecordEncoder_1.RmRecordEncoder(writer);
  14. this.xdr = this.nfsEncoder.xdr;
  15. }
  16. encodeCall(xid, proc, cred, verf, request) {
  17. this.writeCall(xid, proc, cred, verf, request);
  18. return this.writer.flush();
  19. }
  20. writeCall(xid, proc, cred, verf, request) {
  21. const rm = this.rmEncoder;
  22. const state = rm.startRecord();
  23. this.rpcEncoder.writeCall(xid, 100003, 4, proc, cred, verf);
  24. this.nfsEncoder.writeCompound(request, true);
  25. rm.endRecord(state);
  26. }
  27. encodeAcceptedCompoundReply(xid, proc, verf, response) {
  28. this.writeAcceptedCompoundReply(xid, verf, response);
  29. return this.writer.flush();
  30. }
  31. writeAcceptedCompoundReply(xid, verf, compound) {
  32. const rm = this.rmEncoder;
  33. const state = rm.startRecord();
  34. this.rpcEncoder.writeAcceptedReply(xid, verf, 0);
  35. compound.encode(this.xdr);
  36. rm.endRecord(state);
  37. }
  38. encodeRejectedReply(xid, rejectStat, mismatchInfo, authStat) {
  39. this.writeRejectedReply(xid, rejectStat, mismatchInfo, authStat);
  40. return this.writer.flush();
  41. }
  42. writeRejectedReply(xid, rejectStat, mismatchInfo, authStat) {
  43. const rm = this.rmEncoder;
  44. const state = rm.startRecord();
  45. this.rpcEncoder.writeRejectedReply(xid, rejectStat, mismatchInfo, authStat);
  46. rm.endRecord(state);
  47. }
  48. encodeCbCall(xid, cbProgram, proc, cred, verf, request) {
  49. this.writeCbCall(xid, cbProgram, proc, cred, verf, request);
  50. return this.writer.flush();
  51. }
  52. writeCbCall(xid, cbProgram, proc, cred, verf, request) {
  53. const rm = this.rmEncoder;
  54. const state = rm.startRecord();
  55. this.rpcEncoder.writeCall(xid, cbProgram, 4, proc, cred, verf);
  56. this.nfsEncoder.writeCbCompound(request, true);
  57. rm.endRecord(state);
  58. }
  59. encodeCbAcceptedReply(xid, proc, verf, response) {
  60. this.writeCbAcceptedReply(xid, proc, verf, response);
  61. return this.writer.flush();
  62. }
  63. writeCbAcceptedReply(xid, proc, verf, response) {
  64. const rm = this.rmEncoder;
  65. const state = rm.startRecord();
  66. this.rpcEncoder.writeAcceptedReply(xid, verf, 0);
  67. this.nfsEncoder.writeCbCompound(response, false);
  68. rm.endRecord(state);
  69. }
  70. }
  71. exports.Nfsv4FullEncoder = Nfsv4FullEncoder;
  72. //# sourceMappingURL=Nfsv4FullEncoder.js.map