Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Side by Side Diff: include/dbus-c++/object.h

Issue 6250197: Allow explicit object registration. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/dbus-cplusplus.git@master
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/object.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * 2 *
3 * D-Bus++ - C++ bindings for D-Bus 3 * D-Bus++ - C++ bindings for D-Bus
4 * 4 *
5 * Copyright (C) 2005-2007 Paolo Durante <shackan@gmail.com> 5 * Copyright (C) 2005-2007 Paolo Durante <shackan@gmail.com>
6 * 6 *
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public 9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 public: 45 public:
46 46
47 virtual ~Object(); 47 virtual ~Object();
48 48
49 inline const DBus::Path &path() const; 49 inline const DBus::Path &path() const;
50 50
51 inline const std::string &service() const; 51 inline const std::string &service() const;
52 52
53 inline Connection &conn(); 53 inline Connection &conn();
54 54
55 protected:
56 virtual void register_obj() = 0;
Jason Glasgow 2011/02/07 20:00:48 As discussed, exposing register_obj() does not rea
57 virtual void unregister_obj() = 0;
58 virtual bool is_registered() = 0;
59
55 private: 60 private:
56 61
57 DXXAPILOCAL virtual bool handle_message(const Message &) = 0; 62 DXXAPILOCAL virtual bool handle_message(const Message &) = 0;
58 DXXAPILOCAL virtual void register_obj() = 0;
59 DXXAPILOCAL virtual void unregister_obj() = 0;
60 63
61 private: 64 private:
62 65
63 Connection _conn; 66 Connection _conn;
64 DBus::Path _path; 67 DBus::Path _path;
65 std::string _service; 68 std::string _service;
66 }; 69 };
67 70
68 /* 71 /*
69 */ 72 */
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 }; 147 };
145 148
146 void return_later(const Tag *tag); 149 void return_later(const Tag *tag);
147 150
148 void return_now(Continuation *ret); 151 void return_now(Continuation *ret);
149 152
150 void return_error(Continuation *ret, const Error error); 153 void return_error(Continuation *ret, const Error error);
151 154
152 Continuation *find_continuation(const Tag *tag); 155 Continuation *find_continuation(const Tag *tag);
153 156
157 virtual void register_obj();
158 virtual void unregister_obj();
159 virtual bool is_registered();
160
154 private: 161 private:
155 162
156 void _emit_signal(SignalMessage &); 163 void _emit_signal(SignalMessage &);
157 164
158 bool handle_message(const Message &); 165 bool handle_message(const Message &);
159 166
160 void register_obj();
161 void unregister_obj();
162
163 typedef std::map<const Tag *, Continuation *> ContinuationMap; 167 typedef std::map<const Tag *, Continuation *> ContinuationMap;
164 ContinuationMap _continuations; 168 ContinuationMap _continuations;
165 169
166 friend struct Private; 170 friend struct Private;
167 }; 171 };
168 172
169 const ObjectAdaptor *ObjectAdaptor::object() const 173 const ObjectAdaptor *ObjectAdaptor::object() const
170 { 174 {
171 return this; 175 return this;
172 } 176 }
(...skipping 26 matching lines...) Expand all
199 inline const ObjectProxy *object() const; 203 inline const ObjectProxy *object() const;
200 204
201 private: 205 private:
202 206
203 Message _invoke_method(CallMessage &); 207 Message _invoke_method(CallMessage &);
204 208
205 bool _invoke_method_noreply(CallMessage &call); 209 bool _invoke_method_noreply(CallMessage &call);
206 210
207 bool handle_message(const Message &); 211 bool handle_message(const Message &);
208 212
209 » void register_obj(); 213 protected:
210 » void unregister_obj(); 214 » virtual void register_obj();
215 » virtual void unregister_obj();
216 » virtual bool is_registered();
211 217
212 private: 218 private:
213 219
214 MessageSlot _filtered; 220 MessageSlot _filtered;
215 }; 221 };
216 222
217 const ObjectProxy *ObjectProxy::object() const 223 const ObjectProxy *ObjectProxy::object() const
218 { 224 {
219 return this; 225 return this;
220 } 226 }
221 227
222 } /* namespace DBus */ 228 } /* namespace DBus */
223 229
224 #endif//__DBUSXX_OBJECT_H 230 #endif//__DBUSXX_OBJECT_H
OLDNEW
« no previous file with comments | « no previous file | src/object.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698