blob: eb2a99683a29bdb41001812928f3002010ba759b (
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
|
/* -*- mode: C++; tab-width: 4 -*- */
/* ===================================================================== *\
Copyright (c) 1998-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 EmAction_h
#define EmAction_h
#include "omnithread.h" // omni_mutex
#include <vector>
class EmAction;
typedef vector <EmAction*> EmActionList;
class EmAction
{
public:
EmAction (StrCode strCode) : fStrCode (strCode) {}
virtual ~EmAction (void) {}
virtual void Do (void) = 0;
StrCode GetDescription (void) const { return fStrCode; };
private:
StrCode fStrCode;
};
class EmActionComposite : public EmAction
{
public:
EmActionComposite (void);
virtual ~EmActionComposite (void);
virtual void Do (void);
void AddAction (EmAction*);
private:
EmActionList fActions;
};
class EmActionHandler
{
public:
EmActionHandler (void);
virtual ~EmActionHandler (void);
public:
void PostAction (EmAction*);
EmAction* GetNextAction (void);
void DoAll (void);
private:
void DeleteAll (void);
private:
omni_mutex fMutex;
EmActionList fActions;
};
#endif // EmAction
|