1// RequestConnection.h 2 3#ifndef NET_FS_REQUEST_CONNECTION_H 4#define NET_FS_REQUEST_CONNECTION_H 5 6#include <SupportDefs.h> 7 8class Connection; 9class Request; 10class RequestHandler; 11 12class RequestConnection { 13public: 14 RequestConnection(Connection* connection, 15 RequestHandler* requestHandler, 16 bool ownsRequestHandler = false); 17 ~RequestConnection(); 18 19 status_t Init(); 20 21 void Close(); 22 23 status_t SendRequest(Request* request, 24 Request** reply = NULL); 25 status_t SendRequest(Request* request, 26 RequestHandler* replyHandler); 27private: 28 class DownStreamThread; 29 friend class DownStreamThread; 30 31private: 32 bool DownStreamChannelError(DownStreamThread* thread, 33 status_t error); 34 35 status_t _SendRequest(Request* request, Request** reply, 36 RequestHandler* replyHandler); 37 38private: 39 Connection* fConnection; 40 RequestHandler* fRequestHandler; 41 bool fOwnsRequestHandler; 42 DownStreamThread* fThreads; 43 int32 fThreadCount; 44 int32 fTerminationCount; 45}; 46 47#endif // NET_FS_REQUEST_CONNECTION_H 48