Hazelcast C++ Client
Hazelcast C++ Client Library
item_event.h
1 /*
2  * Copyright (c) 2008-2022, Hazelcast, Inc. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #pragma once
17 
18 #include "hazelcast/client/member.h"
19 
20 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
21 #pragma warning(push)
22 #pragma warning(disable : 4251) // for dll export
23 #endif
24 
25 namespace hazelcast {
26 namespace client {
30 enum struct HAZELCAST_API item_event_type
31 {
32  ADDED = 1,
33  REMOVED = 2
34 };
35 
36 class HAZELCAST_API item_event_base
37 {
38 public:
39  item_event_base(const std::string& name,
40  const member& member,
41  const item_event_type& event_type);
42 
43  virtual ~item_event_base();
44 
50  const member& get_member() const;
51 
57  item_event_type get_event_type() const;
58 
64  const std::string& get_name() const;
65 
66 private:
67  std::string name_;
68  member member_;
69  item_event_type event_type_;
70 };
71 
78 class HAZELCAST_API item_event : public item_event_base
79 {
80 public:
81  item_event(const std::string& name,
82  item_event_type event_type,
83  typed_data&& item,
84  const member& member)
85  : item_event_base(name, member, event_type)
86  , item_(item)
87  {}
88 
92  const typed_data& get_item() const { return item_; }
93 
94 private:
95  typed_data item_;
96 };
97 } // namespace client
98 } // namespace hazelcast
99 
100 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
101 #pragma warning(pop)
102 #endif
const typed_data & get_item() const
Definition: item_event.h:92
hz_cluster member class.
Definition: member.h:62
typed_data class is a wrapper class for the serialized binary data.