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

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

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
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 #include "chromeos/dbus/ibus/ibus_object.h" 5 #include "chromeos/dbus/ibus/ibus_object.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chromeos/dbus/ibus/ibus_text.h"
8 #include "dbus/message.h" 9 #include "dbus/message.h"
9 10
10 namespace chromeos { 11 namespace chromeos {
11 12
13 // TODO(nona): Remove after complete libibus removal.
satorux1 2012/05/21 19:58:14 We should put the code in the file in 'ibus' names
Seigo Nonaka 2012/05/21 20:12:00 Done.
14 using chromeos::ibus::IBusText;
15 using chromeos::ibus::PopIBusText;
16 using chromeos::ibus::PopStringFromIBusText;
17 using chromeos::ibus::AppendIBusText;
18 using chromeos::ibus::AppendStringAsIBusText;
19
12 /////////////////////////////////////////////////////////////////////////////// 20 ///////////////////////////////////////////////////////////////////////////////
13 // IBusObjectReader 21 // IBusObjectReader
14 IBusObjectReader::IBusObjectReader(const std::string& type_name, 22 IBusObjectReader::IBusObjectReader(const std::string& type_name,
15 dbus::MessageReader* reader) 23 dbus::MessageReader* reader)
16 : type_name_(type_name), 24 : type_name_(type_name),
17 original_reader_(reader), 25 original_reader_(reader),
18 top_variant_reader_(NULL), 26 top_variant_reader_(NULL),
19 contents_reader_(NULL), 27 contents_reader_(NULL),
20 check_result_(IBUS_OBJECT_NOT_CHECKED) { 28 check_result_(IBUS_OBJECT_NOT_CHECKED) {
21 } 29 }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 DCHECK(contents_reader_.get()); 111 DCHECK(contents_reader_.get());
104 return IsValid() && contents_reader_->PopBool(out); 112 return IsValid() && contents_reader_->PopBool(out);
105 } 113 }
106 114
107 bool IBusObjectReader::PopArray(dbus::MessageReader* reader) { 115 bool IBusObjectReader::PopArray(dbus::MessageReader* reader) {
108 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_); 116 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
109 DCHECK(contents_reader_.get()); 117 DCHECK(contents_reader_.get());
110 return IsValid() && contents_reader_->PopArray(reader); 118 return IsValid() && contents_reader_->PopArray(reader);
111 } 119 }
112 120
121 bool IBusObjectReader::PopIBusText(IBusText* text) {
122 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
123 DCHECK(contents_reader_.get());
124 return IsValid() && chromeos::PopIBusText(contents_reader_.get(), text);
125 }
126
127 bool IBusObjectReader::PopStringFromIBusText(std::string* text) {
128 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
129 DCHECK(contents_reader_.get());
130 return IsValid() && chromeos::PopStringFromIBusText(contents_reader_.get(),
131 text);
132 }
133
113 bool IBusObjectReader::HasMoreData() { 134 bool IBusObjectReader::HasMoreData() {
114 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_); 135 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
115 DCHECK(contents_reader_.get()); 136 DCHECK(contents_reader_.get());
116 return IsValid() && contents_reader_->HasMoreData(); 137 return IsValid() && contents_reader_->HasMoreData();
117 } 138 }
118 139
119 bool IBusObjectReader::PopIBusObject(IBusObjectReader* reader) { 140 bool IBusObjectReader::PopIBusObject(IBusObjectReader* reader) {
120 DCHECK(contents_reader_.get()); 141 DCHECK(contents_reader_.get());
121 if (!IsValid()) 142 if (!IsValid())
122 return false; 143 return false;
123 return reader->InitWithParentReader(contents_reader_.get()); 144 return reader->InitWithParentReader(contents_reader_.get());
124 } 145 }
125 146
126 bool IBusObjectReader::IsValid() const { 147 bool IBusObjectReader::IsValid() const {
127 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_); 148 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
128 return check_result_ == IBUS_OBJECT_VALID; 149 return check_result_ == IBUS_OBJECT_VALID;
129 } 150 }
130 151
131 dbus::MessageReader* IBusObjectReader::GetContentsReader() {
132 DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
133 DCHECK(contents_reader_.get());
134 if (IsValid()) {
135 return contents_reader_.get();
136 } else {
137 return NULL;
138 }
139 }
140
141 /////////////////////////////////////////////////////////////////////////////// 152 ///////////////////////////////////////////////////////////////////////////////
142 // IBusObjectWriter 153 // IBusObjectWriter
143 IBusObjectWriter::IBusObjectWriter(const std::string& type_name, 154 IBusObjectWriter::IBusObjectWriter(const std::string& type_name,
144 const std::string& signature, 155 const std::string& signature,
145 dbus::MessageWriter* writer) 156 dbus::MessageWriter* writer)
146 : type_name_(type_name), 157 : type_name_(type_name),
147 signature_(signature), 158 signature_(signature),
148 original_writer_(writer) { 159 original_writer_(writer) {
149 if (original_writer_) 160 if (original_writer_)
150 Init(); 161 Init();
(...skipping 21 matching lines...) Expand all
172 DCHECK(IsInitialized()); 183 DCHECK(IsInitialized());
173 contents_writer_->AppendBool(input); 184 contents_writer_->AppendBool(input);
174 } 185 }
175 186
176 void IBusObjectWriter::OpenArray(const std::string& signature, 187 void IBusObjectWriter::OpenArray(const std::string& signature,
177 dbus::MessageWriter* writer) { 188 dbus::MessageWriter* writer) {
178 DCHECK(IsInitialized()); 189 DCHECK(IsInitialized());
179 contents_writer_->OpenArray(signature, writer); 190 contents_writer_->OpenArray(signature, writer);
180 } 191 }
181 192
193 void IBusObjectWriter::AppendIBusText(const IBusText& text) {
194 DCHECK(IsInitialized());
195 chromeos::AppendIBusText(text, contents_writer_.get());
196 }
197
198 void IBusObjectWriter::AppendStringAsIBusText(const std::string& text) {
199 DCHECK(IsInitialized());
200 chromeos::AppendStringAsIBusText(text, contents_writer_.get());
201 }
202
182 void IBusObjectWriter::CloseContainer(dbus::MessageWriter* writer) { 203 void IBusObjectWriter::CloseContainer(dbus::MessageWriter* writer) {
183 DCHECK(IsInitialized()); 204 DCHECK(IsInitialized());
184 contents_writer_->CloseContainer(writer); 205 contents_writer_->CloseContainer(writer);
185 } 206 }
186 207
187 void IBusObjectWriter::AppendIBusObject(IBusObjectWriter* writer) { 208 void IBusObjectWriter::AppendIBusObject(IBusObjectWriter* writer) {
188 DCHECK(IsInitialized()); 209 DCHECK(IsInitialized());
189 DCHECK(!writer->IsInitialized()) << "Given writer is already initialized"; 210 DCHECK(!writer->IsInitialized()) << "Given writer is already initialized";
190 211
191 writer->InitWithParentWriter(contents_writer_.get()); 212 writer->InitWithParentWriter(contents_writer_.get());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 top_variant_writer_->CloseContainer(contents_writer_.get()); 244 top_variant_writer_->CloseContainer(contents_writer_.get());
224 original_writer_->CloseContainer(top_variant_writer_.get()); 245 original_writer_->CloseContainer(top_variant_writer_.get());
225 top_variant_writer_.reset(); 246 top_variant_writer_.reset();
226 contents_writer_.reset(); 247 contents_writer_.reset();
227 } 248 }
228 249
229 bool IBusObjectWriter::IsInitialized() const { 250 bool IBusObjectWriter::IsInitialized() const {
230 return contents_writer_.get() != NULL; 251 return contents_writer_.get() != NULL;
231 } 252 }
232 253
233 dbus::MessageWriter* IBusObjectWriter::GetContentsWriter() {
234 DCHECK(contents_writer_.get());
235 if (IsInitialized()) {
236 return contents_writer_.get();
237 } else {
238 return NULL;
239 }
240 }
241
242 } // namespace chromeos 254 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698