00001 #ifndef _broker_MessageAdapter_h
00002 #define _broker_MessageAdapter_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string>
00026 #include "qpid/framing/FieldTable.h"
00027 #include "qpid/framing/FrameSet.h"
00028
00029 namespace qpid {
00030 namespace broker {
00031
00032
00033 struct MessageAdapter
00034 {
00035 virtual ~MessageAdapter() {}
00036
00037 virtual std::string getRoutingKey(const framing::FrameSet& f) = 0;
00038 virtual std::string getExchange(const framing::FrameSet& f) = 0;
00039 virtual bool isImmediate(const framing::FrameSet& f) = 0;
00040 virtual const framing::FieldTable* getApplicationHeaders(const framing::FrameSet& f) = 0;
00041 virtual bool isPersistent(const framing::FrameSet& f) = 0;
00042 virtual bool requiresAccept(const framing::FrameSet& f) = 0;
00043 };
00044
00045 struct TransferAdapter : MessageAdapter
00046 {
00047 virtual std::string getRoutingKey(const framing::FrameSet& f);
00048 virtual std::string getExchange(const framing::FrameSet& f);
00049 virtual const framing::FieldTable* getApplicationHeaders(const framing::FrameSet& f);
00050 virtual bool isPersistent(const framing::FrameSet& f);
00051 bool isImmediate(const framing::FrameSet&);
00052 bool requiresAccept(const framing::FrameSet& f);
00053 };
00054
00055 }}
00056
00057
00058 #endif