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 REQUESTINTERPRETER_H 94a153753SPawel Dziepak #define REQUESTINTERPRETER_H 104a153753SPawel Dziepak 114a153753SPawel Dziepak 124a153753SPawel Dziepak #include <SupportDefs.h> 134a153753SPawel Dziepak 144a153753SPawel Dziepak #include "FileInfo.h" 154a153753SPawel Dziepak #include "NFS4Defs.h" 164a153753SPawel Dziepak #include "RPCCallbackRequest.h" 174a153753SPawel Dziepak 184a153753SPawel Dziepak 194a153753SPawel Dziepak class RequestInterpreter { 204a153753SPawel Dziepak public: 214a153753SPawel Dziepak RequestInterpreter(RPC::CallbackRequest* request); 224a153753SPawel Dziepak ~RequestInterpreter(); 234a153753SPawel Dziepak 244a153753SPawel Dziepak inline uint32 OperationCount(); 254a153753SPawel Dziepak inline uint32 Operation(); 264a153753SPawel Dziepak 27*224d6022SPawel Dziepak status_t GetAttr(FileHandle* handle, int* mask); 284a153753SPawel Dziepak status_t Recall(FileHandle* handle, bool& truncate, 294a153753SPawel Dziepak uint32* stateSeq, uint32* stateID); 304a153753SPawel Dziepak 314a153753SPawel Dziepak private: 324a153753SPawel Dziepak uint32 fOperationCount; 334a153753SPawel Dziepak uint32 fLastOperation; 344a153753SPawel Dziepak 354a153753SPawel Dziepak RPC::CallbackRequest* fRequest; 364a153753SPawel Dziepak }; 374a153753SPawel Dziepak 384a153753SPawel Dziepak 394a153753SPawel Dziepak inline uint32 OperationCount()404a153753SPawel DziepakRequestInterpreter::OperationCount() 414a153753SPawel Dziepak { 424a153753SPawel Dziepak return fOperationCount; 434a153753SPawel Dziepak } 444a153753SPawel Dziepak 454a153753SPawel Dziepak 464a153753SPawel Dziepak inline uint32 Operation()474a153753SPawel DziepakRequestInterpreter::Operation() 484a153753SPawel Dziepak { 494a153753SPawel Dziepak fLastOperation = fRequest->Stream().GetUInt(); 504a153753SPawel Dziepak return fLastOperation; 514a153753SPawel Dziepak } 524a153753SPawel Dziepak 534a153753SPawel Dziepak 544a153753SPawel Dziepak #endif // REQUESTINTERPRETER_H 554a153753SPawel Dziepak 56