blob: fe7405bb06824aaeb1fb2ac4cb8a3ff1e070f9a9 (
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
|
#ifndef _QMF_CONSOLE_EVENT_IMPL_H_
#define _QMF_CONSOLE_EVENT_IMPL_H_
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/RefCounted.h"
#include "qmf/ConsoleEvent.h"
#include "qmf/Agent.h"
#include "qmf/Data.h"
#include "qpid/types/Variant.h"
#include <list>
namespace qmf {
class ConsoleEventImpl : public virtual qpid::RefCounted {
public:
//
// Impl-only methods
//
ConsoleEventImpl(ConsoleEventCode e) : eventType(e), correlator(0), final(false) {}
void setCorrelator(uint32_t c) { correlator = c; }
void setAgent(const Agent& a) { agent = a; }
void addData(const Data& d) { dataList.push_back(Data(d)); }
void setFinal() { final = true; }
void setArguments(const qpid::types::Variant::Map& a) { arguments = a; }
//
// Methods from API handle
//
ConsoleEventCode getType() const { return eventType; }
uint32_t getCorrelator() const { return correlator; }
Agent getAgent() const { return agent; }
uint32_t getDataCount() const { return dataList.size(); }
Data getData(uint32_t i) const;
bool isFinal() const { return final; }
const qpid::types::Variant::Map& getArguments() const { return arguments; }
private:
const ConsoleEventCode eventType;
uint32_t correlator;
Agent agent;
bool final;
std::list<Data> dataList;
qpid::types::Variant::Map arguments;
};
struct ConsoleEventImplAccess
{
static ConsoleEventImpl& get(ConsoleEvent&);
static const ConsoleEventImpl& get(const ConsoleEvent&);
};
}
#endif
|