1/*
2 * Copyright 2012 Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Pawe�� Dziepak, pdziepak@quarnos.org
7 */
8#ifndef RPCCALLBACKREQUEST_H
9#define RPCCALLBACKREQUEST_H
10
11
12#include "RPCDefs.h"
13#include "XDR.h"
14
15
16namespace RPC {
17
18class CallbackRequest {
19public:
20								CallbackRequest(void* buffer, int size);
21								~CallbackRequest();
22
23	inline	uint32				XID();
24	inline	uint32				ID();
25
26	inline	uint32				Procedure();
27
28	inline	status_t			Error();
29	inline	AcceptStat			RPCError();
30
31	inline	XDR::ReadStream&	Stream();
32
33private:
34			uint32				fXID;
35			uint32				fID;
36
37			uint32				fProcedure;
38
39			status_t			fError;
40			AcceptStat			fRPCError;
41
42			XDR::ReadStream		fStream;
43			void*				fBuffer;
44};
45
46
47inline uint32
48CallbackRequest::XID()
49{
50	return fXID;
51}
52
53
54inline uint32
55CallbackRequest::ID()
56{
57	return fID;
58}
59
60
61inline uint32
62CallbackRequest::Procedure()
63{
64	return fProcedure;
65}
66
67
68inline status_t
69CallbackRequest::Error()
70{
71	return fError;
72}
73
74
75inline AcceptStat
76CallbackRequest::RPCError()
77{
78	return fRPCError;
79}
80
81
82inline XDR::ReadStream&
83CallbackRequest::Stream()
84{
85	return fStream;
86}
87
88
89}		// namespace RPC
90
91
92#endif	// RPCCALLBACKREQUEST_H
93
94