[Merge] lp:~mandel/dbus-cpp/provide-macros into lp:dbus-cpp

Thomas Voß thomas.voss at canonical.com
Tue Jun 3 08:42:30 UTC 2014



Diff comments:

> === added file 'include/core/dbus/macros.h'
> --- include/core/dbus/macros.h	1970-01-01 00:00:00 +0000
> +++ include/core/dbus/macros.h	2014-06-03 08:34:21 +0000
> @@ -0,0 +1,79 @@
> +/*
> + * Copyright © 2014 Canonical Ltd.
> + *
> + * This program is free software: you can redistribute it and/or modify it
> + * under the terms of the GNU Lesser General Public License version 3,
> + * as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public License
> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> + *
> + * Authored by: Thomas Voß <thomas.voss at canonical.com>
> + */
> +
> +#ifndef CORE_DBUS_MACROS_H_
> +#define CORE_DBUS_MACROS_H_
> +
> +#include <core/dbus/types/object_path.h>
> +
> +#include <chrono>
> +#include <string>
> +
> +#define SECONDS(seconds) std::chrono::seconds{seconds};
> +
> +#define METHOD(Name, Itf, Timeout) \

Something like DBUS_CPP_METHOD_DEF(...) might be better suited as it is less prone to name clashes in the global namespace.

> +    struct Name \
> +    { \
> +        typedef Itf Interface; \
> +        inline static const std::string& name() \
> +        { \
> +            static const std::string s{#Name}; \
> +            return s; \
> +        } \
> +        inline static const std::chrono::milliseconds default_timeout() { return std::chrono::milliseconds{2000}; } \

This should take the Timeout parameter into account.

> +    };\
> +
> +#define SIGNAL(Name, Itf, ArgType) \

Something like DBUS_CPP_SIGNAL_DEF(...) might be better suited as it is less prone to name clashes in the global namespace.

> +    struct Name \
> +    { \
> +        inline static std::string name() \
> +        { \
> +            return #Name; \
> +        }; \
> +        typedef Itf Interface; \
> +        typedef ArgType ArgumentType; \
> +    };\
> +
> +#define READABLE_PROPERTY(Name, Itf, Type) \

See comment on naming before.

> +    struct Name \
> +    { \
> +        inline static std::string name() \
> +        { \
> +            return #Name; \
> +        }; \
> +        typedef Itf Interface; \
> +        typedef Type ValueType; \
> +        static const bool readable = true; \
> +        static const bool writable = false; \
> +    }; \
> +
> +#define WRITABLE_PROPERTY(Name, Itf, Type) \

See comment on naming before.

> +    struct Name \
> +    { \
> +        inline static std::string name() \
> +        { \
> +            return #Name; \
> +        }; \
> +        typedef Itf Interface; \
> +        typedef Type ValueType; \
> +        static const bool readable = true; \
> +        static const bool writable = true; \
> +    }; \
> +
> +#endif // MPRIS_MACROS_H_
> +
> 


-- 
https://code.launchpad.net/~mandel/dbus-cpp/provide-macros/+merge/221840
Your team Ubuntu Phablet Team is requested to review the proposed merge of lp:~mandel/dbus-cpp/provide-macros into lp:dbus-cpp.



More information about the Ubuntu-reviews mailing list