Improved const-correctness of response/event callbacks.
authorOssama Othman <ossama.othman@intel.com>
Fri, 8 Nov 2013 23:04:49 +0000 (15:04 -0800)
committerOssama Othman <ossama.othman@intel.com>
Tue, 3 Dec 2013 21:46:52 +0000 (13:46 -0800)
Change-Id: Id84c8e6daa4c9499ca6b5195d804b65d3639c1ec
Signed-off-by: Ossama Othman <ossama.othman@intel.com>
include/settingsd/event_callback.hpp
include/settingsd/response_callback.hpp
include/settingsd/send_callback.hpp
lib/event_callback.cpp
lib/manager.cpp
lib/manager.hpp
lib/response_callback.cpp
lib/send_callback.cpp

index 910082a..54e9013 100644 (file)
@@ -73,7 +73,7 @@ namespace ivi
        *                          formatted event data.
        */
       bool send_event(
-        std::function<void(JsonBuilder *)> event_builder);
+        std::function<void(JsonBuilder *)> event_builder) const;
 
     private:
 
@@ -84,12 +84,12 @@ namespace ivi
        * The appropriate "header" information will be prepended to the
        * event.
        */
-      unique_ptr<JsonBuilder> begin_event();
+      unique_ptr<JsonBuilder> begin_event() const;
 
       /**
        * End the JSON formatted event to the Settings app request.
        */
-      void end_event(unique_ptr<JsonBuilder> const & builder);
+      void end_event(unique_ptr<JsonBuilder> const & builder) const;
 
     private:
 
index 02936ef..d3f6014 100644 (file)
@@ -77,14 +77,14 @@ namespace ivi
        *                             JSON formatted response data.
        */
       bool send_response(
-        std::function<void(JsonBuilder *)> response_builder);
+        std::function<void(JsonBuilder *)> response_builder) const;
 
       /**
        * Send error response to Settings app.
        *
        * @param[in] error_message Free form error message.
        */
-      bool send_error(std::string error_message);
+      bool send_error(std::string error_message) const;
 
       /**
        * The settings type/ID associated with the request and
@@ -103,7 +103,7 @@ namespace ivi
        */
       void add_string_value(JsonBuilder * builder,
                             std::string const & name,
-                            std::string const & value);
+                            std::string const & value) const;
 
       /**
        * Begin the JSON formatted response to the Settings app
@@ -115,12 +115,12 @@ namespace ivi
        *
        * @param[in] result @c "succeeded" or @c "failed"
        */
-      unique_ptr<JsonBuilder> begin_response(char const * result);
+      unique_ptr<JsonBuilder> begin_response(char const * result) const;
 
       /**
        * End the JSON formatted response to the Settings app request.
        */
-      void end_response(unique_ptr<JsonBuilder> const & builder);
+      void end_response(unique_ptr<JsonBuilder> const & builder) const;
 
     private:
 
index 9846cb9..3c24639 100644 (file)
@@ -71,7 +71,7 @@ namespace ivi
        *                      pre-marshalled (in-memory) payload.
        */
       bool send_payload(char const * send_type,
-                        unique_ptr<JsonBuilder> const & builder);
+                        unique_ptr<JsonBuilder> const & builder) const;
 
       /**
        * Check if the WebSocket instance @a wsi corresponds to this
index 12cc69c..b4bf113 100644 (file)
@@ -37,7 +37,7 @@ ivi::settings::event_callback::event_callback(manager & mgr)
 
 bool
 ivi::settings::event_callback::send_event(
-  std::function<void(JsonBuilder *)> event_builder)
+  std::function<void(JsonBuilder *)> event_builder) const
 {
   unique_ptr<JsonBuilder> const builder = begin_event();
 
@@ -50,7 +50,7 @@ ivi::settings::event_callback::send_event(
 }
 
 ivi::settings::unique_ptr<JsonBuilder>
-ivi::settings::event_callback::begin_event()
+ivi::settings::event_callback::begin_event() const
 {
   // Construct JSON event string.
   unique_ptr<JsonBuilder> safe_builder(json_builder_new());
@@ -66,7 +66,7 @@ ivi::settings::event_callback::begin_event()
 
 void
 ivi::settings::event_callback::end_event(
-  ivi::settings::unique_ptr<JsonBuilder> const & builder)
+  ivi::settings::unique_ptr<JsonBuilder> const & builder) const
 {
   json_builder_end_object(builder.get());
 }
index 5ca8d2b..3f8ad7c 100644 (file)
@@ -210,7 +210,7 @@ ivi::settings::manager::unsubscribe_client(libwebsocket * wsi)
 
 bool
 ivi::settings::manager::send_event(
-  unique_ptr<JsonBuilder> const & builder)
+  unique_ptr<JsonBuilder> const & builder) const
 {
   bool success = true;
 
index aea12fd..95f9ea9 100644 (file)
@@ -103,7 +103,7 @@ namespace ivi
        *
        * @return @c true on success.
        */
-      bool send_event(unique_ptr<JsonBuilder> const & builder);
+      bool send_event(unique_ptr<JsonBuilder> const & builder) const;
 
     private:
 
@@ -150,7 +150,7 @@ namespace ivi
       map_type settings_;
 
       /// Mutex used to synchronize access to the send_callback list.
-      std::mutex mutex_;
+      mutable std::mutex mutex_;
 
       /**
        * List of client WebSockets to be used for sending events to
index 373ac52..7038d6c 100644 (file)
@@ -49,7 +49,7 @@ ivi::settings::response_callback::response_callback(
 
 bool
 ivi::settings::response_callback::send_response(
-  std::function<void(JsonBuilder *)> response_builder)
+  std::function<void(JsonBuilder *)> response_builder) const
 {
   unique_ptr<JsonBuilder> const builder = begin_response("succeeded");
 
@@ -72,7 +72,8 @@ ivi::settings::response_callback::send_response(
 }
 
 bool
-ivi::settings::response_callback::send_error(std::string error_message)
+ivi::settings::response_callback::send_error(
+  std::string error_message) const
 {
   unique_ptr<JsonBuilder> builder = begin_response("failed");
 
@@ -97,7 +98,7 @@ void
 ivi::settings::response_callback::add_string_value(
   JsonBuilder * builder,
   std::string const & name,
-  std::string const & value)
+  std::string const & value) const
 {
   json_builder_set_member_name(builder, name.c_str());
   if (value.empty())
@@ -107,7 +108,8 @@ ivi::settings::response_callback::add_string_value(
 }
 
 ivi::settings::unique_ptr<JsonBuilder>
-ivi::settings::response_callback::begin_response(char const * result)
+ivi::settings::response_callback::begin_response(
+  char const * result) const
 {
   // Construct JSON response.
   unique_ptr<JsonBuilder> safe_builder(json_builder_new());
@@ -126,7 +128,7 @@ ivi::settings::response_callback::begin_response(char const * result)
 
 void
 ivi::settings::response_callback::end_response(
-  ivi::settings::unique_ptr<JsonBuilder> const & builder)
+  ivi::settings::unique_ptr<JsonBuilder> const & builder) const
 {
   json_builder_end_object(builder.get());
 }
index 9330f8e..c243141 100644 (file)
@@ -56,7 +56,7 @@ ivi::settings::send_callback::operator=(send_callback const & other)
 bool
 ivi::settings::send_callback::send_payload(
   char const * send_type,
-  unique_ptr<JsonBuilder> const & builder)
+  unique_ptr<JsonBuilder> const & builder) const
 {
   unique_ptr<JsonGenerator> const generator(json_generator_new());
   unique_ptr<JsonNode> const root(json_builder_get_root(builder.get()));