Add data model.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
ae73b78935
commit
c5237d5342
|
@ -21,6 +21,10 @@
|
|||
4A4BAD1720B5F8DE00F12B28 /* Wireguard.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1520B5F8DE00F12B28 /* Wireguard.xcdatamodeld */; };
|
||||
4A4BAD1A20B5F8FF00F12B28 /* Profile+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1820B5F8FF00F12B28 /* Profile+CoreDataClass.swift */; };
|
||||
4A4BAD1B20B5F8FF00F12B28 /* Profile+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1920B5F8FF00F12B28 /* Profile+CoreDataProperties.swift */; };
|
||||
4A4BAD2020B6026900F12B28 /* Peer+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1C20B6026900F12B28 /* Peer+CoreDataProperties.swift */; };
|
||||
4A4BAD2120B6026900F12B28 /* Peer+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1D20B6026900F12B28 /* Peer+CoreDataClass.swift */; };
|
||||
4A4BAD2220B6026900F12B28 /* Interface+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1E20B6026900F12B28 /* Interface+CoreDataProperties.swift */; };
|
||||
4A4BAD2320B6026900F12B28 /* Interface+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A4BAD1F20B6026900F12B28 /* Interface+CoreDataClass.swift */; };
|
||||
DA734B3636730B94E9C22F47 /* Pods_Wireguard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BF50C7EC60CD91BBA05E51F /* Pods_Wireguard.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
|
@ -53,6 +57,10 @@
|
|||
4A4BAD1620B5F8DE00F12B28 /* Wireguard.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Wireguard.xcdatamodel; sourceTree = "<group>"; };
|
||||
4A4BAD1820B5F8FF00F12B28 /* Profile+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Profile+CoreDataClass.swift"; sourceTree = "<group>"; };
|
||||
4A4BAD1920B5F8FF00F12B28 /* Profile+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Profile+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
4A4BAD1C20B6026900F12B28 /* Peer+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Peer+CoreDataProperties.swift"; path = "/Users/jeroenleenarts/code/wireguard-ios/Wireguard/Models/Peer+CoreDataProperties.swift"; sourceTree = "<absolute>"; };
|
||||
4A4BAD1D20B6026900F12B28 /* Peer+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Peer+CoreDataClass.swift"; path = "/Users/jeroenleenarts/code/wireguard-ios/Wireguard/Models/Peer+CoreDataClass.swift"; sourceTree = "<absolute>"; };
|
||||
4A4BAD1E20B6026900F12B28 /* Interface+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Interface+CoreDataProperties.swift"; path = "/Users/jeroenleenarts/code/wireguard-ios/Wireguard/Models/Interface+CoreDataProperties.swift"; sourceTree = "<absolute>"; };
|
||||
4A4BAD1F20B6026900F12B28 /* Interface+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Interface+CoreDataClass.swift"; path = "/Users/jeroenleenarts/code/wireguard-ios/Wireguard/Models/Interface+CoreDataClass.swift"; sourceTree = "<absolute>"; };
|
||||
82069F3AE97A82448F990CFB /* Pods-Wireguard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Wireguard.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Wireguard/Pods-Wireguard.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
8BF50C7EC60CD91BBA05E51F /* Pods_Wireguard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Wireguard.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
FB0ABC1036F5A16B24286D3C /* Pods-Wireguard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Wireguard.release.xcconfig"; path = "Pods/Target Support Files/Pods-Wireguard/Pods-Wireguard.release.xcconfig"; sourceTree = "<group>"; };
|
||||
|
@ -152,6 +160,10 @@
|
|||
4A4BAD1420B5F8C000F12B28 /* Models */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4A4BAD1D20B6026900F12B28 /* Peer+CoreDataClass.swift */,
|
||||
4A4BAD1C20B6026900F12B28 /* Peer+CoreDataProperties.swift */,
|
||||
4A4BAD1F20B6026900F12B28 /* Interface+CoreDataClass.swift */,
|
||||
4A4BAD1E20B6026900F12B28 /* Interface+CoreDataProperties.swift */,
|
||||
4A4BAD1820B5F8FF00F12B28 /* Profile+CoreDataClass.swift */,
|
||||
4A4BAD1920B5F8FF00F12B28 /* Profile+CoreDataProperties.swift */,
|
||||
4A4BAD1520B5F8DE00F12B28 /* Wireguard.xcdatamodeld */,
|
||||
|
@ -366,12 +378,16 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4A4BAD0C20B5F6AA00F12B28 /* AppCoordinator.swift in Sources */,
|
||||
4A4BAD2220B6026900F12B28 /* Interface+CoreDataProperties.swift in Sources */,
|
||||
4A4BAD1320B5F82400F12B28 /* Identifyable.swift in Sources */,
|
||||
4A4BAD1720B5F8DE00F12B28 /* Wireguard.xcdatamodeld in Sources */,
|
||||
4A4BAD1A20B5F8FF00F12B28 /* Profile+CoreDataClass.swift in Sources */,
|
||||
4A4BACE820B5F1BF00F12B28 /* ConnectionsTableViewController.swift in Sources */,
|
||||
4A4BAD1020B5F6EC00F12B28 /* RootCoordinator.swift in Sources */,
|
||||
4A4BAD0E20B5F6C300F12B28 /* Coordinator.swift in Sources */,
|
||||
4A4BAD2020B6026900F12B28 /* Peer+CoreDataProperties.swift in Sources */,
|
||||
4A4BAD2320B6026900F12B28 /* Interface+CoreDataClass.swift in Sources */,
|
||||
4A4BAD2120B6026900F12B28 /* Peer+CoreDataClass.swift in Sources */,
|
||||
4A4BAD1B20B5F8FF00F12B28 /* Profile+CoreDataProperties.swift in Sources */,
|
||||
4A4BACE620B5F1BF00F12B28 /* AppDelegate.swift in Sources */,
|
||||
);
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// Interface+CoreDataClass.swift
|
||||
//
|
||||
//
|
||||
// Created by Jeroen Leenarts on 23-05-18.
|
||||
//
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
|
||||
@objc(Interface)
|
||||
public class Interface: NSManagedObject {
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// Interface+CoreDataProperties.swift
|
||||
//
|
||||
//
|
||||
// Created by Jeroen Leenarts on 23-05-18.
|
||||
//
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
|
||||
extension Interface {
|
||||
|
||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<Interface> {
|
||||
return NSFetchRequest<Interface>(entityName: "Interface")
|
||||
}
|
||||
|
||||
@NSManaged public var privateKey: String?
|
||||
@NSManaged public var listenPort: Int16
|
||||
@NSManaged public var fwMark: Int32
|
||||
@NSManaged public var profile: Profile?
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// Peer+CoreDataClass.swift
|
||||
//
|
||||
//
|
||||
// Created by Jeroen Leenarts on 23-05-18.
|
||||
//
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
|
||||
@objc(Peer)
|
||||
public class Peer: NSManagedObject {
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
//
|
||||
// Peer+CoreDataProperties.swift
|
||||
//
|
||||
//
|
||||
// Created by Jeroen Leenarts on 23-05-18.
|
||||
//
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
|
||||
extension Peer {
|
||||
|
||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<Peer> {
|
||||
return NSFetchRequest<Peer>(entityName: "Peer")
|
||||
}
|
||||
|
||||
@NSManaged public var publicKey: String?
|
||||
@NSManaged public var presharedKey: String?
|
||||
@NSManaged public var allowedIPs: String?
|
||||
@NSManaged public var endpoint: String?
|
||||
@NSManaged public var persistentKeepalive: Int16
|
||||
@NSManaged public var profile: Profile?
|
||||
|
||||
}
|
|
@ -10,10 +10,32 @@
|
|||
import Foundation
|
||||
import CoreData
|
||||
|
||||
|
||||
extension Profile {
|
||||
|
||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<Profile> {
|
||||
return NSFetchRequest<Profile>(entityName: "Profile")
|
||||
}
|
||||
|
||||
@NSManaged public var title: String?
|
||||
@NSManaged public var peers: NSSet?
|
||||
@NSManaged public var interface: Interface?
|
||||
|
||||
}
|
||||
|
||||
// MARK: Generated accessors for peers
|
||||
extension Profile {
|
||||
|
||||
@objc(addPeersObject:)
|
||||
@NSManaged public func addToPeers(_ value: Peer)
|
||||
|
||||
@objc(removePeersObject:)
|
||||
@NSManaged public func removeFromPeers(_ value: Peer)
|
||||
|
||||
@objc(addPeers:)
|
||||
@NSManaged public func addToPeers(_ values: NSSet)
|
||||
|
||||
@objc(removePeers:)
|
||||
@NSManaged public func removeFromPeers(_ values: NSSet)
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,27 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14133" systemVersion="17E202" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
|
||||
<entity name="Profile" representedClassName="Profile" syncable="YES"/>
|
||||
<entity name="Interface" representedClassName="Interface" syncable="YES">
|
||||
<attribute name="fwMark" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES" syncable="YES"/>
|
||||
<attribute name="listenPort" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES" syncable="YES"/>
|
||||
<attribute name="privateKey" attributeType="String" syncable="YES"/>
|
||||
<relationship name="profile" maxCount="1" deletionRule="Nullify" destinationEntity="Profile" inverseName="interface" inverseEntity="Profile" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="Peer" representedClassName="Peer" syncable="YES">
|
||||
<attribute name="allowedIPs" attributeType="String" syncable="YES"/>
|
||||
<attribute name="endpoint" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="persistentKeepalive" attributeType="Integer 16" minValueString="0" maxValueString="65535" defaultValueString="0" usesScalarValueType="YES" syncable="YES"/>
|
||||
<attribute name="presharedKey" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="publicKey" attributeType="String" syncable="YES"/>
|
||||
<relationship name="profile" maxCount="1" deletionRule="Nullify" destinationEntity="Profile" inverseName="peers" inverseEntity="Profile" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="Profile" representedClassName="Profile" syncable="YES">
|
||||
<attribute name="title" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<relationship name="interface" maxCount="1" deletionRule="Cascade" destinationEntity="Interface" inverseName="profile" inverseEntity="Interface" syncable="YES"/>
|
||||
<relationship name="peers" toMany="YES" minCount="1" deletionRule="Cascade" destinationEntity="Peer" inverseName="profile" inverseEntity="Peer" syncable="YES"/>
|
||||
</entity>
|
||||
<elements>
|
||||
<element name="Profile" positionX="-63" positionY="-18" width="128" height="45"/>
|
||||
<element name="Profile" positionX="-63" positionY="-18" width="128" height="90"/>
|
||||
<element name="Interface" positionX="-54" positionY="-9" width="128" height="105"/>
|
||||
<element name="Peer" positionX="-36" positionY="9" width="128" height="135"/>
|
||||
</elements>
|
||||
</model>
|
Loading…
Reference in New Issue