| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Copyright 2020 Google LLC
- //
- // 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.
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- FOUNDATION_EXTERN NSInteger const kGaugeDataBatchSize;
- /** List of gauges the gauge manager controls. */
- typedef NS_OPTIONS(NSUInteger, FPRGauges) {
- FPRGaugeNone = 0,
- FPRGaugeCPU = (1 << 0),
- FPRGaugeMemory = (1 << 1),
- };
- /** This class controls different gauge collection in the system. List of the gauges this class
- manages are listed above. */
- NS_EXTENSION_UNAVAILABLE("Firebase Performance is not supported for extensions.")
- @interface FPRGaugeManager : NSObject
- /** @brief List of gauges that are currently being actively captured. */
- @property(nonatomic, readonly) FPRGauges activeGauges;
- /**
- * Creates an instance of GaugeManager.
- *
- * @return Instance of GaugeManager.
- */
- + (instancetype)sharedInstance;
- /**
- * Initializer for the gauge manager. This is not available.
- */
- - (instancetype)init NS_UNAVAILABLE;
- /**
- * Starts collecting gauge metrics for the specified set of gauges. Calling this will dispatch all
- * the currently existing gauge data and will start collecting the new data with the new sessionId.
- *
- * @param gauges Gauges that needs to be collected.
- * @param sessionId SessionId for which the gauges are collected.
- */
- - (void)startCollectingGauges:(FPRGauges)gauges forSessionId:(NSString *)sessionId;
- /**
- * Stops collecting gauge metrics for the specified set of gauges. Calling this will dispatch all
- * the existing gauge data.
- *
- * @param gauges Gauges that needs to be stopped collecting.
- */
- - (void)stopCollectingGauges:(FPRGauges)gauges;
- /**
- * Collects all the gauges.
- */
- - (void)collectAllGauges;
- /**
- * Takes a gauge metric and tries to dispatch the gauge metric.
- *
- * @param gaugeMetric Gauge metric that needs to be dispatched.
- */
- - (void)dispatchMetric:(id)gaugeMetric;
- @end
- NS_ASSUME_NONNULL_END
|