sssd_dbus_meta.c revision 3d5908ed0faf400a5c7d9c3e4312597ee1b7786a
45312f52ff3a3d4c137447be4c7556500c2f8bf2Timo Sirainen/*
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen Authors:
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen Stef Walter <stefw@redhat.com>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen Copyright (C) 2014 Red Hat
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen This program is free software; you can redistribute it and/or modify
be1ce4990d3e5eda1e80a032e355e41aabc29d6fTimo Sirainen it under the terms of the GNU General Public License as published by
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen the Free Software Foundation; either version 3 of the License, or
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen (at your option) any later version.
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen This program is distributed in the hope that it will be useful,
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen but WITHOUT ANY WARRANTY; without even the implied warranty of
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen GNU General Public License for more details.
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen You should have received a copy of the GNU General Public License
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen along with this program. If not, see <http://www.gnu.org/licenses/>.
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen*/
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen#include "util/util.h"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen#include "sbus/sssd_dbus_meta.h"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
ccd4a548556a72a74a8183fa46cdd616dceae456Timo Sirainenconst struct sbus_method_meta *
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainensbus_meta_find_method(const struct sbus_interface_meta *interface,
8c0e314c57b91253c8b2c3491e162967bd3a2cd3Timo Sirainen const char *method_name)
8c0e314c57b91253c8b2c3491e162967bd3a2cd3Timo Sirainen{
8c0e314c57b91253c8b2c3491e162967bd3a2cd3Timo Sirainen const struct sbus_method_meta *method;
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen
e50c1eb31159d8ccc116d8fb487a5e231d2033a1Timo Sirainen for (method = interface->methods; method && method->name; method++) {
e50c1eb31159d8ccc116d8fb487a5e231d2033a1Timo Sirainen if (strcmp(method_name, method->name) == 0) {
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen return method;
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen }
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen }
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen return NULL;
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen}
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainenconst struct sbus_signal_meta *
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainensbus_meta_find_signal(const struct sbus_interface_meta *interface,
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen const char *signal_name)
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen{
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen const struct sbus_signal_meta *signal;
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen for (signal = interface->signals; signal && signal->name; signal++) {
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen if (strcmp(signal_name, signal->name) == 0) {
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen return signal;
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen }
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen }
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen return NULL;
14f172fb8fc5585ec450ae3c233c676a033e5324Timo Sirainen}
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
04870054863757edf048c81dcce3c5e7dec453cdTimo Sirainenconst struct sbus_property_meta *
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainensbus_meta_find_property(const struct sbus_interface_meta *interface,
14f172fb8fc5585ec450ae3c233c676a033e5324Timo Sirainen const char *property_name)
14f172fb8fc5585ec450ae3c233c676a033e5324Timo Sirainen{
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen const struct sbus_property_meta *property;
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen for (property = interface->properties; property && property->name; property++) {
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen if (strcmp(property_name, property->name) == 0) {
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen return property;
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen }
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen }
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen return NULL;
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen}
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen