/[resiprocate]/main/resip/dum/DumFeature.hxx
ViewVC logotype

Contents of /main/resip/dum/DumFeature.hxx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7081 - (show annotations) (download)
Tue Apr 17 14:46:38 2007 UTC (12 years, 7 months ago) by bcampen
File MIME type: text/plain
File size: 1463 byte(s)
Reverting rev 7077 until it can get some review.
1 #ifndef RESIP_DumFeature_HXX
2 #define RESIP_DumFeature_HXX
3
4 #include <memory>
5 #include "resip/dum/TargetCommand.hxx"
6
7 namespace resip
8 {
9
10 class DialogUsageManager;
11 class Message;
12
13 class DumFeature
14 {
15 public:
16 DumFeature(DialogUsageManager& dum, TargetCommand::Target& target);
17 virtual ~DumFeature();
18
19 enum ProcessingResultMask
20 {
21 EventDoneBit = 1 << 0,
22 EventTakenBit = 1 << 1,
23 FeatureDoneBit = 1 << 2,
24 ChainDoneBit = 1 << 3
25 };
26
27 //legal combinations
28 enum ProcessingResult
29 {
30 EventTaken = EventTakenBit,
31 FeatureDone = FeatureDoneBit,
32 FeatureDoneAndEventDone = FeatureDoneBit | EventDoneBit,
33 FeatureDoneAndEventTaken = FeatureDoneBit | EventTakenBit,
34 ChainDoneAndEventDone = ChainDoneBit | EventDoneBit,
35 ChainDoneAndEventTaken = ChainDoneBit | EventTakenBit
36 };
37
38 // !bwc! We absolutely, positively, MUST NOT throw here. This is because
39 // in DialogUsageManager::process(), we do not know if a DumFeature has
40 // taken ownership of msg until we get a return. If we throw, the
41 // ownership of msg is unknown. This is unacceptable.
42 virtual ProcessingResult process(Message* msg) = 0;
43 virtual void postCommand(std::auto_ptr<Message> message);
44
45 protected:
46 DialogUsageManager& mDum;
47 TargetCommand::Target& mTarget;
48 };
49
50 }
51
52 #endif

Properties

Name Value
svn:eol-style native
svn:mime-type text/plain

webmaster AT resiprocate DOT org
ViewVC Help
Powered by ViewVC 1.1.27