aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/EmExgMgr.h
blob: 4783bccdff63325773a4316d023ad2594c79d89b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* -*- mode: C++; tab-width: 4 -*- */
/* ===================================================================== *\
	Copyright (c) 2000-2001 Palm, Inc. or its subsidiaries.
	All rights reserved.

	This file is part of the Palm OS Emulator.

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.
\* ===================================================================== */

#ifndef EmExgMgr_h
#define EmExgMgr_h

#include <string>

class EmFileImport;
class EmStream;

class EmExgMgr
{
	public:
								EmExgMgr			(void);
		virtual					~EmExgMgr			(void);

		static EmExgMgr*		GetExgMgr			(UInt16 libRefNum);

	public:
		virtual Err				ExgLibOpen			(UInt16 libRefNum) = 0;
		virtual Err				ExgLibClose			(UInt16 libRefNum) = 0;
		virtual Err				ExgLibSleep			(UInt16 libRefNum) = 0;
		virtual Err				ExgLibWake			(UInt16 libRefNum) = 0;
		virtual Boolean			ExgLibHandleEvent	(UInt16 libRefNum, emuptr eventP) = 0;
		virtual Err				ExgLibConnect		(UInt16 libRefNum, emuptr exgSocketP) = 0;
		virtual Err				ExgLibAccept		(UInt16 libRefNum, emuptr exgSocketP) = 0;
		virtual Err				ExgLibDisconnect	(UInt16 libRefNum, emuptr exgSocketP, Err error) = 0;
		virtual Err				ExgLibPut			(UInt16 libRefNum, emuptr exgSocketP) = 0;
		virtual Err				ExgLibGet			(UInt16 libRefNum, emuptr exgSocketP) = 0;
		virtual UInt32			ExgLibSend			(UInt16 libRefNum, emuptr exgSocketP, void* bufP, const UInt32 bufLen, Err* errP) = 0;
		virtual UInt32			ExgLibReceive		(UInt16 libRefNum, emuptr exgSocketP, void* bufP, const UInt32 bufLen, Err* errP) = 0;
		virtual Err				ExgLibControl		(UInt16 libRefNum, UInt16 op, emuptr valueP, emuptr valueLenP) = 0;
		virtual Err				ExgLibRequest		(UInt16 libRefNum, emuptr exgSocketP) = 0;
};


class EmExgMgrStream : public EmExgMgr
{
	public:
								EmExgMgrStream		(EmStream&);
		virtual					~EmExgMgrStream		(void);

	public:
		virtual Err				ExgLibOpen			(UInt16 libRefNum);
		virtual Err				ExgLibClose			(UInt16 libRefNum);
		virtual Err				ExgLibSleep			(UInt16 libRefNum);
		virtual Err				ExgLibWake			(UInt16 libRefNum);
		virtual Boolean			ExgLibHandleEvent	(UInt16 libRefNum, emuptr eventP);
		virtual Err				ExgLibConnect		(UInt16 libRefNum, emuptr exgSocketP);
		virtual Err				ExgLibAccept		(UInt16 libRefNum, emuptr exgSocketP);
		virtual Err				ExgLibDisconnect	(UInt16 libRefNum, emuptr exgSocketP,Err error);
		virtual Err				ExgLibPut			(UInt16 libRefNum, emuptr exgSocketP);
		virtual Err				ExgLibGet			(UInt16 libRefNum, emuptr exgSocketP);
		virtual UInt32			ExgLibSend			(UInt16 libRefNum, emuptr exgSocketP, void* bufP, const UInt32 bufLen, Err* errP);
		virtual UInt32			ExgLibReceive		(UInt16 libRefNum, emuptr exgSocketP, void* bufP, const UInt32 bufLen, Err* errP);
		virtual Err				ExgLibControl		(UInt16 libRefNum, UInt16 op, emuptr valueP, emuptr valueLenP);
		virtual Err				ExgLibRequest		(UInt16 libRefNum, emuptr exgSocketP);

	private:
		EmStream&				fStream;
		string					fFileName;
};


class EmExgMgrImportWrapper : public EmExgMgr
{
	public:
								EmExgMgrImportWrapper	(EmExgMgr&, EmFileImport&);
		virtual					~EmExgMgrImportWrapper	(void);

		void					Cancel				(void);

	public:
		virtual Err				ExgLibOpen			(UInt16 libRefNum);
		virtual Err				ExgLibClose			(UInt16 libRefNum);
		virtual Err				ExgLibSleep			(UInt16 libRefNum);
		virtual Err				ExgLibWake			(UInt16 libRefNum);
		virtual Boolean			ExgLibHandleEvent	(UInt16 libRefNum, emuptr eventP);
		virtual Err				ExgLibConnect		(UInt16 libRefNum, emuptr exgSocketP);
		virtual Err				ExgLibAccept		(UInt16 libRefNum, emuptr exgSocketP);
		virtual Err				ExgLibDisconnect	(UInt16 libRefNum, emuptr exgSocketP, Err error);
		virtual Err				ExgLibPut			(UInt16 libRefNum, emuptr exgSocketP);
		virtual Err				ExgLibGet			(UInt16 libRefNum, emuptr exgSocketP);
		virtual UInt32			ExgLibSend			(UInt16 libRefNum, emuptr exgSocketP, void* bufP, const UInt32 bufLen, Err* errP);
		virtual UInt32			ExgLibReceive		(UInt16 libRefNum, emuptr exgSocketP, void* bufP, const UInt32 bufLen, Err* errP);
		virtual Err				ExgLibControl		(UInt16 libRefNum, UInt16 op, emuptr valueP, emuptr valueLenP);
		virtual Err				ExgLibRequest		(UInt16 libRefNum, emuptr exgSocketP);

	private:
		EmExgMgr&				fExgMgr;
		EmFileImport&			fImporter;
		Bool					fAborting;
};

#endif	// EmExgMgr_h