Overview
Comment: | Add SL3OpenFailedException |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
26a83e91f0807f2af6b7b95b33482e55 |
User & Date: | js 2020-08-31 22:19:00 |
Context
2020-09-01
| ||
01:43 | Add SL3Statement check-in: cc03d24ff3 user: js tags: trunk | |
2020-08-31
| ||
22:19 | Add SL3OpenFailedException check-in: 26a83e91f0 user: js tags: trunk | |
21:44 | Add .fossil-settings/ignore-glob check-in: 900c5d0895 user: js tags: trunk | |
Changes
Changes to src/SL3Connection.m.
︙ | ︙ | |||
18 19 20 21 22 23 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "SL3Connection.h" | | < | | > | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "SL3Connection.h" #import "SL3OpenFailedException.h" @implementation SL3Connection + (instancetype)connectionWithPath: (OFString *)path flags: (int)flags { return [[[self alloc] initWithPath: path flags: flags] autorelease]; } - (instancetype)initWithPath: (OFString *)path flags: (int)flags { self = [super init]; @try { int errorCode = sqlite3_open_v2(path.UTF8String, &_database, flags, NULL); if (errorCode != SQLITE_OK) @throw [SL3OpenFailedException exceptionWithPath: path flags: flags errorCode: errorCode]; } @catch (id e) { [self release]; @throw e; } return self; } |
︙ | ︙ |
Changes to src/exceptions/Makefile.
1 2 3 4 5 | include ../../extra.mk STATIC_PIC_LIB_NOINST = ${EXCEPTIONS_LIB_A} STATIC_LIB_NOINST = ${EXCEPTIONS_A} | | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 | include ../../extra.mk STATIC_PIC_LIB_NOINST = ${EXCEPTIONS_LIB_A} STATIC_LIB_NOINST = ${EXCEPTIONS_A} SRCS = SL3Exception.m \ SL3OpenFailedException.m INCLUDES = ${SRCS:.m=.h} include ../../buildsys.mk CPPFLAGS += -I. -I.. |
Changes to src/exceptions/SL3Exception.h.
︙ | ︙ | |||
31 32 33 34 35 36 37 38 39 40 41 42 43 44 | SL3Connection *_connection; int _errorCode; } @property OF_NULLABLE_PROPERTY (readonly, nonatomic) SL3Connection *connection; @property (readonly, nonatomic) int errorCode; + (instancetype)exceptionWithConnection: (nullable SL3Connection *)connection errorCode: (int)errorCode; - (instancetype)initWithConnection: (nullable SL3Connection *)connection errorCode: (int)errorCode OF_DESIGNATED_INITIALIZER; @end OF_ASSUME_NONNULL_END | > > | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | SL3Connection *_connection; int _errorCode; } @property OF_NULLABLE_PROPERTY (readonly, nonatomic) SL3Connection *connection; @property (readonly, nonatomic) int errorCode; + (instancetype)exception OF_UNAVAILABLE; + (instancetype)exceptionWithConnection: (nullable SL3Connection *)connection errorCode: (int)errorCode; - (instancetype)init OF_UNAVAILABLE; - (instancetype)initWithConnection: (nullable SL3Connection *)connection errorCode: (int)errorCode OF_DESIGNATED_INITIALIZER; @end OF_ASSUME_NONNULL_END |
Changes to src/exceptions/SL3Exception.m.
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | * POSSIBILITY OF SUCH DAMAGE. */ #import "SL3Exception.h" @implementation SL3Exception @synthesize connection = _connection, errorCode = _errorCode; + (instancetype)exceptionWithConnection: (SL3Connection *)connection errorCode: (int)errorCode { return [[[self alloc] initWithConnection: connection errorCode: errorCode] autorelease]; } - (instancetype)initWithConnection: (SL3Connection *)connection errorCode: (int)errorCode { self = [super init]; _connection = [connection retain]; | > > > > > > > > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | * POSSIBILITY OF SUCH DAMAGE. */ #import "SL3Exception.h" @implementation SL3Exception @synthesize connection = _connection, errorCode = _errorCode; + (instancetype)exception { OF_UNRECOGNIZED_SELECTOR } + (instancetype)exceptionWithConnection: (SL3Connection *)connection errorCode: (int)errorCode { return [[[self alloc] initWithConnection: connection errorCode: errorCode] autorelease]; } - (instancetype)init { OF_INVALID_INIT_METHOD } - (instancetype)initWithConnection: (SL3Connection *)connection errorCode: (int)errorCode { self = [super init]; _connection = [connection retain]; |
︙ | ︙ |
Added src/exceptions/SL3OpenFailedException.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | /* * Copyright (c) 2020, Jonathan Schleifer <js@nil.im> * * https://fossil.nil.im/objsqlite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "SL3Exception.h" OF_ASSUME_NONNULL_BEGIN @interface SL3OpenFailedException: SL3Exception { OFString *_path; int _flags; } @property (readonly, nonatomic) OFString *path; @property (readonly, nonatomic) int flags; + (instancetype)exceptionWithConnection: (nullable SL3Connection *)connection errorCode: (int)errorCode OF_UNAVAILABLE; + (instancetype)exceptionWithPath: (OFString *)path flags: (int)flags errorCode: (int)errorCode; - (instancetype)initWithConnection: (nullable SL3Connection *)connection errorCode: (int)errorCode OF_UNAVAILABLE; - (instancetype)initWithPath: (OFString *)path flags: (int)flags errorCode: (int)errorCode OF_DESIGNATED_INITIALIZER; @end OF_ASSUME_NONNULL_END |
Added src/exceptions/SL3OpenFailedException.m.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /* * Copyright (c) 2020, Jonathan Schleifer <js@nil.im> * * https://fossil.nil.im/objsqlite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "SL3OpenFailedException.h" @implementation SL3OpenFailedException @synthesize path = _Path, flags = _flags; + (instancetype)exceptionWithConnection: (SL3Connection *)connection errorCode: (int)errorCode OF_UNAVAILABLE { OF_UNRECOGNIZED_SELECTOR } + (instancetype)exceptionWithPath: (OFString *)path flags: (int)flags errorCode: (int)errorCode { return [[[self alloc] initWithPath: path flags: flags errorCode: errorCode] autorelease]; } - (instancetype)initWithConnection: (SL3Connection *)connection errorCode: (int)errorCode OF_UNAVAILABLE { OF_INVALID_INIT_METHOD } - (instancetype)initWithPath: (OFString *)path flags: (int)flags errorCode: (int)errorCode { self = [super initWithConnection: nil errorCode: errorCode]; @try { _path = [path copy]; _flags = flags; } @catch (id e) { [self release]; @throw e; } return self; } @end |