Skip to content

Commit

Permalink
Make a “protected” access level for PeripheralServicesFactory propert…
Browse files Browse the repository at this point in the history
…ies.

Refactor some remaining parts to use subscripts instead methods.
  • Loading branch information
kyzmitch committed Feb 23, 2018
1 parent 231cd9c commit f4db6a1
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 10 deletions.
4 changes: 4 additions & 0 deletions BleScannerFramework/BleScanner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
849390141FFE47E4000325B3 /* BluetoothScanModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8493900A1FFE47E4000325B3 /* BluetoothScanModel.m */; };
849390151FFE47E4000325B3 /* PeripheralInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8493900B1FFE47E4000325B3 /* PeripheralInfo.h */; };
849390161FFE47E4000325B3 /* PeripheralInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8493900C1FFE47E4000325B3 /* PeripheralInfo.m */; };
C711A924204008ED000795FF /* PeripheralServicesFactorySubclass.h in Headers */ = {isa = PBXBuildFile; fileRef = C711A92320400783000795FF /* PeripheralServicesFactorySubclass.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand Down Expand Up @@ -68,6 +69,7 @@
8493900A1FFE47E4000325B3 /* BluetoothScanModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BluetoothScanModel.m; sourceTree = "<group>"; };
8493900B1FFE47E4000325B3 /* PeripheralInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeripheralInfo.h; sourceTree = "<group>"; };
8493900C1FFE47E4000325B3 /* PeripheralInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PeripheralInfo.m; sourceTree = "<group>"; };
C711A92320400783000795FF /* PeripheralServicesFactorySubclass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PeripheralServicesFactorySubclass.h; path = BleScanner/Implementation/PeripheralServicesFactorySubclass.h; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -145,6 +147,7 @@
8493900C1FFE47E4000325B3 /* PeripheralInfo.m */,
844542BF201D015D0006DDC9 /* PeripheralServicesFactory.h */,
844542C0201D015D0006DDC9 /* PeripheralServicesFactory.m */,
C711A92320400783000795FF /* PeripheralServicesFactorySubclass.h */,
);
path = Implementation;
sourceTree = "<group>";
Expand All @@ -160,6 +163,7 @@
84938FFD1FFE47DB000325B3 /* BluetoothPeripheralInterfaceValidator.h in Headers */,
84938FF81FFE47DB000325B3 /* BluetoothCentralCallbacksProtocol.h in Headers */,
84938FFE1FFE47DB000325B3 /* BluetoothScanProtocol.h in Headers */,
C711A924204008ED000795FF /* PeripheralServicesFactorySubclass.h in Headers */,
84938FFB1FFE47DB000325B3 /* BluetoothEngineInterface.h in Headers */,
849390001FFE47DB000325B3 /* PeripheralBasicInfoProtocol.h in Headers */,
84938FFF1FFE47DB000325B3 /* BluetoothValuesProtocol.h in Headers */,
Expand Down
1 change: 1 addition & 0 deletions BleScannerFramework/BleScanner/BLEScanner.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ FOUNDATION_EXPORT const unsigned char BLEScannerVersionString[];
#import <BLEScanner/BluetoothConstants.h>
#import <BLEScanner/PeripheralCharacteristicsProtocol.h>
#import <BLEScanner/PeripheralServicesFactory.h>
#import <BLEScanner/PeripheralServicesFactorySubclass.h>
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,9 @@

@interface PeripheralServicesFactory : NSObject <BluetoothPeripheralAbstractFactory, BluetoothPeripheralInterfaceValidator, PeripheralCharacteristicsProtocol>

// TODO: somehow make following properties not public or
// not possible for modifications outside of child class init methods

@property (nonatomic, strong, nonnull) NSArray<CBUUID *> *backgroundServices;
@property (nonatomic, strong, nonnull) NSDictionary<CBUUID *, NSArray<CBUUID *> *> *characteristicsUuids;
@property (nonatomic, strong, nonnull) NSMutableDictionary<CBUUID *, NSNumber *> *serviceChecks;
@property (nonatomic, strong, nonnull) NSMutableDictionary<CBUUID *, NSArray<CBCharacteristic *> *> *characteristicsDictionary;
@property (nonatomic, strong, nonnull, readonly) NSArray<CBUUID *> *backgroundServices;
@property (nonatomic, strong, nonnull, readonly) NSDictionary<CBUUID *, NSArray<CBUUID *> *> *characteristicsUuids;
@property (nonatomic, strong, nonnull, readonly) NSMutableDictionary<CBUUID *, NSNumber *> *serviceChecks;
@property (nonatomic, strong, nonnull, readonly) NSMutableDictionary<CBUUID *, NSArray<CBCharacteristic *> *> *characteristicsDictionary;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
//

#import "PeripheralServicesFactory.h"
#import "PeripheralServicesFactorySubclass.h"

@implementation PeripheralServicesFactory

Expand Down Expand Up @@ -43,7 +44,7 @@ - (void)markServiceAsCheckedForUuid:(CBUUID *)checkedUuid {
- (void)resetAllCheckmarksForServices {
@synchronized (self) {
for (CBUUID *key in _serviceChecks.allKeys) {
[_serviceChecks setObject:@(NO) forKey:key];
_serviceChecks[key] = @(NO);
}
}
}
Expand All @@ -61,7 +62,7 @@ - (BOOL)isInterfaceCompletelyMatch {
}

- (void)saveCharacteristics:(NSArray<CBCharacteristic *> *)characteristics forService:(CBUUID *)uuid{
[_characteristicsDictionary setObject:characteristics forKey:uuid];
_characteristicsDictionary[uuid] = characteristics;
}

#pragma mark - PeripheralCharacteristicsProtocol
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// PeripheralServicesFactorySubclass.h
// BleScanner
//
// Created by Andrey Ermoshin on 23/02/2018.
// Copyright © 2018 kyzmitch. All rights reserved.
//

#import <BLEScanner/PeripheralServicesFactory.h>

@interface PeripheralServicesFactory ()

@property (nonatomic, strong, nonnull, readwrite) NSArray<CBUUID *> *backgroundServices;
@property (nonatomic, strong, nonnull, readwrite) NSDictionary<CBUUID *, NSArray<CBUUID *> *> *characteristicsUuids;
@property (nonatomic, strong, nonnull, readwrite) NSMutableDictionary<CBUUID *, NSNumber *> *serviceChecks;
@property (nonatomic, strong, nonnull, readwrite) NSMutableDictionary<CBUUID *, NSArray<CBCharacteristic *> *> *characteristicsDictionary;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
@required
@property (nonatomic, strong) NSNumber *RSSI;
@property (nonatomic, strong) CBPeripheral *peripheral;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, copy) NSString *name;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
//

#import "FitbitFlexServicesFactory.h"
#import <BLEScanner/PeripheralServicesFactorySubclass.h>
#import <BLEScanner/BluetoothConstants.h>

static NSString *backgroundSrv = @"ADAB4127-6E7D-4601-BDA2-BFFAA68956BA";
Expand Down

0 comments on commit f4db6a1

Please sign in to comment.