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

Unified Diff: chromeos/dbus/ibus/ibus_object.h

Issue 61003004: Delete ibus_object and move ibus_text to chromeos/ime. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Modified based on the review. Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/chromeos.gyp ('k') | chromeos/dbus/ibus/ibus_object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/dbus/ibus/ibus_object.h
diff --git a/chromeos/dbus/ibus/ibus_object.h b/chromeos/dbus/ibus/ibus_object.h
deleted file mode 100644
index 9737dfa3b3202092f958af2f11054ec07bc73c4c..0000000000000000000000000000000000000000
--- a/chromeos/dbus/ibus/ibus_object.h
+++ /dev/null
@@ -1,241 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_
-#define CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_
-
-#include <map>
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/memory/scoped_ptr.h"
-#include "chromeos/chromeos_export.h"
-#include "chromeos/dbus/ibus/ibus_text.h"
-
-namespace base {
-class Value;
-} // namespace base
-
-namespace dbus {
-class MessageReader;
-class MessageWriter;
-} // namespace dbus
-
-namespace chromeos {
-
-// The data structure of IBusObject is represented as variant in "(sav...)"
-// signature. The IBusObject is constructed with two sections, header and
-// contents. The header section is represent as "sav" which contains type name
-// and attachment array. The contents section is corresponding to "..." in
-// above signature, which can store arbitrary type values including IBusObject.
-//
-// DATA STRUCTURE OVERVIEW:
-//
-// variant // Handle with top_variant_writer_/top_variant_reader_.
-// struct { // Handle with contents_writer_/contents_reader_.
-// // Header section
-// string typename // The type name of object, like "IBusText"
-// array [ // attachment array.
-// dict_entry (
-// string "mozc.candidates" // The key in the dictionary entry.
-// variant ... // The value in the dictionary entry.
-// )
-// ...
-// ]
-//
-// // Contents section
-// ... // The contents area.
-// }
-//
-// EXAMPLE: IBusText
-//
-// variant struct {
-// string "IBusText" // Header of IBusText
-// array[]
-// string "A" // The 1st value of IBusText
-// variant struct { // THe 2nd value of IBusText
-// string "IBusAttrList" // Header of IBusAttrList
-// array[]
-// array[ // The 1st value of IBusAttrList
-// variant struct{
-// string "IBusAttribute" // Header of IBusAttribute
-// array[]
-// uint32 1 // The 1st value of IBusAttribute
-// uint32 1 // The 2nd value of IBusAttribute
-// uint32 0 // The 3rd value of IBusAttribute
-// uint32 1 // The 4th value of IBusAttribute
-// }
-// ]
-// }
-// }
-//
-// The IBusObjectReader class provides reading IBusObject including attachment
-// field from dbus message. This class checks the IBusObject header structure
-// and type name before reading contents.
-//
-// EXAPMLE USAGE:
-// // Creates reader for IBusText
-// IBusObjectReader object_reader("IBusText", &reader);
-//
-// // Initialize for reading attachment field.
-// object_reader.Init();
-//
-// // Get attachment field.
-// base::Value* value = object_reader.GetAttachment("annotation");
-//
-// std::string text;
-// reader.PopString(&text); // Reading 1st value as string.
-//
-// // We can also read nested IBusObject.
-// IBusObjectReader nested_object_reader("IBusAttrList", NULL);
-// reader.PopIBusObject(&nested_object_reader);
-class CHROMEOS_EXPORT IBusObjectReader {
- public:
- // |reader| must be released by caller.
- IBusObjectReader(const std::string& type_name,
- dbus::MessageReader* reader);
- virtual ~IBusObjectReader();
-
- // Reads IBusObject headers and checks if the type name is valid.
- // Returns true on success. Uses InitWitAttachmentReader instead if you want
- // to read attachment field.
- bool Init();
-
- // Reads IBusOBject with |reader| and checks if the type name is valid.
- bool InitWithParentReader(dbus::MessageReader* reader);
-
- // Returns true if the IBusObject is valid.
- bool IsValid() const;
-
- // The following functions delegate dbus::MessageReader's functions.
- bool PopString(std::string* out);
- bool PopUint32(uint32* out);
- bool PopArray(dbus::MessageReader* reader);
- bool PopBool(bool* out);
- bool PopInt32(int32* out);
- bool HasMoreData();
-
- // Sets up |reader| for reading an IBusObject entry.
- bool PopIBusObject(IBusObjectReader* reader);
-
- // Pops a IBusText.
- // Returns true on success.
- bool PopIBusText(IBusText* text);
-
- // Pops a IBusText and store it's text field into |text|. Use PopIBusText
- // instead in the case of using any attribute entries in IBusText.
- // Return true on success.
- bool PopStringFromIBusText(std::string* text);
-
- // Gets attachment entry corresponding to |key|. Do not free returned value.
- // Returns NULL if there is no entry.
- const base::Value* GetAttachment(const std::string& key);
-
- private:
- enum CheckResult {
- IBUS_OBJECT_VALID, // Already checked and valid type.
- IBUS_OBJECT_INVALID, // Already checked but invalid type.
- IBUS_OBJECT_NOT_CHECKED, // Not checked yet.
- };
-
- std::string type_name_;
- dbus::MessageReader* original_reader_;
- scoped_ptr<dbus::MessageReader> top_variant_reader_;
- scoped_ptr<dbus::MessageReader> contents_reader_;
- CheckResult check_result_;
- std::map<std::string, base::Value*> attachments_;
-
- DISALLOW_COPY_AND_ASSIGN(IBusObjectReader);
-};
-
-// IBusObjectWriter class provides writing IBusObject to dbus message. This
-// class appends header section before appending contents values.
-// IBusObjectWriter does not support writing attachment field because writing
-// attachment field is not used in Chrome.
-//
-// EXAMPLE USAGE:
-// // Creates writer for IBusText
-// IBusObjectWriter object_writer("IBusText", "sv", &writer);
-//
-// // Add some attachments.
-// base::Value* value = base::Value::CreateStringValue("Noun");
-// object_writer.AddAttachment("annotation", *value);
-//
-// // Close header section.
-// object_writer.CloseHeader();
-//
-// const std::string text = "Sample Text";
-// writer.AppendString(text);
-//
-// // We can also write nested IBusObject.
-// IBusObjectWriter nested_object_writer("IBusAttrList", "av");
-// object_writer.AppendIBusObject(&nested_object_writer);
-// ... appends values
-//
-// nested_object_writer.CloseAll(); // To finish up, should call CloseAll.
-// object_writer.CloseAll();
-class CHROMEOS_EXPORT IBusObjectWriter {
- public:
- enum WriterState {
- NOT_INITIALZED, // Created but not initialized.
- HEADER_OPEN, // Ready for writing attachment field.
- INITIALIZED // Ready for writing content values.
- };
-
- // |writer| must be released by caller.
- IBusObjectWriter(const std::string& type_name,
- const std::string& signature,
- dbus::MessageWriter* writer);
- virtual ~IBusObjectWriter();
-
- // Closes header to write content values.
- void CloseHeader();
-
- // Appends IBusObject headers with |writer|, should be called once.
- void InitWithParentWriter(dbus::MessageWriter* writer);
-
- // Adds an attachment, this function can be called only before CloseHeader
- // function call.
- bool AddAttachment(const std::string& key, const base::Value& value);
-
- // The following functions delegate dbus::MessageReader's functions.
- void AppendString(const std::string& input);
- void AppendUint32(uint32 value);
- void AppendInt32(int32 value);
- void AppendBool(bool value);
- void OpenArray(const std::string& signature,
- dbus::MessageWriter* writer);
- void CloseContainer(dbus::MessageWriter* writer);
-
- // Sets up |writer| for writing new IBusObject entry.
- void AppendIBusObject(IBusObjectWriter* writer);
-
- // Closes all opened containers.
- void CloseAll();
-
- // Appends a IBusText.
- void AppendIBusText(const IBusText& text);
-
- // Appends a string as IBusText without any attributes. Use AppendIBusText
- // instead in the case of using any attribute entries.
- void AppendStringAsIBusText(const std::string& text);
-
- private:
- // Appends IBusObject headers, should be called once.
- void Init();
-
- std::string type_name_;
- std::string signature_;
- dbus::MessageWriter* original_writer_;
- WriterState state_;
- scoped_ptr<dbus::MessageWriter> top_variant_writer_;
- scoped_ptr<dbus::MessageWriter> contents_writer_;
- scoped_ptr<dbus::MessageWriter> attachment_writer_;
-
- DISALLOW_COPY_AND_ASSIGN(IBusObjectWriter);
-};
-
-} // namespace chromeos
-
-#endif // CHROMEOS_DBUS_IBUS_IBUS_OBJECT_H_
« no previous file with comments | « chromeos/chromeos.gyp ('k') | chromeos/dbus/ibus/ibus_object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698