14a153753SPawel Dziepak /* 24a153753SPawel Dziepak * Copyright 2012 Haiku, Inc. All rights reserved. 34a153753SPawel Dziepak * Distributed under the terms of the MIT License. 44a153753SPawel Dziepak * 54a153753SPawel Dziepak * Authors: 64a153753SPawel Dziepak * Paweł Dziepak, pdziepak@quarnos.org 74a153753SPawel Dziepak */ 84a153753SPawel Dziepak #ifndef REPLYBUILDER_H 94a153753SPawel Dziepak #define REPLYBUILDER_H 104a153753SPawel Dziepak 114a153753SPawel Dziepak 124a153753SPawel Dziepak #include <SupportDefs.h> 134a153753SPawel Dziepak 144a153753SPawel Dziepak #include "RPCCallbackReply.h" 154a153753SPawel Dziepak #include "XDR.h" 164a153753SPawel Dziepak 174a153753SPawel Dziepak 184a153753SPawel Dziepak class ReplyBuilder { 194a153753SPawel Dziepak public: 204a153753SPawel Dziepak ReplyBuilder(uint32 xid); 214a153753SPawel Dziepak ~ReplyBuilder(); 224a153753SPawel Dziepak 234a153753SPawel Dziepak RPC::CallbackReply* Reply(); 244a153753SPawel Dziepak 25*224d6022SPawel Dziepak status_t GetAttr(status_t status, int mask, 26*224d6022SPawel Dziepak uint64 size, uint64 change); 274a153753SPawel Dziepak status_t Recall(status_t status); 284a153753SPawel Dziepak 294a153753SPawel Dziepak private: 304a153753SPawel Dziepak void _InitHeader(); 314a153753SPawel Dziepak 324a153753SPawel Dziepak static uint32 _HaikuErrorToNFS4(status_t error); 334a153753SPawel Dziepak 344a153753SPawel Dziepak status_t fStatus; 354a153753SPawel Dziepak XDR::Stream::Position fStatusPosition; 364a153753SPawel Dziepak 374a153753SPawel Dziepak uint32 fOpCount; 384a153753SPawel Dziepak XDR::Stream::Position fOpCountPosition; 394a153753SPawel Dziepak 404a153753SPawel Dziepak RPC::CallbackReply* fReply; 414a153753SPawel Dziepak }; 424a153753SPawel Dziepak 434a153753SPawel Dziepak 444a153753SPawel Dziepak #endif // REPLYBUILDER_H 454a153753SPawel Dziepak 46