]> git.saurik.com Git - apple/security.git/blob - Analytics/SQLite/SFSQLiteStatement.h
Security-59306.11.20.tar.gz
[apple/security.git] / Analytics / SQLite / SFSQLiteStatement.h
1 /*
2 * Copyright (c) 2017 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 #ifndef SECURITY_SFSQLSTATEMENT_H
25 #define SECURITY_SFSQLSTATEMENT_H 1
26
27 #if __OBJC2__
28
29 #import <Foundation/Foundation.h>
30 #import <sqlite3.h>
31
32 @class SFSQLite;
33
34 @interface SFSQLiteStatement : NSObject {
35 __weak SFSQLite* _SQLite;
36 NSString* _SQL;
37 sqlite3_stmt* _handle;
38 BOOL _reset;
39 NSMutableArray* _temporaryBoundObjects;
40 }
41
42 - (id)initWithSQLite:(SFSQLite *)SQLite SQL:(NSString *)SQL handle:(sqlite3_stmt *)handle;
43
44 @property (nonatomic, readonly, weak) SFSQLite *SQLite;
45 @property (nonatomic, readonly, strong) NSString *SQL;
46 @property (nonatomic, readonly, assign) sqlite3_stmt *handle;
47
48 @property (nonatomic, assign, getter=isReset) BOOL reset;
49
50 - (BOOL)step;
51 - (void)reset;
52
53 - (void)finalizeStatement;
54
55 - (void)bindInt:(SInt32)value atIndex:(NSUInteger)index;
56 - (void)bindInt64:(SInt64)value atIndex:(NSUInteger)index;
57 - (void)bindDouble:(double)value atIndex:(NSUInteger)index;
58 - (void)bindBlob:(NSData *)value atIndex:(NSUInteger)index;
59 - (void)bindText:(NSString *)value atIndex:(NSUInteger)index;
60 - (void)bindNullAtIndex:(NSUInteger)index;
61 - (void)bindValue:(id)value atIndex:(NSUInteger)index;
62 - (void)bindValues:(NSArray *)values;
63
64 - (NSUInteger)columnCount;
65 - (int)columnTypeAtIndex:(NSUInteger)index;
66 - (NSString *)columnNameAtIndex:(NSUInteger)index;
67
68 - (SInt32)intAtIndex:(NSUInteger)index;
69 - (SInt64)int64AtIndex:(NSUInteger)index;
70 - (double)doubleAtIndex:(NSUInteger)index;
71 - (NSData *)blobAtIndex:(NSUInteger)index;
72 - (NSString *)textAtIndex:(NSUInteger)index;
73 - (id)objectAtIndex:(NSUInteger)index;
74 - (NSArray *)allObjects;
75 - (NSDictionary *)allObjectsByColumnName;
76
77 @end
78
79 #endif /* __OBJC2__ */
80 #endif /* SECURITY_SFSQLSTATEMENT_H */