From 06f646aec4dbce64d28bae1be6111bd833f8e79e Mon Sep 17 00:00:00 2001 From: Paul Nettle Date: Fri, 25 Aug 2017 09:30:39 -0500 Subject: Initial version 1.0 --- src/ServerUtils.h | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/ServerUtils.h (limited to 'src/ServerUtils.h') diff --git a/src/ServerUtils.h b/src/ServerUtils.h new file mode 100644 index 0000000..3ab9511 --- /dev/null +++ b/src/ServerUtils.h @@ -0,0 +1,62 @@ +// Copyright 2017 Paul Nettle. +// +// This file is part of Gobbledegook. +// +// Gobbledegook is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Gobbledegook 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Gobbledegook. If not, see . + +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// >> +// >>> INSIDE THIS FILE +// >> +// +// This file contains helper function declarations for our server's implementation. That is, methods that are used by the server +// itself (when responding to D-Bus or BlueZ requests.) +// +// >> +// >>> DISCUSSION +// >> +// +// See ServerUtils.cpp for implementations +// +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#pragma once + +#include +#include + +struct ServerUtils +{ + // Builds the response to the method call `GetManagedObjects` from the D-Bus interface `org.freedesktop.DBus.ObjectManager` + static void getManagedObjects(GDBusMethodInvocation *pInvocation); + + // WARNING: Hacky code - don't count on this working properly on all systems + // + // This routine will attempt to parse /proc/cpuinfo to return the CPU count/model. Results are cached on the first call, with + // cached results returned on successive calls. + // + // If this routine fails, it will respond with something reasonable, if not _entirely_ accurate. + static std::string getCpuInfo(int16_t &cpuCount); + + // Build a variant that meets the standard for the Current Time (0x2A2B) Bluetooth Characteristic standard + // + // See: https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.current_time.xml + static GVariant *gvariantCurrentTime(); + + // Build a variant that meets the standard for the Local Time Information (0x2A0F) Bluetooth Characteristic standard + // + // See: https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.local_time_information.xml + static GVariant *gvariantLocalTime(); +}; -- cgit v1.2.3