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

Side by Side Diff: chromeos/dbus/ibus/ibus_object.h

Issue 10384141: Extends IBusObject. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Introduce Pop/AppendIBusText as member function. Created 8 years, 7 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
« no previous file with comments | « no previous file | chromeos/dbus/ibus/ibus_object.cc » ('j') | chromeos/dbus/ibus/ibus_object.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_ 5 #ifndef CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_
6 #define CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_ 6 #define CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_
7 7
8 #include <string> 8 #include <string>
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "chromeos/chromeos_export.h" 11 #include "chromeos/chromeos_export.h"
12 #include "chromeos/dbus/ibus/ibus_text.h"
12 13
13 namespace dbus { 14 namespace dbus {
14 class MessageReader; 15 class MessageReader;
15 class MessageWriter; 16 class MessageWriter;
16 } // dbus 17 } // dbus
17 18
18 namespace chromeos { 19 namespace chromeos {
19 20
20 // The data structure of IBusObject is represented as variant in "(sav...)" 21 // The data structure of IBusObject is represented as variant in "(sav...)"
21 // signatur. The IBusObject is constructed with two sections, header and 22 // signatur. The IBusObject is constructed with two sections, header and
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 bool PopString(std::string* out); 93 bool PopString(std::string* out);
93 bool PopUint32(uint32* out); 94 bool PopUint32(uint32* out);
94 bool PopArray(dbus::MessageReader* reader); 95 bool PopArray(dbus::MessageReader* reader);
95 bool PopBool(bool* out); 96 bool PopBool(bool* out);
96 bool PopInt32(int32* out); 97 bool PopInt32(int32* out);
97 bool HasMoreData(); 98 bool HasMoreData();
98 99
99 // Sets up |reader| for reading an IBusObject entry. 100 // Sets up |reader| for reading an IBusObject entry.
100 bool PopIBusObject(IBusObjectReader* reader); 101 bool PopIBusObject(IBusObjectReader* reader);
101 102
102 // Returns main reader if the specified IBusObject is valid, otherwise returns 103 // Pops a IBusText.
103 // NULL. This reader corresponds to second depth struct field(see above 104 // Returns true on success.
104 // description). This function is useful in the case of adding other 105 bool PopIBusText(ibus::IBusText* text);
105 // IBusObjects. 106
106 dbus::MessageReader* GetContentsReader(); 107 // Pops a IBusText and store it's text field into |text|. Use PopIBusText
108 // instead in the case of using any attribute entries in IBusText.
109 // Return true on success.
110 bool PopStringFromIBusText(std::string* text);
107 111
108 private: 112 private:
109 enum CheckResult { 113 enum CheckResult {
110 IBUS_OBJECT_VALID, // Already checked and valid type. 114 IBUS_OBJECT_VALID, // Already checked and valid type.
111 IBUS_OBJECT_INVALID, // Already checked but invalid type. 115 IBUS_OBJECT_INVALID, // Already checked but invalid type.
112 IBUS_OBJECT_NOT_CHECKED, // Not checked yet. 116 IBUS_OBJECT_NOT_CHECKED, // Not checked yet.
113 }; 117 };
114 118
115 std::string type_name_; 119 std::string type_name_;
116 dbus::MessageReader* original_reader_; 120 dbus::MessageReader* original_reader_;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 164
161 // Sets up |writer| for writing new IBusObject entry. 165 // Sets up |writer| for writing new IBusObject entry.
162 void AppendIBusObject(IBusObjectWriter* writer); 166 void AppendIBusObject(IBusObjectWriter* writer);
163 167
164 // Closes all opened containers. 168 // Closes all opened containers.
165 void CloseAll(); 169 void CloseAll();
166 170
167 // Returns true if writer is initialized. 171 // Returns true if writer is initialized.
168 bool IsInitialized() const; 172 bool IsInitialized() const;
169 173
170 // Returns main contents writer if it is initialized, otherwise returns NULL. 174 // Appends a IBusText.
171 // this writer corresponds to second depth struct(see above description). This 175 void AppendIBusText(const ibus::IBusText& text);
172 // function is useful in the case of appeding other IBusObjects. 176
173 dbus::MessageWriter* GetContentsWriter(); 177 // Appends a string as IBusText without any attributes. Use AppendIBusText
178 // instead in the case of using any attribute entries.
179 void AppendStringAsIBusText(const std::string& text);
174 180
175 private: 181 private:
176 friend class TestableIBusObjectWriter;
177 // Appends IBusObject headers, should be called once. 182 // Appends IBusObject headers, should be called once.
178 void Init(); 183 void Init();
179 184
180 std::string type_name_; 185 std::string type_name_;
181 std::string signature_; 186 std::string signature_;
182 dbus::MessageWriter* original_writer_; 187 dbus::MessageWriter* original_writer_;
183 scoped_ptr<dbus::MessageWriter> top_variant_writer_; 188 scoped_ptr<dbus::MessageWriter> top_variant_writer_;
184 scoped_ptr<dbus::MessageWriter> contents_writer_; 189 scoped_ptr<dbus::MessageWriter> contents_writer_;
185 190
186 DISALLOW_COPY_AND_ASSIGN(IBusObjectWriter); 191 DISALLOW_COPY_AND_ASSIGN(IBusObjectWriter);
187 }; 192 };
188 193
189 } // namespace chromeos 194 } // namespace chromeos
190 195
191 #endif // CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_ 196 #endif // CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_
OLDNEW
« no previous file with comments | « no previous file | chromeos/dbus/ibus/ibus_object.cc » ('j') | chromeos/dbus/ibus/ibus_object.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698