Hazelcast C++ Client
Hazelcast C++ Client Library
item_event.h
1 /*
2  * Copyright (c) 2008-2021, 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  ADDED = 1, REMOVED = 2
32  };
33 
34  class HAZELCAST_API item_event_base {
35  public:
36  item_event_base(const std::string &name, const member &member, const item_event_type &event_type);
37 
38  virtual ~item_event_base();
39 
45  const member &get_member() const;
46 
52  item_event_type get_event_type() const;
53 
59  const std::string &get_name() const;
60 
61  private:
62  std::string name_;
63  member member_;
64  item_event_type event_type_;
65  };
66 
73  class HAZELCAST_API item_event : public item_event_base {
74  public:
75  item_event(const std::string &name, item_event_type event_type, typed_data &&item, const member &member)
76  : item_event_base(name, member, event_type), item_(item) {}
77 
81  const typed_data &get_item() const {
82  return item_;
83  }
84 
85  private:
86  typed_data item_;
87  };
88  }
89 }
90 
91 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
92 #pragma warning(pop)
93 #endif
94 
const typed_data & get_item() const
Definition: item_event.h:81
hz_cluster member class.
Definition: member.h:39
typed_data class is a wrapper class for the serialized binary data.