1// PortChannel.h
2
3#ifndef NET_FS_PORT_CHANNEL_H
4#define NET_FS_PORT_CHANNEL_H
5
6#include <OS.h>
7
8#include "Channel.h"
9
10class PortChannel : public Channel {
11public:
12	struct Info {
13		port_id	sendPort;
14		port_id	receivePort;
15	};
16
17public:
18								PortChannel();
19								PortChannel(const Info* info, bool inverse);
20								PortChannel(port_id sendPort,
21									port_id receivePort);
22	virtual						~PortChannel();
23
24			status_t			InitCheck() const;
25			void				GetInfo(Info* info) const;
26
27	virtual	void				Close();
28
29	virtual	status_t			Send(const void* buffer, int32 size);
30	virtual	status_t			Receive(void* buffer, int32 size);
31
32private:
33			port_id				fSendPort;
34			port_id				fReceivePort;
35			uint8*				fBuffer;
36			int32				fBufferSize;
37			int32				fBufferOffset;
38			int32				fBufferContentSize;
39};
40
41#endif	// NET_FS_PORT_CHANNEL_H
42