| /* |
| * |
| * Copyright (c) 2016-2017 Nest Labs, Inc. |
| * All rights reserved. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /** |
| * @file |
| * This file defines compile time configuration of the Event Logging profile |
| */ |
| |
| #ifndef WEAVEEVENTLOGGINGCONFIG_H |
| #define WEAVEEVENTLOGGINGCONFIG_H |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_RESERVE_SIZE |
| * |
| * @brief |
| * Initial size to reserve for event. The logging subsystem ensures |
| * this space is available in the buffer before attempting to store |
| * the event. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_SIZE_RESERVE |
| #define WEAVE_CONFIG_EVENT_SIZE_RESERVE 196 |
| #endif /* WEAVE_CONFIG_EVENT_SIZE_RESERVE */ |
| |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_SIZE_INCREMENT |
| * |
| * @brief |
| * When the initial reserved size proves insufficient, clean out the |
| * buffer in following increments. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_SIZE_INCREMENT |
| #define WEAVE_CONFIG_EVENT_SIZE_INCREMENT 8 |
| #endif /* WEAVE_CONFIG_EVENT_SIZE_INCREMENT */ |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_BDX_OFFLOAD |
| * |
| * @brief |
| * Control whether the logs are offloaded using the BDX profile |
| * |
| * Select the ability to offload logs to the BDX endpoint. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_BDX_OFFLOAD |
| #define WEAVE_CONFIG_EVENT_LOGGING_BDX_OFFLOAD 0 |
| #endif /* WEAVE_CONFIG_EVENT_LOGGING_BDX_OFFLOAD */ |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_BDX_OFFLOAD |
| * |
| * @brief |
| * Control whether the logs are offloaded using the WDM profile |
| * |
| * Select the ability to offload logs to any interested subscribers using WDM. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_WDM_OFFLOAD |
| #define WEAVE_CONFIG_EVENT_LOGGING_WDM_OFFLOAD 0 |
| #endif /* WEAVE_CONFIG_EVENT_LOGGING_WDM_OFFLOAD */ |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_XFER_THRESHOLD |
| * |
| * @brief |
| * The log size threshold in bytes beyond which the system will |
| * trigger the automatic upload |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_XFER_THRESHOLD |
| #define WEAVE_CONFIG_EVENT_LOGGING_XFER_THRESHOLD 512 |
| #endif /* WEAVE_CONFIG_EVENT_LOGGING_XFER_THRESHOLD */ |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_EVENT_THRESHOLD |
| * |
| * @brief |
| * The number of locally stored events beyond which the system will |
| * trigger the automatic upload. Uses XFER_THRESHOLD and EVENT_SIZE_RESERVE |
| * to approximate the size of an average WDM notification |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_EVENT_THRESHOLD |
| #define WEAVE_CONFIG_EVENT_LOGGING_EVENT_THRESHOLD (WEAVE_CONFIG_EVENT_LOGGING_XFER_THRESHOLD/WEAVE_CONFIG_EVENT_SIZE_RESERVE) |
| #endif |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD |
| * |
| * @brief The number of bytes written to the event logging system that |
| * will trigger WDM Notification. |
| * |
| * The configuration captures the number of bytes written to the event |
| * logging subsystem needed to trigger a WDM notification. Generally, |
| * the number does not account for events supplied via the external |
| * event subsystem. The number should be set both in terms of the |
| * notify size and in terms of the desired quality of service. For |
| * example, if an application wants to offload all DEBUG events |
| * reliably, the threshold should be set to less than the size of the |
| * DEBUG buffer (plus a slop factor to account for events generated |
| * during the scheduling and event offload). Similarly, if the |
| * application does not want to drop INFO events, the threshold should |
| * be set to the sum of DEBUG and INFO buffers (with the same |
| * correction). |
| * |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD |
| #define WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD 512 |
| #endif /* WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD */ |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_MINIMUM_UPLOAD_SECONDS |
| * |
| * @brief |
| * Default minimum time between log uploads (in seconds). If |
| * event generation rate requires more frequent upload, events may |
| * be dropped. The value is used to initialize Weave |
| * LoggingConfiguration. This is only relevant for BDX uploads. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_MINIMUM_UPLOAD_SECONDS |
| #define WEAVE_CONFIG_EVENT_LOGGING_MINIMUM_UPLOAD_SECONDS 1 |
| #endif |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_MAXIMUM_UPLOAD_SECONDS |
| * |
| * @brief |
| * The maximum time (in seconds) between log uploads. The |
| * system is guaranteed to attempt to offload the log buffer at |
| * least this often. The value is used to initialize Weave |
| * LoggingConfiguration. This is only relevant for BDX uploads. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_MAXIMUM_UPLOAD_SECONDS |
| #define WEAVE_CONFIG_EVENT_LOGGING_MAXIMUM_UPLOAD_SECONDS 86400 |
| #endif |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE |
| * |
| * @brief |
| * The default importance of events to be logged. It is used |
| * to initialize the Weave LoggingConfiguration. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE |
| #define WEAVE_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE nl::Weave::Profiles::DataManagement::Production |
| #endif |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS |
| * |
| * @brief |
| * By default, don't record UTC timestamps. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS |
| #define WEAVE_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS 0 |
| #endif |
| |
| /** |
| * @def WEAVE_CONFIG_EVENT_LOGGING_NUM_EXTERNAL_CALLBACKS |
| * |
| * @brief |
| * The maximum allowed callbacks for platform owned events. |
| * By default, don't allow any external callbacks. |
| */ |
| #ifndef WEAVE_CONFIG_EVENT_LOGGING_NUM_EXTERNAL_CALLBACKS |
| #define WEAVE_CONFIG_EVENT_LOGGING_NUM_EXTERNAL_CALLBACKS 0 |
| #endif |
| |
| #endif /* WEAVEEVENTLOGGINGCONFIG_H */ |