~robertcarr/mir/client-focus-notifications

« back to all changes in this revision

Viewing changes to src/server/frontend/message_processor.h

  • Committer: Robert Carr
  • Date: 2013-08-01 22:01:20 UTC
  • mfrom: (706.2.208 trunk)
  • Revision ID: robert.carr@canonical.com-20130801220120-6m230b3g6x0xflzd
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 * Authored by: Alan Griffiths <alan@octopull.co.uk>
17
17
 */
18
18
 
19
 
 
20
19
#ifndef MIR_FRONTEND_MESSAGE_PROCESSOR_H_
21
20
#define MIR_FRONTEND_MESSAGE_PROCESSOR_H_
22
21
 
23
 
#include <vector>
24
 
#include <memory>
25
22
#include <iosfwd>
26
 
#include <cstdint>
27
 
 
28
 
#include <sys/types.h>
29
23
 
30
24
namespace mir
31
25
{
33
27
{
34
28
namespace detail
35
29
{
36
 
struct MessageSender
37
 
{
38
 
    virtual void send(std::string const& body) = 0;
39
 
    virtual void send_fds(std::vector<int32_t> const& fd) = 0;
40
 
 
41
 
    virtual pid_t client_pid() = 0;
42
 
protected:
43
 
    MessageSender() = default;
44
 
    virtual ~MessageSender() { /* TODO: make nothrow */ }
45
 
    MessageSender(MessageSender const&) = delete;
46
 
    MessageSender& operator=(MessageSender const&) = delete;
47
 
};
48
 
 
49
 
struct MessageProcessor
50
 
{
 
30
 
 
31
class MessageProcessor
 
32
{
 
33
public:
51
34
    virtual bool process_message(std::istream& msg) = 0;
52
35
protected:
53
36
    MessageProcessor() = default;
56
39
    MessageProcessor& operator=(MessageProcessor const&) = delete;
57
40
};
58
41
 
59
 
struct NullMessageProcessor : MessageProcessor
 
42
class NullMessageProcessor : MessageProcessor
60
43
{
 
44
public:
61
45
    bool process_message(std::istream&);
62
46
};
63
47
 
64
48
}
65
49
}
66
50
}
67
 
 
68
 
 
69
 
 
70
51
#endif /* PROTOBUF_MESSAGE_PROCESSOR_H_ */