Author: rfm
Date: Sat Jun 27 17:28:03 2015
New Revision: 38714

URL: http://svn.gna.org/viewcvs/gnustep?rev=38714&view=rev
Log:
implement -batch:

Modified:
    libs/sqlclient/trunk/ChangeLog
    libs/sqlclient/trunk/SQLClient.h
    libs/sqlclient/trunk/SQLClient.m
    libs/sqlclient/trunk/SQLClientPool.m

Modified: libs/sqlclient/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/sqlclient/trunk/ChangeLog?rev=38714&r1=38713&r2=38714&view=diff
==============================================================================
--- libs/sqlclient/trunk/ChangeLog      (original)
+++ libs/sqlclient/trunk/ChangeLog      Sat Jun 27 17:28:03 2015
@@ -1,3 +1,10 @@
+2015-06-27 Richard Frith-Macdonald  <[email protected]>
+
+       * SQLClient.h:
+       * SQLClient.m:
+       * SQLClientPool.m:
+       Implement -batch: method for client pools.
+
 2015-06-26 Richard Frith-Macdonald  <[email protected]>
 
        * SQLClient.h:

Modified: libs/sqlclient/trunk/SQLClient.h
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/sqlclient/trunk/SQLClient.h?rev=38714&r1=38713&r2=38714&view=diff
==============================================================================
--- libs/sqlclient/trunk/SQLClient.h    (original)
+++ libs/sqlclient/trunk/SQLClient.h    Sat Jun 27 17:28:03 2015
@@ -1577,6 +1577,11 @@
  */
 - (int) availableConnections;
 
+/** Creates and returns an autoreleased SQLTransaction instance  which will
+ * use the receiver as the database connection to perform transactions.
+ */
+- (SQLTransaction*) batch: (BOOL)stopOnFailure;
+
 /**
  * Returns the cache used by clients in the pool for storing the results of
  * requests made through them.  Creates a new cache if necessary.

Modified: libs/sqlclient/trunk/SQLClient.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/sqlclient/trunk/SQLClient.m?rev=38714&r1=38713&r2=38714&view=diff
==============================================================================
--- libs/sqlclient/trunk/SQLClient.m    (original)
+++ libs/sqlclient/trunk/SQLClient.m    Sat Jun 27 17:28:03 2015
@@ -89,7 +89,9 @@
 - (BOOL) _swallowClient: (SQLClient*)client withRetain: (BOOL)shouldRetain;
 @end
 @interface      SQLTransaction (Creation)
-+ (SQLTransaction*) _transactionUsing: (id)clientOrPool;
++ (SQLTransaction*) _transactionUsing: (id)clientOrPool
+                                batch: (BOOL)isBatched
+                                 stop: (BOOL)stopOnFailure;
 @end
 
 @implementation         SQLRecordKeys
@@ -2783,16 +2785,9 @@
 
 - (SQLTransaction*) batch: (BOOL)stopOnFailure
 {
-  SQLTransaction        *transaction;
-
-  transaction = (SQLTransaction*)NSAllocateObject([SQLTransaction class], 0,
-    NSDefaultMallocZone());
- 
-  transaction->_db = [self retain];
-  transaction->_info = [NSMutableArray new];
-  transaction->_batch = YES;
-  transaction->_stop = stopOnFailure;
-  return [(SQLTransaction*)transaction autorelease];
+  return [SQLTransaction _transactionUsing: self
+                                     batch: YES
+                                      stop: stopOnFailure];
 }
 
 - (NSMutableArray*) columns: (NSMutableArray*)records
@@ -2864,7 +2859,7 @@
 
 - (SQLTransaction*) transaction
 {
-  return [SQLTransaction _transactionUsing: self];
+  return [SQLTransaction _transactionUsing: self batch: NO stop: NO];
 }
 
 @end
@@ -3125,6 +3120,8 @@
 @implementation        SQLTransaction
 
 + (SQLTransaction*) _transactionUsing: (id)clientOrPool
+                                batch: (BOOL)isBatched
+                                 stop: (BOOL)stopOnFailure
 {
   SQLTransaction       *transaction;
 
@@ -3133,6 +3130,8 @@
  
   transaction->_db = [clientOrPool retain];
   transaction->_info = [NSMutableArray new];
+  transaction->_batch = isBatched;
+  transaction->_stop = stopOnFailure;
   return [transaction autorelease];
 }
 

Modified: libs/sqlclient/trunk/SQLClientPool.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/sqlclient/trunk/SQLClientPool.m?rev=38714&r1=38713&r2=38714&view=diff
==============================================================================
--- libs/sqlclient/trunk/SQLClientPool.m        (original)
+++ libs/sqlclient/trunk/SQLClientPool.m        Sat Jun 27 17:28:03 2015
@@ -62,7 +62,9 @@
 @end
 
 @interface      SQLTransaction (Creation)
-+ (SQLTransaction*) _transactionUsing: (id)clientOrPool;
++ (SQLTransaction*) _transactionUsing: (id)clientOrPool
+                                batch: (BOOL)isBatched
+                                 stop: (BOOL)stopOnFailure;
 @end
 
 @implementation        SQLClientPool
@@ -83,6 +85,13 @@
     }
   [self _unlock];
   return available;
+}
+
+- (SQLTransaction*) batch: (BOOL)stopOnFailure
+{
+  return [SQLTransaction _transactionUsing: self
+                                     batch: YES
+                                      stop: stopOnFailure];
 }
 
 - (GSCache*) cache
@@ -755,7 +764,9 @@
 
 - (SQLTransaction*) transaction
 {
-  return [SQLTransaction _transactionUsing: self];
+  return [SQLTransaction _transactionUsing: self
+                                     batch: NO
+                                      stop: NO];
 }
 
 @end


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to