1// RequestHandler.cpp
2
3#include "Compatibility.h"
4#include "RequestHandler.h"
5
6// constructor
7RequestHandler::RequestHandler()
8	: RequestVisitor(),
9	  fChannels()
10{
11}
12
13// destructor
14RequestHandler::~RequestHandler()
15{
16}
17
18// HandleRequest
19status_t
20RequestHandler::HandleRequest(Request* request, RequestChannel* channel)
21{
22	if (!request)
23		return B_BAD_VALUE;
24	status_t error = fChannels.Set(channel);
25	if (error != B_OK)
26		return error;
27	ThreadLocalUnsetter _(fChannels);
28	return request->Accept(this);
29}
30
31// VisitAny
32status_t
33RequestHandler::VisitAny(Request* request)
34{
35	// unexpected request
36	return B_BAD_DATA;
37}
38
39// GetChannel
40RequestChannel*
41RequestHandler::GetChannel() const
42{
43	return (RequestChannel*)fChannels.Get();
44}
45
46