1// Sun, 18 Jun 2000
2// Y.Takagi
3
4#ifndef __LPSCLIENT_H
5#define __LPSCLIENT_H
6
7#include <iostream>
8#include <string>
9
10
11using namespace std;
12
13
14class Socket;
15
16
17class LPSException {
18public:
19					LPSException(const string& what)
20						:
21						fWhat(what)
22					{
23					}
24
25	const char *	what() const
26					{
27						return fWhat.c_str();
28					}
29
30private:
31	string fWhat;
32
33};
34
35
36class LpsClient {
37public:
38					LpsClient(const char* host);
39					~LpsClient();
40	void			connect() throw(LPSException);
41	void			close();
42	void			receiveJob(const char* queue) throw(LPSException);
43	void			receiveControlFile(int cfsize, const char* cfname)
44						throw(LPSException);
45	void			receiveDataFile(int dfsize, const char* dfname)
46						throw(LPSException);
47	void			transferData(const char* buffer, int size = -1)
48						throw(LPSException);
49	void			transferData(istream& is, int size = -1)
50						throw(LPSException);
51	void			endTransfer() throw(LPSException);
52	void			checkAck() throw(LPSException);
53
54private:
55	bool		fConnected;
56	string  	fHost;
57	Socket* 	fSock;
58	istream*	fInput;
59	ostream*	fOutput;
60};
61
62
63#endif	/* __LPSCLIENT_H */
64