//
// © 2018-2020 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "IoTIotivityService.h"
#import "IoTResourceClients.h"
#import "IoTResourceAttributes.h"

@protocol IoTAppListenerProtocol;
@class IoTSysController;

typedef NS_ENUM(NSInteger, IoTSysObserveOrigin) {
{% for swagger_data in swagger_objects %}
{% if swagger_data.prop != 0 %}
{% if "iotsys" in swagger_data.type %}
    IoTSysObserveOrigin{{swagger_data.name|class_name_syntax}},
{% endif %}
{% endif %}
{% endfor %}
};

@protocol IoTSysControllerObserver

- (void)iotSysController:(IoTSysController *)controller
        didObserveChange:(IoTSysObserveOrigin)type
   wrappedRepresentation:(IoTWrappedRepresentation *)wrapped;

@end

@interface IoTSysController : NSObject<IoTIotivityService>

@property (nonatomic, strong, readonly) IoTServiceDiscoveryResult * serviceInfo;
@property (nonatomic, weak) id<IoTSysControllerObserver> observer;

{% for swagger_data in swagger_objects %}
{% if "iotsys" in swagger_data.type %}
{% include "device_controller_method.h.jinja2" %}
{% endif %}
{% endfor %}

@end
