this repo has no description
1/*
2 * Copyright (c) 2012 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#import <Foundation/Foundation.h>
25
26@class ODMappings;
27
28NS_CLASS_AVAILABLE(10_9, NA)
29@interface ODModuleEntry : NSObject {
30 @protected
31 ODMappings *mappings;
32 NSArray *supportedOptions;
33 NSString *name;
34 NSString *xpcServiceName;
35 NSMutableDictionary *options;
36 NSString *uuidString;
37};
38
39/* mappings that are specific to this module configuration */
40@property(strong) ODMappings *mappings NS_AVAILABLE_MAC(10_9);
41
42/* A list supported options for a module. The list will contain dictionaries with keys ODModuleOptionName, ODModuleOptionType, etc. */
43@property(readonly, copy) NSArray *supportedOptions NS_AVAILABLE_MAC(10_9);
44
45/* Name of the module, used in logging, etc. */
46@property(copy) NSString *name NS_AVAILABLE_MAC(10_9);
47
48/* XPCService to be used for this module */
49@property(copy) NSString *xpcServiceName NS_AVAILABLE_MAC(10_9);
50
51/* A UUID in string form that uniquely identifies this configuration, will be assigned automatically if missing */
52@property(copy) NSString *uuidString NS_AVAILABLE_MAC(10_9);
53
54/*!
55 * @method moduleEntryWithName:xpcServiceName:
56 *
57 * @abstract
58 * Creates a new module entry with a given name and service.
59 *
60 * @discussion
61 * Creates a new module entry with a given name and service.
62 */
63+ (instancetype)moduleEntryWithName:(NSString *)name xpcServiceName:(NSString *)xpcServiceName NS_AVAILABLE_MAC(10_9);
64
65/*!
66 * @method setOption:value:
67 *
68 * @abstract
69 * Assigns a particular option for this module.
70 *
71 * @discussion
72 * Options are dictated by the module and can be queried via [module supportedOptions].
73 */
74- (void) setOption:(NSString *)optionName value:(id)value NS_AVAILABLE_MAC(10_9);
75
76/*!
77 * @method option:
78 *
79 * @abstract
80 * Fetches the current setting for the requested option.
81 *
82 * @discussion
83 * Fetches the current setting for the requested option.
84 */
85- (id) option:(NSString *)optionName NS_AVAILABLE_MAC(10_9);
86
87@end