diff options
author | abhibeckert <abhi@abhibeckert.com> | 2008-04-04 11:37:36 +0000 |
---|---|---|
committer | abhibeckert <abhi@abhibeckert.com> | 2008-04-04 11:37:36 +0000 |
commit | 0f586da34dac2c764a12055158e4929cf69340a1 (patch) | |
tree | bca3868c9715a10c08017a0a7b6d5148f8bd3556 /MCPKit_bundled.framework/Headers | |
parent | 5fb284b7c12887b8eea6c3a02fa83abf50793992 (diff) | |
download | sequelpro-0f586da34dac2c764a12055158e4929cf69340a1.tar.gz sequelpro-0f586da34dac2c764a12055158e4929cf69340a1.tar.bz2 sequelpro-0f586da34dac2c764a12055158e4929cf69340a1.zip |
Initial import from (slightly modified) CocoaMySQL v0.7b4
Diffstat (limited to 'MCPKit_bundled.framework/Headers')
27 files changed, 2746 insertions, 0 deletions
diff --git a/MCPKit_bundled.framework/Headers/MCPAttribute.h b/MCPKit_bundled.framework/Headers/MCPAttribute.h new file mode 100644 index 00000000..7044718d --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPAttribute.h @@ -0,0 +1,104 @@ +// +// MCPAttribute.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 09/08/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + + +#import <Foundation/Foundation.h> + +@class MCPModel; +@class MCPClassDescription; +@class MCPRelation; +@class MCPJoin; + + +@interface MCPAttribute : NSObject < NSCoding > { +@protected + MCPClassDescription *classDescription; // ClassDescription of which the attribute is attribute + NSString *name; // Name of the attribute (Obj-C side) + Class valueClass; // Class used by the attribute (or NULL if the internal type is not an object) + NSString *internalType; // Name of the class, or type used for the class definition + NSString *externalName; // Name of the corresponding column in the DB + NSString *externalType; // Type used to store the attribute (in the DB) + unsigned int width; // Width (for storing by the DB) + BOOL allowsNull; // Attribute can be null + BOOL autoGenerated; // Attribute is auto generated by the DB + BOOL isPartOfKey; // Attribute is part of theprimary key of the class description + BOOL isPartOfIdentity; // Attribute is part of the idclass description of the class description + BOOL hasAccessor; // Does this attribute have an accessor + id defaultValue; // Default value of the attribute + NSMutableArray *joins; // An array of the joins using this attribute +// NSMutableArray *relations; // An array of the relations (MCPRelation) that use this attribue as join +} + +#pragma mark Class methods ++ (void) initialize; + +#pragma mark Life cycle +- (id) initForClassDescription:(MCPClassDescription *) iClassDescription withName:(NSString *) iName; +- (void) dealloc; + +#pragma mark NSCoding protocol +- (id) initWithCoder:(NSCoder *) decoder; +- (void) encodeWithCoder:(NSCoder *) encoder; + +#pragma mark Setters +- (void) setName:(NSString *) iName; +- (void) setValueClass:(Class) iValueClass; +- (void) setInternalType:(NSString *) iInternalType; +- (void) setExternalType:(NSString *) iExternalType; +- (void) setExternalName:(NSString *) iExternalName; +- (void) setWidth:(unsigned int) iWidth; +- (void) setAllowsNull:(BOOL) iAllowsNull; +- (void) setAutoGenerated:(BOOL) iAutoGenerated; +- (void) setIsPartOfKey:(BOOL) iIsPartOfKey; +- (void) setIsPartOfIdentity:(BOOL) iIsPartOfIdentity; +- (void) setHasAccessor:(BOOL) iHasAccessor; +- (void) setDefaultValue:(id) iDefaultValue; +- (void) insertObject:(MCPJoin *) iJoin inJoinsAtIndex:(unsigned int) index; +- (void) removeObjectFromJoinsAtIndex:(unsigned int) index; +//- (void) addRelation:(MCPRelation *) iRelation; +//- (void) removeRelation:(MCPRelation *) iRelation; + +#pragma mark Getters +- (MCPClassDescription *) classDescription; +- (NSString *) name; +- (Class) valueClass; +- (NSString *) valueClassName; +- (NSString *) internalType; +- (NSString *) externalName; +- (NSString *) externalType; +- (unsigned int) width; +- (BOOL) allowsNull; +- (BOOL) autoGenerated; +- (BOOL) isPartOfKey; +- (BOOL) isPartOfIdentity; +- (BOOL) hasAccessor; +- (id) defaultValue; +- (unsigned int) countOfJoins; +- (MCPJoin *) objectInJoinsAtIndex:(unsigned int) index; +- (unsigned int) indexOfJoinIdenticalTo:(id) iJoin; + +#pragma mark Some general methods: +- (BOOL) isEqual:(id) iObject; + + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPClassDescription+MCPEntreprise.h b/MCPKit_bundled.framework/Headers/MCPClassDescription+MCPEntreprise.h new file mode 100644 index 00000000..a41a4617 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPClassDescription+MCPEntreprise.h @@ -0,0 +1,42 @@ +// +// MCPClassDescription+MCPEntreprise.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 01/11/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + +#import <Foundation/Foundation.h> +#import "MCPClassDescription.h" + +@interface MCPClassDescription (MCPEntreprise) + +#pragma mark Pseudo getters (for NSClassDescription overload) +- (NSArray *) attributeKeys; +- (NSString *) inverseRelationshipKey:(NSString *) relationshipKey; +- (NSArray *) toManyRelationshipKeys; +- (NSArray *) toOneRelationshipKeys; + +#pragma mark Specifics for MCPObject +- (NSArray *) primaryKeyAttributes; +- (NSArray *) identityAttributes; +- (MCPAttribute *) attributeWithName: (NSString *) iName; +- (MCPRelation *) relationWithName:(NSString *) iRelationName; +- (BOOL) singleIntAutoGenKey; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPClassDescription.h b/MCPKit_bundled.framework/Headers/MCPClassDescription.h new file mode 100644 index 00000000..26ca382e --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPClassDescription.h @@ -0,0 +1,91 @@ +// +// MCPClassDescription.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 09/08/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + + +#import <Foundation/Foundation.h> + +@class MCPModel; +@class MCPAttribute; +@class MCPRelation; +@class MCPRelation; + +@interface MCPClassDescription : NSClassDescription < NSCoding > { +@protected + MCPModel *model; // The model where we stand + NSString *name; // Name of the class (can not use className, as it is already used by NSObject). + NSString *externalName; // Name of the table for storage + NSMutableArray *attributes; // array of the attributes of the class description + NSMutableArray *relations; // array of the relations of the class description (both origin and destination) + NSMutableArray *incomings; // array if the INCOMMING relation (just to be sure we are able to invalidate those if necessary) + Class representedClass; // the class object that the description represents. +} + +#warning hasSingleIntAutoGenKey should be a method returning the obvious (from the name). +// This correspond to the method singleIntAutoGenKey in the category MCPEntreprise... which name should I change... + +#pragma mark Class methods ++ (void) initialize; + +#pragma mark Life cycle +- (id) initInModel:(MCPModel *) iModel withName:(NSString *) iName; +- (void) dealloc; + +#pragma mark NSCoding protocol +- (id) initWithCoder:(NSCoder *) decoder; +- (void) encodeWithCoder:(NSCoder *) encoder; + +#pragma mark Making new attributes and relations +- (MCPAttribute *) addNewAttributeWithName:(NSString *) iName inPosition:(int) index; +- (MCPRelation *) addNewRelationTo:(MCPClassDescription *) iTo name:(NSString *) iName inPostion:(int) index; + +#pragma mark Setters +- (void) setName:(NSString *) iName; +- (void) setExternalName:(NSString *) iExternalName; +- (void) insertObject:(MCPAttribute *) iAttribute inAttributesAtIndex:(unsigned int) index; +- (void) removeObjectFromAttributesAtIndex:(unsigned int) index; +- (void) insertObject:(MCPRelation *) iRelation inRelationsAtIndex:(unsigned int) index; +- (void) removeObjectFromRelationsAtIndex:(unsigned int) index; + +#pragma mark Getters +- (MCPModel *) model; +- (NSString *) name; +- (NSString *) externalName; +- (NSArray *) attributes; +- (unsigned int) countOfAttributes; +- (MCPAttribute *) objectInAttributesAtIndex:(unsigned int) index; +- (unsigned int) indexOfAttribute:(id) iAttribute; +- (NSArray *) relations; +- (unsigned int) countOfRelations; +- (MCPRelation *) objectInRelationsAtIndex:(unsigned int) index; +- (unsigned int) indexOfRelation:(id) iRelation; +- (Class) representedClass; + +#pragma mark Some general methods: +- (BOOL) isEqual:(id) iObject; + +#pragma mark Output for logging +- (NSString *) descriptionWithLocale:(NSDictionary *) locale; +//- (NSString *) descriptionWithLocale:(NSDictionary *) locale; +//- (NSString *) description; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPConnection.h b/MCPKit_bundled.framework/Headers/MCPConnection.h new file mode 100644 index 00000000..5b2f2eaf --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPConnection.h @@ -0,0 +1,158 @@ +// +// MCPConnection.h +// SMySQL +// +// Created by serge cohen (serge.cohen@m4x.org) on Sat Dec 08 2001. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPConnection.h 335 2006-01-08 21:14:07Z serge $ +// $Author: serge $ + + +#import <Foundation/Foundation.h> +#import "mysql.h" +#import "MCPConstants.h" + + +@class MCPResult; + +// Deafult connection option +extern const unsigned int kMCPConnectionDefaultOption; + +// Default socket (from the mysql.h used at compile time) +extern const char *kMCPConnectionDefaultSocket; + +// Added to mysql error code +extern const unsigned int kMCPConnectionNotInited; + +// The length of the truncation if required: +extern const unsigned int kLengthOfTruncationForLog; + +@interface MCPConnection : NSObject { +@protected + MYSQL *mConnection; /*"The inited MySQL connection."*/ + BOOL mConnected; /*"Reflect the fact that the connection is already in place or not."*/ + NSStringEncoding mEncoding; /*"The encoding used by MySQL server, to ISO-1 default."*/ + NSTimeZone *mTimeZone; /*"The time zone of the session."*/ + unsigned int mConnectionFlags; /*"The flags to be used for the connection to the database."*/ +} +/*" +Getting default of MySQL +"*/ ++ (NSDictionary *) getMySQLLocales; ++ (NSStringEncoding) encodingForMySQLEncoding:(const char *) mysqlEncoding; ++ (NSStringEncoding) defaultMySQLEncoding; + +/*" +Class maintenance +"*/ ++ (void) initialize; ++ (void) setLogQueries:(BOOL) iLogFlag; ++ (void) setTruncateLongFieldInLogs:(BOOL) iTruncFlag; ++ (BOOL) truncateLongField; + +/*" +Initialisation +"*/ +- (id) init; +// Port to 0 to use the default port +- (id) initToHost:(NSString *) host withLogin:(NSString *) login password:(NSString *) pass usingPort:(int) port; +- (id) initToSocket:(NSString *) socket withLogin:(NSString *) login password:(NSString *) pass; + +- (BOOL) setConnectionOption:(int) option toValue:(BOOL) value; +// Port to 0 to use the default port +- (BOOL) connectWithLogin:(NSString *) login password:(NSString *) pass host:(NSString *) host port:(int) port socket:(NSString *) socket; + +- (BOOL) selectDB:(NSString *) dbName; + +/*" +Errors information +"*/ + +- (NSString *) getLastErrorMessage; +- (unsigned int) getLastErrorID; +- (BOOL) isConnected; +- (BOOL) checkConnection; + +/*" +Queries +"*/ + +- (NSString *) prepareBinaryData:(NSData *) theData; +- (NSString *) prepareString:(NSString *) theString; +- (NSString *) quoteObject:(id) theObject; + +- (MCPResult *) queryString:(NSString *) query; + +- (my_ulonglong) affectedRows; +- (my_ulonglong) insertId; + + +/*" +Getting description of the database structure +"*/ +- (MCPResult *) listDBs; +- (MCPResult *) listDBsLike:(NSString *) dbsName; +- (MCPResult *) listTables; +- (MCPResult *) listTablesLike:(NSString *) tablesName; +// Next method uses SHOW TABLES FROM db to be sure that the db is not changed during this call. +- (MCPResult *) listTablesFromDB:(NSString *) dbName like:(NSString *) tablesName; +- (MCPResult *) listFieldsFromTable:(NSString *) tableName; +- (MCPResult *) listFieldsFromTable:(NSString *) tableName like:(NSString *) fieldsName; + + +/*" +Server information and control +"*/ + +- (NSString *) clientInfo; +- (NSString *) hostInfo; +- (NSString *) serverInfo; +- (NSNumber *) protoInfo; +- (MCPResult *) listProcesses; +- (BOOL) killProcess:(unsigned long) pid; + +//- (BOOL)createDBWithName:(NSString *)dbName; +//- (BOOL)dropDBWithName:(NSString *)dbName; + +/*" +Disconnection +"*/ +- (void) disconnect; +- (void) dealloc; + +/*" +String encoding concerns (C string type to NSString). +It's unlikely that users of the framework needs to use these methods which are used internally +"*/ +- (void) setEncoding:(NSStringEncoding) theEncoding; +- (NSStringEncoding) encoding; + +- (const char *) cStringFromString:(NSString *) theString; +- (NSString *) stringWithCString:(const char *) theCString; + +/*" +Text data convertion to string +"*/ +- (NSString *) stringWithText:(NSData *) theTextData; + +/*" Time Zone handling ."*/ +- (void) setTimeZone:(NSTimeZone *) iTimeZone; +- (NSTimeZone *) timeZone; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPConnectionWinCont.h b/MCPKit_bundled.framework/Headers/MCPConnectionWinCont.h new file mode 100644 index 00000000..98195e9f --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPConnectionWinCont.h @@ -0,0 +1,52 @@ +// +// MCPConnectionWinCont.h +// Vacations +// +// Created by Serge Cohen on Mon May 26 2003. +// Copyright (c) 2003 ARP/wARP. All rights reserved. +// + +#import <AppKit/AppKit.h> + +// External classes, forward reference. +@class MCPDocument; + + +@interface MCPConnectionWinCont : NSWindowController +{ + IBOutlet NSTextField *mHostField; + IBOutlet NSTextField *mLoginField; + IBOutlet NSTextField *mDatabaseField; + IBOutlet NSTextField *mPortField; + + IBOutlet NSPanel *mPasswordSheet; + IBOutlet NSTextField *mPasswordField; + + IBOutlet NSButton *mCreateButton; +// MCPDocument *mMCPDocument; +} + + +/*" Actions for Interface Builder "*/ +/*" For the clear text information. "*/ +- (IBAction) doGo:(id) sender; +- (IBAction) doCancel:(id) sender; +- (IBAction) doCreate:(id) sender; +- (IBAction) modifyInstance:(id) sender; + + +/*" For the password. "*/ +- (IBAction) passwordClick:(id) sender; +- (IBAction) askPassword:(id) sender; +- (NSString *) Password; + + +/*" Overrides of NSWindowController method, to adapt to this Window Controller. "*/ +- (id) init; +- (void) dealloc; +- (void) windowDidLoad; + +/*" Getting the button for creating a DB. "*/ +- (NSButton*) getCreateButton; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPConstants.h b/MCPKit_bundled.framework/Headers/MCPConstants.h new file mode 100644 index 00000000..cccdfe8c --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPConstants.h @@ -0,0 +1,33 @@ +// +// MCPConstants.h +// SMySQL +// +// Created by Serge Cohen (serge.cohen@m4x.org) on Mon Jun 03 2002. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPConstants.h 335 2006-01-08 21:14:07Z serge $ +// $Author: serge $ + + +typedef enum { + MCPTypeArray = 1, + MCPTypeDictionary = 2, + MCPTypeFlippedArray = 3, + MCPTypeFlippedDictionary = 4 +} MCPReturnType; + diff --git a/MCPKit_bundled.framework/Headers/MCPDocument.h b/MCPKit_bundled.framework/Headers/MCPDocument.h new file mode 100644 index 00000000..28f375da --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPDocument.h @@ -0,0 +1,95 @@ +// +// MCPDocument.h +// Vacations +// +// Created by Serge Cohen on Sat May 24 2003. +// Copyright (c) 2003 ARP/wARP. All rights reserved. +// + + +#import <Cocoa/Cocoa.h> + +// External classes, forward reference. +@class MCPConnection; +@class MCPResult; + + +@interface MCPDocument : NSDocument +{ + BOOL MCPConInfoNeeded, MCPPassNeeded; + NSString *MCPHost, *MCPLogin, *MCPDatabase; + unsigned int MCPPort; + MCPConnection *MCPConnect; + +// Handling of windows. + NSWindowController *MCPMainWinCont; + Class MCPConnectedWinCont; /*" Window controller used once the connection is established (As a class). "*/ +// Handling the DB creation state. + NSString *MCPModelName; + BOOL MCPWillCreateNewDB; +} + +/*" Class Maintenance "*/ ++ (void) initialize; + +// Standards +/*" Initialisation and deallocation "*/ +- (id) init; +- (void) dealloc; + +/*" Connection to the databse related "*/ +- (MCPResult *) MCPqueryString:(NSString *) query; +- (unsigned int) MCPinsertRow:(NSString *) insert; +- (MCPConnection *) MCPgetConnection; + +// Accessors +/*" Accessors to the parameters of the connection "*/ +- (void) setMCPHost:(NSString *) theHost; +- (void) setMCPLogin:(NSString *) theLogin; +- (void) setMCPDatabase:(NSString *) theDatabase; +- (void) setMCPPort:(unsigned int) thePort; +- (void) setMCPConInfoNeeded:(BOOL) theConInfoNeeded; + +- (NSString *) MCPHost; +- (NSString *) MCPLogin; +- (NSString *) MCPDatabase; +- (unsigned int) MCPPort; +- (BOOL) MCPConInfoNeeded; +- (BOOL) MCPPassNeeded; + +- (BOOL) MCPisConnected; +- (MCPConnection *) MCPConnect; + +/*" Accessor to the window generated once the connection is established "*/ +- (void) setMCPConnectedWinCont:(Class) theConnectedWinCont; + +- (Class) MCPConnectedWinCont; + +/*" Accessors to the main window (connection or connected window), through their window controller. "*/ +- (NSWindowController *) MCPMainWinCont; + +/*" Accessors to the DB creation instances. "*/ +- (void) setMCPModelName:(NSString *) theModelName; +- (void) setMCPWillCreateNewDB:(BOOL) theWillCreateNewDB; + +- (NSString *) MCPModelName; +- (BOOL) MCPWillCreateNewDB; + +/*" Practical creation of the database, from a model file. "*/ +- (BOOL) createModelDB; + +/*" Overrides of NSDocument methods. "*/ +// Managing the document in file format +- (NSData *) dataRepresentationOfType:(NSString *) aType; +- (BOOL)loadDataRepresentation:(NSData *) data ofType:(NSString *)aType; + +// Managing NSWindowController(s) +- (NSArray *) makeWindowControllers; +- (void) windowControllerDidLoadNib:(NSWindowController *) aController; + +/*" Method to take care of the password sheet. "*/ +// Callback from sheet +- (void) MCPPasswordSheetDidEnd:(NSWindow *) sheet returnCode:(int) returnCode contextInfo:(void *) contextInfo; + + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPEntrepriseNotifications.h b/MCPKit_bundled.framework/Headers/MCPEntrepriseNotifications.h new file mode 100644 index 00000000..824051e6 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPEntrepriseNotifications.h @@ -0,0 +1,35 @@ +// +// MCPEntrepriseNotifications.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 09/08/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + + +#import <Foundation/Foundation.h> + +// The instance are defined in MMDocument.h + +#pragma mark Name for notification + +extern NSString *MCPModelChangedNotification; +extern NSString *MCPClassDescriptionChangedNotification; +extern NSString *MCPAttributeChangedNotification; +extern NSString *MCPRelationChangedNotification; + diff --git a/MCPKit_bundled.framework/Headers/MCPFastQueries.h b/MCPKit_bundled.framework/Headers/MCPFastQueries.h new file mode 100644 index 00000000..cea22a11 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPFastQueries.h @@ -0,0 +1,47 @@ +// +// MCPFastQueries.h +// SMySQL +// +// Created by Serge Cohen (serge.cohen@m4x.org) on Mon Jun 03 2002. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPFastQueries.h 334 2006-01-08 20:32:38Z serge $ +// $Author: serge $ + +#import <Foundation/Foundation.h> + +#import "MCPConnection.h" + +@interface MCPConnection (MCPFastQueries) +/*" +For insert queries, get directly the Id of the newly inserted row +"*/ +- (my_ulonglong) insertQuery:(NSString *) aQuery; +- (my_ulonglong) updateQuery:(NSString *) aQuery; + + +/*" +Returns directly a proper NS object, or a collection (NSArray, NSDictionary...). +"*/ +- (id) getFirstFieldFromQuery:(NSString *) aQuery; +- (id) getFirstRowFromQuery:(NSString *) aQuery asType:(MCPReturnType) aType; +- (id) getAllRowsFromQuery:(NSString *) aQuery asType:(MCPReturnType) aType; +- (NSArray *) getQuery:(NSString *) aQuery colWithIndex:(unsigned int) aCol; +- (NSArray *) getQuery:(NSString *) aQuery colWithName:(NSString *) aColName; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPJoin.h b/MCPKit_bundled.framework/Headers/MCPJoin.h new file mode 100644 index 00000000..4784a30b --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPJoin.h @@ -0,0 +1,68 @@ +// +// MCPJoin.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 18/08/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + +#import <Foundation/Foundation.h> + +@class MCPModel; +@class MCPClassDescription; +@class MCPAttribute; +@class MCPRelation; +@class MCPRelation; + +@interface MCPJoin : NSObject < NSCoding > { +@protected +// Note that NONE of these attributes are retained!!! +// Instead all these objects are notified of the existence of the join +// and are responsible to invalidate/delete it if necessary. + MCPRelation *relation; + MCPAttribute *origin; + MCPAttribute *destination; +} + +#pragma mark Class methods ++ (void) initialize; + +#pragma mark Life cycle +- (id) initForRelation:(MCPRelation *) iRelation from:(MCPAttribute *) iOrigin to:(MCPAttribute *) iDestination; +- (void) invalidate; +- (void) dealloc; + +#pragma mark NSCoding protocol +- (id) initWithCoder:(NSCoder *) decoder; +- (void) encodeWithCoder:(NSCoder *) encoder; + +#pragma mark Setters +// No setter for relation : should be set at init time! +- (void) setOrigin:(MCPAttribute *) iOrigin; +- (void) setDestination:(MCPAttribute *) iDestination; + +#pragma mark Getters +- (MCPRelation *) relation; +- (MCPAttribute *) origin; +- (MCPAttribute *) destination; +- (unsigned int) index; + +#pragma mark Some general methods: +- (BOOL) isEqual:(id) iObject; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPKit_bundled.h b/MCPKit_bundled.framework/Headers/MCPKit_bundled.h new file mode 100644 index 00000000..3242a9dd --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPKit_bundled.h @@ -0,0 +1,38 @@ +/* + * MCPKit_bundled.h + * MCPKit + * + * Created by serge cohen (serge.cohen@m4x.org) on Sat Dec 08 2001. + * Copyright (c) 2001 Serge Cohen. + * + * This code is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or any later version. + * + * This code is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * For a copy of the GNU General Public License, visit <http://www.gnu.org/> or + * write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, + * Boston, MA 02111-1307, USA. + * + * More info at <http://mysql-cocoa.sourceforge.net/> + * + * + * $Id: MCPKit_bundled.h 335 2006-01-08 21:14:07Z serge $ + * $Author: serge $ + */ + +#import <Foundation/Foundation.h> + +#import <MCPKit_bundled/MCPConstants.h> +#import <MCPKit_bundled/MCPNull.h> +#import <MCPKit_bundled/MCPResult.h> +#import <MCPKit_bundled/MCPConnection.h> +#import <MCPKit_bundled/MCPNumber.h> +#import <MCPKit_bundled/MCPResultPlus.h> +#import <MCPKit_bundled/MCPFastQueries.h> +#import "mysql.h" +//#import <SMySQL/mysql.h> diff --git a/MCPKit_bundled.framework/Headers/MCPModel+MCPEntreprise.h b/MCPKit_bundled.framework/Headers/MCPModel+MCPEntreprise.h new file mode 100644 index 00000000..069c9862 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPModel+MCPEntreprise.h @@ -0,0 +1,32 @@ +// +// MCPModel+MCPEntreprise.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 01/11/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + +#import "MCPModel.h" + +@interface MCPModel (MCPEntreprise) + +#pragma mark Work as a class description server +- (void) registerAsClassDescriptionServer; +- (void) registerDescriptionForClass:(NSNotification *) notification; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPModel.h b/MCPKit_bundled.framework/Headers/MCPModel.h new file mode 100644 index 00000000..362fed72 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPModel.h @@ -0,0 +1,78 @@ +// +// MCPModel.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 09/08/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + +#import <Foundation/Foundation.h> + +@class MCPClassDescription; +@class MCPAttribute; +@class MCPRelation; + +@interface MCPModel : NSObject < NSCoding > { +@protected + NSString *name; // Name of the model ... useless. + NSMutableArray *classDescriptions; // Order of the class descriptions in the model. + BOOL usesInnoDBTables; // The database should use InnoDB tables. +// Might add a string holding définition of tables. +// Might also add some sort of template for generated files (at least the header). +} + +#pragma mark Class methods ++ (void) initialize; + +#pragma mark Life cycle +- (id) initWithName:(NSString *) iName; +- (void) dealloc; + +#pragma mark NSCoding protocol +- (id) initWithCoder:(NSCoder *) decoder; +- (void) encodeWithCoder:(NSCoder *) encoder; + +#pragma mark Making new class description +- (MCPClassDescription *) addNewClassDescriptionWithName:(NSString *) iName inPosition:(int) index; + +#pragma mark Setters +- (void) setName:(NSString *) iName; +- (void) setClassDescriptions:(NSArray *) iClassDescriptions; +- (void) insertObject:(MCPClassDescription *) iClassDescription inClassDescriptionsAtIndex:(unsigned int) index; +- (void) removeObjectFromClassDescriptionsAtIndex:(unsigned int) index; +- (void) setUsesInnoDBTables:(BOOL) iUsesInnoDB; + +// Deprecated : non KVC +//- (void) removeClassDescription:(MCPClassDescription *) iClassDescription; +//- (void) addClassDescription:(MCPClassDescription *) iClassDescription; + +#pragma mark Getters +- (NSString *) name; +- (NSArray *) classDescriptions; +- (unsigned int) countOfClassDescriptions; +- (MCPClassDescription *) objectInClassDescriptionsAtIndex:(unsigned int) index; +- (unsigned int) indexOfClassDescription:(id) iClassDescription; +- (BOOL) usesInnoDBTables; + +// Deprecated : non KVC +//- (MCPClassDescription *) classDescriptionWithClassName:(NSString *) iClassDescriptionClassName; + +#pragma mark Output for logging +- (NSString *) descriptionWithLocale:(NSDictionary *) locale; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPNull.h b/MCPKit_bundled.framework/Headers/MCPNull.h new file mode 100644 index 00000000..1fa0babd --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPNull.h @@ -0,0 +1,36 @@ +// +// MCPNull.h +// SMySQL +// +// Created by Serge Cohen (serge.cohen@m4x.org) on Sun Jun 02 2002. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPNull.h 334 2006-01-08 20:32:38Z serge $ +// $Author: serge $ + +#import <Foundation/Foundation.h> + + +@interface NSObject (MCPNSNullTest) + +/*" +Addin to NSObject. +"*/ +- (BOOL) isNSNull; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPNumber.h b/MCPKit_bundled.framework/Headers/MCPNumber.h new file mode 100644 index 00000000..f4851e2a --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPNumber.h @@ -0,0 +1,84 @@ +// +// MCPNumber.h +// NumberTest +// +// Created by serge cohen (serge.cohen@m4x.org) on Sat Dec 08 2001. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPNumber.h 334 2006-01-08 20:32:38Z serge $ +// $Author: serge $ + +#import <Foundation/Foundation.h> + + +@interface MCPNumber : NSNumber { + const char *typeCode; + NSNumber *number; +} + +- (id) initWithChar:(char) value; +- (id) initWithUnsignedChar:(unsigned char) value; +- (id) initWithShort:(short) value; +- (id) initWithUnsignedShort:(unsigned short) value; +- (id) initWithInt:(int) value; +- (id) initWithUnsignedInt:(unsigned int) value; +- (id) initWithLong:(long) value; +- (id) initWithUnsignedLong:(unsigned long) value; +- (id) initWithLongLong:(long long) value; +- (id) initWithUnsignedLongLong:(unsigned long long) value; +- (id) initWithFloat:(float) value; +- (id) initWithDouble:(double) value; +- (id) initWithBool:(BOOL) value; + ++ (MCPNumber *) numberWithChar:(char) value; ++ (MCPNumber *) numberWithUnsignedChar:(unsigned char) value; ++ (MCPNumber *) numberWithShort:(short) value; ++ (MCPNumber *) numberWithUnsignedShort:(unsigned short) value; ++ (MCPNumber *) numberWithInt:(int) value; ++ (MCPNumber *) numberWithUnsignedInt:(unsigned int) value; ++ (MCPNumber *) numberWithLong:(long) value; ++ (MCPNumber *) numberWithUnsignedLong:(unsigned long) value; ++ (MCPNumber *) numberWithLongLong:(long long) value; ++ (MCPNumber *) numberWithUnsignedLongLong:(unsigned long long) value; ++ (MCPNumber *) numberWithFloat:(float) value; ++ (MCPNumber *) numberWithDouble:(double) value; ++ (MCPNumber *) numberWithBool:(BOOL) value; + +- (void) dealloc; + +/*" Most important : NSNumber primitive methods: "*/ +- (const char *) objCType; +- (void) getValue:(void *) buffer; + +//- (NSString *) descriptionWithLocale:(NSDictionary *) aLocale; // Not Primitive, but buggy... + +- (char) charValue; +- (unsigned char) unsignedCharValue; +- (short) shortValue; +- (unsigned short) unsignedShortValue; +- (int) intValue; +- (unsigned int) unsignedIntValue; +- (long) longValue; +- (unsigned long) unsignedLongValue; +- (long long) longLongValue; +- (unsigned long long) unsignedLongLongValue; +- (float) floatValue; +- (double) doubleValue; +- (BOOL) boolValue; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPObject.h b/MCPKit_bundled.framework/Headers/MCPObject.h new file mode 100644 index 00000000..2496180a --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPObject.h @@ -0,0 +1,106 @@ +// +// MCPObject.h +// MCPKit +// +// Created by Serge Cohen on Wed May 19 2004. +// Copyright (c) 2004 Serge Cohen. All rights reserved. +// + +#import <Foundation/Foundation.h> + +/*" Possible return code on some operations of the database interaction. "*/ +typedef enum { + MCPDBReturnUnknown = 0, /*"Unknown state, should not happen."*/ + MCPDBReturnDeleted = 1, /*"The entry have been successfuly deleted from DB."*/ + MCPDBReturnUsed = 2, /*"The entry can not be removed, because some entries are still connected to it (some delete restrict/inhibit delete)."*/ + MCPDBReturnNone = 3, /*"No entry exist with this Id."*/ + MCPDBReturnNew = 4, /*"The entry was indeed new and inserted in the database."*/ + MCPDBReturnUpdated = 5, /*"The entry was updated in the DB."*/ + MCPDBReturnIncompleteKey = 6, /*"Part of the primary key is missing, action not taken."*/ + MCPDBReturnMultiple = 7, /*"Multiple rows are found with a query supposed to return at most one row."*/ + MCPDBReturnNoIdentity = 8, /*"The object does not have attributes that defines identity."*/ + MCPDBReturnNoKey = 9, /*"There is no primary key defined for this entity."*/ + MCPDBReturnNoConnection = 10, /*"The MCPObject is not having a connection."*/ + MCPDBReturnWrongRelationOrigin = 11, /*"Looking for a relation not which origin is not of the specified class."*/ + MCPDBReturnWrongRelationCardinality = 12, /*"Using a method assuming a cardinality of the relation while the relation as the other one."*/ + MCPDBReturnNoSuchRelation = 13, /*"There is no relation with such a name starting from this class."*/ + MCPDBReturnNotTarget = 14, /*"Tried to remove an object from a relation, while the objects does NOT belong to the relation."*/ + MCPDBReturnOK = 100 /*"Everything went OK."*/ +} MCPDBReturnCode; + +@class MCPConnection; +@class MCPClassDescription; +@class MCPRelation; + +@interface MCPObject : NSObject { + MCPClassDescription *classDescription; + MCPConnection *connection; +} + +#pragma mark Life of the Object +/*" Life of the object "*/ +- (id) init; +- (id) initWithDictionary:(NSDictionary *) dictionary; + +- (void) dealloc; + +- (void) setAttributesToDefault; + +#pragma mark Accessors +/*" Accessor(s) "*/ +- (MCPClassDescription *) classDescription; +- (MCPConnection *) connection; + +- (void) setConnection:(MCPConnection *) iConnection; + +#pragma mark Database interface +/*" Database interface "*/ +- (id) readFromDBRow:(NSDictionary *) iDictionary withTableName:(NSString *) iTableName; +- (MCPDBReturnCode) setPrimaryKey:(id) iDictionary andFetchFromDB:(MCPConnection *) iConnection; +//- (MCPDBReturnCode) setPrimaryKey:(NSDictionary *) iDictionary andFetchFromDB:(MCPConnection *) iConnection; +- (NSDictionary *) checkDBId; // the returned dictionary contains a MCPDBReturnCode key with the return code. +- (NSDictionary *) saveInDB; // the returned dictionary contains a MCPDBReturnCode key with the return code. +- (MCPDBReturnCode) getAutoGenerated; +- (MCPDBReturnCode) updateInDB; +- (MCPDBReturnCode) deleteInDB; ++ (MCPDBReturnCode) deleteInDBUsingConnection:(MCPConnection *) iConnection withId:(id) iId; + +#pragma mark Handling relations +/*" Handling realtions "*/ +- (id) getTargetOfRelation:(MCPRelation *) iRelation; +- (id) getTargetOfRelationNamed:(NSString *) iRelationName; +- (MCPDBReturnCode) setTarget:(id) iTarget forRelation:(MCPRelation *) iRelation; +- (MCPDBReturnCode) setTarget:(id) iTarget forRelationNamed:(NSString *) iRelationName; +- (unsigned int) countTargetForRelation:(MCPRelation *) iRelation; +- (unsigned int) countTargetForRelationNamed:(NSString *) iRelationName; +- (MCPObject *) getTargetOfRelation:(MCPRelation *) iRelation atIndex:(unsigned int) iIndex; +- (MCPObject *) getTargetOfRelationNamed:(NSString *) iRelationName atIndex:(unsigned int) iIndex; +- (MCPDBReturnCode) addTarget:(MCPObject *) iTarget toRelation:(MCPRelation *) iRelation; +- (MCPDBReturnCode) addTarget:(MCPObject *) iTarget toRelationNamed:(NSString *) iRelationName; +- (MCPDBReturnCode) removeTarget:(MCPObject *) iTarget toRelation:(MCPRelation *) iRelation; +- (MCPDBReturnCode) removeTarget:(MCPObject *) iTarget toRelationNamed:(NSString *) iRelationName; +- (MCPDBReturnCode) removeTargetToRelation:(MCPRelation *) iRelation atIndex:(unsigned int) iIndex; +- (MCPDBReturnCode) removeTargetToRelationNamed:(NSString *) iRelationName atIndex:(unsigned int) iIndex; +- (unsigned int) indexOfTarget:(MCPObject *) iTarget inRelation:(MCPRelation *) iRelation; +- (unsigned int) indexOfTarget:(MCPObject *) iTarget inRelationNamed:(NSString *) iRelationName; + +#pragma mark Utilities +/*" Utility methods "*/ +- (id) defaultValueForKey:(NSString *) iKey; +- (NSDictionary *) primaryKey; + +/*" Testing equality (VERY important for relation management)"*/ +- (BOOL) isEqual:(id) iObject; + +#pragma mark Output +/*" Output : "*/ +- (NSString *) description; +- (NSString *) descriptionWithLocale:(NSDictionary *) locale; + +#pragma mark Ordering the array for relations +- (NSString *) orderSQLForClassDescription:(MCPClassDescription *) iClassDescription; + +/*" Anti-crash method... "*/ +- (void) setNilValueForKey:(NSString *) iKey; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPRelation.h b/MCPKit_bundled.framework/Headers/MCPRelation.h new file mode 100644 index 00000000..fa359e2e --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPRelation.h @@ -0,0 +1,109 @@ +// +// MCPRelation.h +// MCPModeler +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 11/08/04. +// Copyright 2004 Serge Cohen. All rights reserved. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// + + +#import <Foundation/Foundation.h> + +@class MCPModel; +@class MCPClassDescription; +@class MCPAttribute; + +@class MCPJoin; + +typedef enum { + OnDeleteNullify = 1, + OnDeleteDeny = 2, + OnDeleteCascade = 3, + OnDeleteDefault = 4, + OnDeleteNoAction = 5 +} MCPRelationDeleteRule; + + +@interface MCPRelation : NSObject < NSCoding > { +@protected + NSString *name; // Name of the relation + MCPRelationDeleteRule deleteRule; // Delete rule : what to do of the destination when origin is deleted + MCPRelation *inverseRelation; // The inverse relation (or nil if no inverse present) + MCPClassDescription *origin; // The class description from which the relation originate + MCPClassDescription *destination; // The class description to which the relation arrives + NSMutableArray *joins; // Joining attributes (array of MCPJoin) + BOOL isToMany; // Is the relation to many (or to one) + BOOL isMandatory; // Is the relation mandatory for the class description (origin) + BOOL ownsDestination; // The origin class description owns the destination class description(ies) +} + +#pragma mark Class methods ++ (void) initialize; + ++ (NSArray *) existingDeleteRules; +- (NSArray *) existingDeleteRules; + +#pragma mark Life cycle +- (id) initWithName:(NSString *) iName from:(MCPClassDescription *) iFrom to:(MCPClassDescription *) iTo; +- (void) invalidateRelation; +- (void) dealloc; + +#pragma mark NSCoding protocol +- (id) initWithCoder:(NSCoder *) decoder; +- (void) encodeWithCoder:(NSCoder *) encoder; + +#pragma mark Managing joins +//- (MCPJoin *) addNewJoin; +- (MCPJoin *) addJoinFrom:(MCPAttribute *) iFrom to:(MCPAttribute *) iTo; +- (void) removeJoinFrom:(MCPAttribute *) iFrom to:(MCPAttribute *) iTo; +//- (void) unjoinAttribute:(MCPAttribute *) iAttribute; + +#pragma mark Setters +- (void) setDestination:(MCPClassDescription *) iDestination; +- (void) setName:(NSString *) iName; +- (void) setDeleteRule:(MCPRelationDeleteRule) iDeleteRule; +- (void) setInverseRelation:(MCPRelation *) iInverseRelation; +- (void) insertObject:(MCPJoin *) iJoin inJoinsAtIndex:(unsigned int) index; +- (void) removeObjectFromJoinsAtIndex:(unsigned int) index; +- (void) setIsToMany:(BOOL) iIsToMany; +- (void) setIsMandatory:(BOOL) iIsMandatory; +- (void) setOwnsDestintation:(BOOL) iOwnsDestination; + +#pragma mark Getters +- (NSString *) name; +- (MCPRelationDeleteRule) deleteRule; +- (MCPRelation *) inverseRelation; +- (MCPClassDescription *) origin; +- (MCPClassDescription *) destination; +- (NSArray *) joins; +- (unsigned int) countOfJoins; +- (MCPJoin *) objectInJoinsAtIndex:(unsigned int) index; +- (unsigned int) indexOfJoinIdenticalTo:(id) iJoin; +- (BOOL) isToMany; +- (BOOL) isMandatory; +- (BOOL) ownsDestination; + +#pragma mark Some Usefull methods +- (MCPAttribute *) destinationAttributeForOrigin:(MCPAttribute *) iFrom; +- (MCPAttribute *) originAttributeForDestination:(MCPAttribute *) iTo; + +#pragma mark Some general methods: +- (BOOL) isEqual:(id) iObject; +- (NSString *) descriptionWithLocale:(NSDictionary *) locale; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPResult.h b/MCPKit_bundled.framework/Headers/MCPResult.h new file mode 100644 index 00000000..91b69fb5 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPResult.h @@ -0,0 +1,110 @@ +// +// MCPResult.h +// SMySQL +// +// Created by serge cohen (serge.cohen@m4x.org) on Sat Dec 08 2001. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPResult.h 335 2006-01-08 21:14:07Z serge $ +// $Author: serge $ + + +#import <Foundation/Foundation.h> +#import "mysql.h" +#import "MCPConstants.h" + + +@interface MCPResult : NSObject { +@protected + MYSQL_RES *mResult; /*" The MYSQL_RES structure of the C API. "*/ + NSArray *mNames; /*" An NSArray holding the name of the columns. "*/ + NSDictionary *mMySQLLocales; /*" A Locales dictionary to define the locales of MySQL. "*/ + NSStringEncoding mEncoding; /*" The encoding used by MySQL server, to ISO-1 default. "*/ + unsigned int mNumOfFields; /*" The number of fields in the result. "*/ + NSTimeZone *mTimeZone; /*" The time zone of the connection when the query was made. "*/ +} +/*" +Class maintenance + "*/ + ++ (void) initialize; + + /*" + Init used #{only} by #{MCPConnection} + "*/ + +- (id) initWithMySQLPtr:(MYSQL *) mySQLPtr encoding:(NSStringEncoding) theEncoding timeZone:(NSTimeZone *) iTimeZone; +- (id) initWithResPtr:(MYSQL_RES *) mySQLResPtr encoding:(NSStringEncoding) theEncoding timeZone:(NSTimeZone *) iTimeZone; +- (id) init; + + /*" + General info on the result + "*/ + +- (my_ulonglong) numOfRows; +- (unsigned int) numOfFields; + + /*" + Getting the rows + "*/ + +- (void) dataSeek:(my_ulonglong) row; + +- (id) fetchRowAsType:(MCPReturnType) aType; +- (NSArray *) fetchRowAsArray; +- (NSDictionary *) fetchRowAsDictionary; + + /*" + Getting information on columns + "*/ + +- (NSArray *) fetchFieldNames; + +- (id) fetchTypesAsType:(MCPReturnType) aType; +- (NSArray *) fetchTypesAsArray; +- (NSDictionary *) fetchTypesAsDictionary; + +- (unsigned int) fetchFlagsAtIndex:(unsigned int) index; +- (unsigned int) fetchFlagsForKey:(NSString *) key; + +- (BOOL) isBlobAtIndex:(unsigned int) index; +- (BOOL) isBlobForKey:(NSString *) key; + + /*" + Text data convertion to string + "*/ +- (NSString *) stringWithText:(NSData *) theTextData; + + /*" + Utility method + "*/ +- (NSString *) description; + + /*" + End of the scope... + "*/ + +- (void) dealloc; + + /*" + Private methods, internal use only + "*/ +- (const char *) cStringFromString:(NSString *) theString; +- (NSString *) stringWithCString:(const char *) theCString; + +@end diff --git a/MCPKit_bundled.framework/Headers/MCPResultPlus.h b/MCPKit_bundled.framework/Headers/MCPResultPlus.h new file mode 100644 index 00000000..28d6ff2f --- /dev/null +++ b/MCPKit_bundled.framework/Headers/MCPResultPlus.h @@ -0,0 +1,43 @@ +// +// MCPResultPlus.h +// SMySQL +// +// Created by Serge Cohen (serge.cohen@m4x.org) on Mon Jun 03 2002. +// Copyright (c) 2001 Serge Cohen. +// +// This code is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or any later version. +// +// This code is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// For a copy of the GNU General Public License, visit <http://www.gnu.org/> or +// write to the Free Software Foundation, Inc., 59 Temple Place--Suite 330, +// Boston, MA 02111-1307, USA. +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// +// $Id: MCPResultPlus.h 334 2006-01-08 20:32:38Z serge $ +// $Author: serge $ + +#import <Foundation/Foundation.h> + +#import "MCPResult.h" + +@interface MCPResult (MCPResultPlus) + +/*" +Getting a complete column as an array +"*/ +- (NSArray *) fetchColAtIndex:(unsigned int) aCol; +- (NSArray *) fetchColWithName:(NSString *) aColName; + +/*" +Getting the complete result as 2D array +"*/ +- (id) fetch2DResultAsType:(MCPReturnType) aType; + +@end diff --git a/MCPKit_bundled.framework/Headers/my_alloc.h b/MCPKit_bundled.framework/Headers/my_alloc.h new file mode 100644 index 00000000..a3dd35d7 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/my_alloc.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* + Data structures for mysys/my_alloc.c (root memory allocator) +*/ + +#ifndef _my_alloc_h +#define _my_alloc_h + +#define ALLOC_MAX_BLOCK_TO_DROP 4096 +#define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP 10 + +typedef struct st_used_mem +{ /* struct for once_alloc (block) */ + struct st_used_mem *next; /* Next block in use */ + unsigned int left; /* memory left in block */ + unsigned int size; /* size of block */ +} USED_MEM; + + +typedef struct st_mem_root +{ + USED_MEM *free; /* blocks with free memory in it */ + USED_MEM *used; /* blocks almost without free memory */ + USED_MEM *pre_alloc; /* preallocated block */ + /* if block have less memory it will be put in 'used' list */ + unsigned int min_malloc; + unsigned int block_size; /* initial block size */ + unsigned int block_num; /* allocated blocks counter */ + /* + first free block in queue test counter (if it exceed + MAX_BLOCK_USAGE_BEFORE_DROP block will be droped in 'used' list) + */ + unsigned int first_block_usage; + + void (*error_handler)(void); +} MEM_ROOT; +#endif diff --git a/MCPKit_bundled.framework/Headers/my_list.h b/MCPKit_bundled.framework/Headers/my_list.h new file mode 100644 index 00000000..f786621e --- /dev/null +++ b/MCPKit_bundled.framework/Headers/my_list.h @@ -0,0 +1,46 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _list_h_ +#define _list_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_list { + struct st_list *prev,*next; + void *data; +} LIST; + +typedef int (*list_walk_action)(void *,void *); + +extern LIST *list_add(LIST *root,LIST *element); +extern LIST *list_delete(LIST *root,LIST *element); +extern LIST *list_cons(void *data,LIST *root); +extern LIST *list_reverse(LIST *root); +extern void list_free(LIST *root,unsigned int free_data); +extern unsigned int list_length(LIST *); +extern int list_walk(LIST *,list_walk_action action,gptr argument); + +#define rest(a) ((a)->next) +#define list_push(a,b) (a)=list_cons((b),(a)) +#define list_pop(A) {LIST *old=(A); (A)=list_delete(old,old) ; my_free((gptr) old,MYF(MY_FAE)); } + +#ifdef __cplusplus +} +#endif +#endif diff --git a/MCPKit_bundled.framework/Headers/mysql.h b/MCPKit_bundled.framework/Headers/mysql.h new file mode 100644 index 00000000..d8a56126 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/mysql.h @@ -0,0 +1,738 @@ +/* Copyright (C) 2000-2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _mysql_h +#define _mysql_h + +#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */ +#undef WIN +#undef _WIN +#undef _WIN32 +#undef _WIN64 +#undef __WIN__ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _global_h /* If not standard header */ +#include <sys/types.h> +#ifdef __LCC__ +#include <winsock.h> /* For windows */ +#endif +typedef char my_bool; +#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__) +#define __WIN__ +#endif +#if !defined(__WIN__) +#define STDCALL +#else +#define STDCALL __stdcall +#endif +typedef char * gptr; + +#ifndef my_socket_defined +#ifdef __WIN__ +#define my_socket SOCKET +#else +typedef int my_socket; +#endif /* __WIN__ */ +#endif /* my_socket_defined */ +#endif /* _global_h */ + +#include "mysql_com.h" +#include "mysql_time.h" +#include "mysql_version.h" +#include "typelib.h" + +#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */ + +extern unsigned int mysql_port; +extern char *mysql_unix_port; + +#define CLIENT_NET_READ_TIMEOUT 365*24*3600 /* Timeout on read */ +#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600 /* Timeout on write */ + +#ifdef __NETWARE__ +#pragma pack(push, 8) /* 8 byte alignment */ +#endif + +#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) +#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) +#define IS_BLOB(n) ((n) & BLOB_FLAG) +#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR) +#define IS_NUM_FIELD(f) ((f)->flags & NUM_FLAG) +#define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && ((f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == FIELD_TYPE_YEAR) + + +typedef struct st_mysql_field { + char *name; /* Name of column */ + char *org_name; /* Original column name, if an alias */ + char *table; /* Table of column if column was a field */ + char *org_table; /* Org table name, if table was an alias */ + char *db; /* Database for table */ + char *catalog; /* Catalog for table */ + char *def; /* Default value (set by mysql_list_fields) */ + unsigned long length; /* Width of column (create length) */ + unsigned long max_length; /* Max width for selected set */ + unsigned int name_length; + unsigned int org_name_length; + unsigned int table_length; + unsigned int org_table_length; + unsigned int db_length; + unsigned int catalog_length; + unsigned int def_length; + unsigned int flags; /* Div flags */ + unsigned int decimals; /* Number of decimals in field */ + unsigned int charsetnr; /* Character set */ + enum enum_field_types type; /* Type of field. See mysql_com.h for types */ +} MYSQL_FIELD; + +typedef char **MYSQL_ROW; /* return data as array of strings */ +typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */ + +#ifndef _global_h +#if defined(NO_CLIENT_LONG_LONG) +typedef unsigned long my_ulonglong; +#elif defined (__WIN__) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif +#endif + +#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0) + +typedef struct st_mysql_rows { + struct st_mysql_rows *next; /* list of rows */ + MYSQL_ROW data; + unsigned long length; +} MYSQL_ROWS; + +typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ + +#include "my_alloc.h" + +typedef struct st_mysql_data { + my_ulonglong rows; + unsigned int fields; + MYSQL_ROWS *data; + MEM_ROOT alloc; +#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY) + MYSQL_ROWS **prev_ptr; +#endif +} MYSQL_DATA; + +enum mysql_option +{ + MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, + MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, + MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, + MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, + MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT, + MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION, + MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH +}; + +struct st_mysql_options { + unsigned int connect_timeout, read_timeout, write_timeout; + unsigned int port, protocol; + unsigned long client_flag; + char *host,*user,*password,*unix_socket,*db; + struct st_dynamic_array *init_commands; + char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; + char *ssl_key; /* PEM key file */ + char *ssl_cert; /* PEM cert file */ + char *ssl_ca; /* PEM CA file */ + char *ssl_capath; /* PEM directory of CA-s? */ + char *ssl_cipher; /* cipher to use */ + char *shared_memory_base_name; + unsigned long max_allowed_packet; + my_bool use_ssl; /* if to use SSL or not */ + my_bool compress,named_pipe; + /* + On connect, find out the replication role of the server, and + establish connections to all the peers + */ + my_bool rpl_probe; + /* + Each call to mysql_real_query() will parse it to tell if it is a read + or a write, and direct it to the slave or the master + */ + my_bool rpl_parse; + /* + If set, never read from a master, only from slave, when doing + a read that is replication-aware + */ + my_bool no_master_reads; +#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY) + my_bool separate_thread; +#endif + enum mysql_option methods_to_use; + char *client_ip; + /* Refuse client connecting to server if it uses old (pre-4.1.1) protocol */ + my_bool secure_auth; + + /* function pointers for local infile support */ + int (*local_infile_init)(void **, const char *, void *); + int (*local_infile_read)(void *, char *, unsigned int); + void (*local_infile_end)(void *); + int (*local_infile_error)(void *, char *, unsigned int); + void *local_infile_userdata; +}; + +enum mysql_status +{ + MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,MYSQL_STATUS_USE_RESULT +}; + +enum mysql_protocol_type +{ + MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, + MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY +}; +/* + There are three types of queries - the ones that have to go to + the master, the ones that go to a slave, and the adminstrative + type which must happen on the pivot connectioin +*/ +enum mysql_rpl_type +{ + MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN +}; + +struct st_mysql_methods; + +typedef struct st_mysql +{ + NET net; /* Communication parameters */ + gptr connector_fd; /* ConnectorFd for SSL */ + char *host,*user,*passwd,*unix_socket,*server_version,*host_info,*info; + char *db; + struct charset_info_st *charset; + MYSQL_FIELD *fields; + MEM_ROOT field_alloc; + my_ulonglong affected_rows; + my_ulonglong insert_id; /* id if insert on table with NEXTNR */ + my_ulonglong extra_info; /* Used by mysqlshow */ + unsigned long thread_id; /* Id for connection in server */ + unsigned long packet_length; + unsigned int port; + unsigned long client_flag,server_capabilities; + unsigned int protocol_version; + unsigned int field_count; + unsigned int server_status; + unsigned int server_language; + unsigned int warning_count; + struct st_mysql_options options; + enum mysql_status status; + my_bool free_me; /* If free in mysql_close */ + my_bool reconnect; /* set to 1 if automatic reconnect */ + + /* session-wide random string */ + char scramble[SCRAMBLE_LENGTH+1]; + + /* + Set if this is the original connection, not a master or a slave we have + added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave() + */ + my_bool rpl_pivot; + /* + Pointers to the master, and the next slave connections, points to + itself if lone connection. + */ + struct st_mysql* master, *next_slave; + + struct st_mysql* last_used_slave; /* needed for round-robin slave pick */ + /* needed for send/read/store/use result to work correctly with replication */ + struct st_mysql* last_used_con; + + LIST *stmts; /* list of all statements */ + const struct st_mysql_methods *methods; + void *thd; + /* + Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag + from mysql_stmt_close if close had to cancel result set of this object. + */ + my_bool *unbuffered_fetch_owner; +} MYSQL; + +typedef struct st_mysql_res { + my_ulonglong row_count; + MYSQL_FIELD *fields; + MYSQL_DATA *data; + MYSQL_ROWS *data_cursor; + unsigned long *lengths; /* column lengths of current row */ + MYSQL *handle; /* for unbuffered reads */ + MEM_ROOT field_alloc; + unsigned int field_count, current_field; + MYSQL_ROW row; /* If unbuffered read */ + MYSQL_ROW current_row; /* buffer to current row */ + my_bool eof; /* Used by mysql_fetch_row */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + const struct st_mysql_methods *methods; +} MYSQL_RES; + +#define MAX_MYSQL_MANAGER_ERR 256 +#define MAX_MYSQL_MANAGER_MSG 256 + +#define MANAGER_OK 200 +#define MANAGER_INFO 250 +#define MANAGER_ACCESS 401 +#define MANAGER_CLIENT_ERR 450 +#define MANAGER_INTERNAL_ERR 500 + +#if !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT) +#define MYSQL_CLIENT +#endif + + +typedef struct st_mysql_manager +{ + NET net; + char *host,*user,*passwd; + unsigned int port; + my_bool free_me; + my_bool eof; + int cmd_status; + int last_errno; + char* net_buf,*net_buf_pos,*net_data_end; + int net_buf_size; + char last_error[MAX_MYSQL_MANAGER_ERR]; +} MYSQL_MANAGER; + +typedef struct st_mysql_parameters +{ + unsigned long *p_max_allowed_packet; + unsigned long *p_net_buffer_length; +} MYSQL_PARAMETERS; + +#if !defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY) +#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet) +#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length) +#endif + +/* + Set up and bring down the server; to ensure that applications will + work when linked against either the standard client library or the + embedded server library, these functions should be called. +*/ +int STDCALL mysql_server_init(int argc, char **argv, char **groups); +void STDCALL mysql_server_end(void); +/* + mysql_server_init/end need to be called when using libmysqld or + libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so + you don't need to call it explicitely; but you need to call + mysql_server_end() to free memory). The names are a bit misleading + (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general + names which suit well whether you're using libmysqld or libmysqlclient. We + intend to promote these aliases over the mysql_server* ones. +*/ +#define mysql_library_init mysql_server_init +#define mysql_library_end mysql_server_end + +MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void); + +/* + Set up and bring down a thread; these function should be called + for each thread in an application which opens at least one MySQL + connection. All uses of the connection(s) should be between these + function calls. +*/ +my_bool STDCALL mysql_thread_init(void); +void STDCALL mysql_thread_end(void); + +/* + Functions to get information from the MYSQL and MYSQL_RES structures + Should definitely be used if one uses shared libraries. +*/ + +my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res); +unsigned int STDCALL mysql_num_fields(MYSQL_RES *res); +my_bool STDCALL mysql_eof(MYSQL_RES *res); +MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, + unsigned int fieldnr); +MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res); +MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res); +MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res); + +unsigned int STDCALL mysql_field_count(MYSQL *mysql); +my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql); +my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql); +unsigned int STDCALL mysql_errno(MYSQL *mysql); +const char * STDCALL mysql_error(MYSQL *mysql); +const char *STDCALL mysql_sqlstate(MYSQL *mysql); +unsigned int STDCALL mysql_warning_count(MYSQL *mysql); +const char * STDCALL mysql_info(MYSQL *mysql); +unsigned long STDCALL mysql_thread_id(MYSQL *mysql); +const char * STDCALL mysql_character_set_name(MYSQL *mysql); + +MYSQL * STDCALL mysql_init(MYSQL *mysql); +my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, + const char *cert, const char *ca, + const char *capath, const char *cipher); +my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, + const char *passwd, const char *db); +MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, + const char *user, + const char *passwd, + const char *db, + unsigned int port, + const char *unix_socket, + unsigned long clientflag); +int STDCALL mysql_select_db(MYSQL *mysql, const char *db); +int STDCALL mysql_query(MYSQL *mysql, const char *q); +int STDCALL mysql_send_query(MYSQL *mysql, const char *q, + unsigned long length); +int STDCALL mysql_real_query(MYSQL *mysql, const char *q, + unsigned long length); +MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); + +/* perform query on master */ +my_bool STDCALL mysql_master_query(MYSQL *mysql, const char *q, + unsigned long length); +my_bool STDCALL mysql_master_send_query(MYSQL *mysql, const char *q, + unsigned long length); +/* perform query on slave */ +my_bool STDCALL mysql_slave_query(MYSQL *mysql, const char *q, + unsigned long length); +my_bool STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q, + unsigned long length); + +/* local infile support */ + +#define LOCAL_INFILE_ERROR_LEN 512 + +void +mysql_set_local_infile_handler(MYSQL *mysql, + int (*local_infile_init)(void **, const char *, + void *), + int (*local_infile_read)(void *, char *, + unsigned int), + void (*local_infile_end)(void *), + int (*local_infile_error)(void *, char*, + unsigned int), + void *); + +void +mysql_set_local_infile_default(MYSQL *mysql); + + +/* + enable/disable parsing of all queries to decide if they go on master or + slave +*/ +void STDCALL mysql_enable_rpl_parse(MYSQL* mysql); +void STDCALL mysql_disable_rpl_parse(MYSQL* mysql); +/* get the value of the parse flag */ +int STDCALL mysql_rpl_parse_enabled(MYSQL* mysql); + +/* enable/disable reads from master */ +void STDCALL mysql_enable_reads_from_master(MYSQL* mysql); +void STDCALL mysql_disable_reads_from_master(MYSQL* mysql); +/* get the value of the master read flag */ +my_bool STDCALL mysql_reads_from_master_enabled(MYSQL* mysql); + +enum mysql_rpl_type STDCALL mysql_rpl_query_type(const char* q, int len); + +/* discover the master and its slaves */ +my_bool STDCALL mysql_rpl_probe(MYSQL* mysql); + +/* set the master, close/free the old one, if it is not a pivot */ +int STDCALL mysql_set_master(MYSQL* mysql, const char* host, + unsigned int port, + const char* user, + const char* passwd); +int STDCALL mysql_add_slave(MYSQL* mysql, const char* host, + unsigned int port, + const char* user, + const char* passwd); + +int STDCALL mysql_shutdown(MYSQL *mysql, + enum mysql_enum_shutdown_level + shutdown_level); +int STDCALL mysql_dump_debug_info(MYSQL *mysql); +int STDCALL mysql_refresh(MYSQL *mysql, + unsigned int refresh_options); +int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid); +int STDCALL mysql_set_server_option(MYSQL *mysql, + enum enum_mysql_set_option + option); +int STDCALL mysql_ping(MYSQL *mysql); +const char * STDCALL mysql_stat(MYSQL *mysql); +const char * STDCALL mysql_get_server_info(MYSQL *mysql); +const char * STDCALL mysql_get_client_info(void); +unsigned long STDCALL mysql_get_client_version(void); +const char * STDCALL mysql_get_host_info(MYSQL *mysql); +unsigned long STDCALL mysql_get_server_version(MYSQL *mysql); +unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild); +MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild); +MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql); +int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, + const char *arg); +void STDCALL mysql_free_result(MYSQL_RES *result); +void STDCALL mysql_data_seek(MYSQL_RES *result, + my_ulonglong offset); +MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, + MYSQL_ROW_OFFSET offset); +MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, + MYSQL_FIELD_OFFSET offset); +MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); +unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); +MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); +MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, + const char *wild); +unsigned long STDCALL mysql_escape_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_hex_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, + char *to,const char *from, + unsigned long length); +void STDCALL mysql_debug(const char *debug); +char * STDCALL mysql_odbc_escape_string(MYSQL *mysql, + char *to, + unsigned long to_length, + const char *from, + unsigned long from_length, + void *param, + char * + (*extend_buffer) + (void *, char *to, + unsigned long *length)); +void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); +unsigned int STDCALL mysql_thread_safe(void); +my_bool STDCALL mysql_embedded(void); +MYSQL_MANAGER* STDCALL mysql_manager_init(MYSQL_MANAGER* con); +MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, + const char* host, + const char* user, + const char* passwd, + unsigned int port); +void STDCALL mysql_manager_close(MYSQL_MANAGER* con); +int STDCALL mysql_manager_command(MYSQL_MANAGER* con, + const char* cmd, int cmd_len); +int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, + char* res_buf, + int res_buf_size); +my_bool STDCALL mysql_read_query_result(MYSQL *mysql); + + +/* + The following definitions are added for the enhanced + client-server protocol +*/ + +/* statement state */ +enum enum_mysql_stmt_state +{ + MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, + MYSQL_STMT_FETCH_DONE +}; + + +/* bind structure */ +typedef struct st_mysql_bind +{ + unsigned long *length; /* output length pointer */ + my_bool *is_null; /* Pointer to null indicator */ + void *buffer; /* buffer to get/put data */ + enum enum_field_types buffer_type; /* buffer type */ + unsigned long buffer_length; /* buffer length, must be set for str/binary */ + + /* Following are for internal use. Set by mysql_stmt_bind_param */ + unsigned char *inter_buffer; /* for the current data position */ + unsigned long offset; /* offset position for char/binary fetch */ + unsigned long internal_length; /* Used if length is 0 */ + unsigned int param_number; /* For null count and error messages */ + unsigned int pack_length; /* Internal length for packed data */ + my_bool is_unsigned; /* set if integer type is unsigned */ + my_bool long_data_used; /* If used with mysql_send_long_data */ + my_bool internal_is_null; /* Used if is_null is 0 */ + void (*store_param_func)(NET *net, struct st_mysql_bind *param); + void (*fetch_result)(struct st_mysql_bind *, unsigned char **row); + void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); +} MYSQL_BIND; + + +/* statement handler */ +typedef struct st_mysql_stmt +{ + MEM_ROOT mem_root; /* root allocations */ + LIST list; /* list to keep track of all stmts */ + MYSQL *mysql; /* connection handle */ + MYSQL_BIND *params; /* input parameters */ + MYSQL_BIND *bind; /* output parameters */ + MYSQL_FIELD *fields; /* result set metadata */ + MYSQL_DATA result; /* cached result set */ + MYSQL_ROWS *data_cursor; /* current row in cached result */ + /* copy of mysql->affected_rows after statement execution */ + my_ulonglong affected_rows; + my_ulonglong insert_id; /* copy of mysql->insert_id */ + /* + mysql_stmt_fetch() calls this function to fetch one row (it's different + for buffered, unbuffered and cursor fetch). + */ + int (*read_row_func)(struct st_mysql_stmt *stmt, + unsigned char **row); + unsigned long stmt_id; /* Id for prepared statement */ + unsigned int last_errno; /* error code */ + unsigned int param_count; /* input parameter count */ + unsigned int field_count; /* number of columns in result set */ + enum enum_mysql_stmt_state state; /* statement state */ + char last_error[MYSQL_ERRMSG_SIZE]; /* error message */ + char sqlstate[SQLSTATE_LENGTH+1]; + /* Types of input parameters should be sent to server */ + my_bool send_types_to_server; + my_bool bind_param_done; /* input buffers were supplied */ + my_bool bind_result_done; /* output buffers were supplied */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + /* + Is set to true if we need to calculate field->max_length for + metadata fields when doing mysql_stmt_store_result. + */ + my_bool update_max_length; +} MYSQL_STMT; + +enum enum_stmt_attr_type +{ + /* + When doing mysql_stmt_store_result calculate max_length attribute + of statement metadata. This is to be consistent with the old API, + where this was done automatically. + In the new API we do that only by request because it slows down + mysql_stmt_store_result sufficiently. + */ + STMT_ATTR_UPDATE_MAX_LENGTH +}; + + +typedef struct st_mysql_methods +{ + my_bool (*read_query_result)(MYSQL *mysql); + my_bool (*advanced_command)(MYSQL *mysql, + enum enum_server_command command, + const char *header, + unsigned long header_length, + const char *arg, + unsigned long arg_length, + my_bool skip_check); + MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields, + unsigned int fields); + MYSQL_RES * (*use_result)(MYSQL *mysql); + void (*fetch_lengths)(unsigned long *to, + MYSQL_ROW column, unsigned int field_count); + void (*flush_use_result)(MYSQL *mysql); +#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) + MYSQL_FIELD * (*list_fields)(MYSQL *mysql); + my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); + int (*stmt_execute)(MYSQL_STMT *stmt); + int (*read_binary_rows)(MYSQL_STMT *stmt); + int (*unbuffered_fetch)(MYSQL *mysql, char **row); + void (*free_embedded_thd)(MYSQL *mysql); + const char *(*read_statistics)(MYSQL *mysql); + my_bool (*next_result)(MYSQL *mysql); + int (*read_change_user_result)(MYSQL *mysql, char *buff, const char *passwd); +#endif +} MYSQL_METHODS; + + +MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql); +int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, + unsigned long length); +int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind, + unsigned int column, + unsigned long offset); +int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt); +unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + const void *attr); +my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + void *attr); +my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt); +my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, + unsigned int param_number, + const char *data, + unsigned long length); +MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt); +MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, + MYSQL_ROW_OFFSET offset); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt); +void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset); +my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt); + +my_bool STDCALL mysql_commit(MYSQL * mysql); +my_bool STDCALL mysql_rollback(MYSQL * mysql); +my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode); +my_bool STDCALL mysql_more_results(MYSQL *mysql); +int STDCALL mysql_next_result(MYSQL *mysql); +void STDCALL mysql_close(MYSQL *sock); + + +/* status return codes */ +#define MYSQL_NO_DATA 100 + +#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) + +#ifdef USE_OLD_FUNCTIONS +MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, + const char *user, const char *passwd); +int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); +int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); +#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) +#endif +#define HAVE_MYSQL_REAL_CONNECT + +/* + The following functions are mainly exported because of mysqlbinlog; + They are not for general usage +*/ + +#define simple_command(mysql, command, arg, length, skip_check) \ + (*(mysql)->methods->advanced_command)(mysql, command, \ + NullS, 0, arg, length, skip_check) +unsigned long net_safe_read(MYSQL* mysql); + +#ifdef __NETWARE__ +#pragma pack(pop) /* restore alignment */ +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _mysql_h */ diff --git a/MCPKit_bundled.framework/Headers/mysql_com.h b/MCPKit_bundled.framework/Headers/mysql_com.h new file mode 100644 index 00000000..56c7f7d2 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/mysql_com.h @@ -0,0 +1,397 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* +** Common definition between mysql server & client +*/ + +#ifndef _mysql_com_h +#define _mysql_com_h + +#define NAME_LEN 64 /* Field/table name length */ +#define HOSTNAME_LENGTH 60 +#define USERNAME_LENGTH 16 +#define SERVER_VERSION_LENGTH 60 +#define SQLSTATE_LENGTH 5 + +#define LOCAL_HOST "localhost" +#define LOCAL_HOST_NAMEDPIPE "." + + +#if defined(__WIN__) && !defined( _CUSTOMCONFIG_) +#define MYSQL_NAMEDPIPE "MySQL" +#define MYSQL_SERVICENAME "MySQL" +#endif /* __WIN__ */ + +enum enum_server_command +{ + COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, + COM_CREATE_DB, COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, + COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, + COM_TIME, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, + COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE, + COM_PREPARE, COM_EXECUTE, COM_LONG_DATA, COM_CLOSE_STMT, + COM_RESET_STMT, COM_SET_OPTION, + /* don't forget to update const char *command_name[] in sql_parse.cc */ + + /* Must be last */ + COM_END +}; + + +/* + Length of random string sent by server on handshake; this is also length of + obfuscated password, recieved from client +*/ +#define SCRAMBLE_LENGTH 20 +#define SCRAMBLE_LENGTH_323 8 +/* length of password stored in the db: new passwords are preceeded with '*' */ +#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1) +#define SCRAMBLED_PASSWORD_CHAR_LENGTH_323 (SCRAMBLE_LENGTH_323*2) + + +#define NOT_NULL_FLAG 1 /* Field can't be NULL */ +#define PRI_KEY_FLAG 2 /* Field is part of a primary key */ +#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */ +#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */ +#define BLOB_FLAG 16 /* Field is a blob */ +#define UNSIGNED_FLAG 32 /* Field is unsigned */ +#define ZEROFILL_FLAG 64 /* Field is zerofill */ +#define BINARY_FLAG 128 /* Field is binary */ + +/* The following are only sent to new clients */ +#define ENUM_FLAG 256 /* field is an enum */ +#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */ +#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ +#define SET_FLAG 2048 /* field is a set */ +#define NUM_FLAG 32768 /* Field is num (for clients) */ +#define PART_KEY_FLAG 16384 /* Intern; Part of some key */ +#define GROUP_FLAG 32768 /* Intern: Group field */ +#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */ +#define BINCMP_FLAG 131072 /* Intern: Used by sql_yacc */ + +#define REFRESH_GRANT 1 /* Refresh grant tables */ +#define REFRESH_LOG 2 /* Start on new log file */ +#define REFRESH_TABLES 4 /* close all tables */ +#define REFRESH_HOSTS 8 /* Flush host cache */ +#define REFRESH_STATUS 16 /* Flush status variables */ +#define REFRESH_THREADS 32 /* Flush thread cache */ +#define REFRESH_SLAVE 64 /* Reset master info and restart slave + thread */ +#define REFRESH_MASTER 128 /* Remove all bin logs in the index + and truncate the index */ + +/* The following can't be set with mysql_refresh() */ +#define REFRESH_READ_LOCK 16384 /* Lock tables for read */ +#define REFRESH_FAST 32768 /* Intern flag */ + +/* RESET (remove all queries) from query cache */ +#define REFRESH_QUERY_CACHE 65536 +#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */ +#define REFRESH_DES_KEY_FILE 0x40000L +#define REFRESH_USER_RESOURCES 0x80000L + +#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ +#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ +#define CLIENT_LONG_FLAG 4 /* Get all column flags */ +#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ +#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ +#define CLIENT_COMPRESS 32 /* Can use compression protocol */ +#define CLIENT_ODBC 64 /* Odbc client */ +#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ +#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ +#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ +#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ +#define CLIENT_SSL 2048 /* Switch to SSL after handshake */ +#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ +#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ +#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ +#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ +#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */ +#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */ +#define CLIENT_REMEMBER_OPTIONS (((ulong) 1) << 31) + +#define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ +#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ +#define SERVER_STATUS_MORE_RESULTS 4 /* More results on server */ +#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ +#define SERVER_QUERY_NO_GOOD_INDEX_USED 16 +#define SERVER_QUERY_NO_INDEX_USED 32 +#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ + +#define MYSQL_ERRMSG_SIZE 512 +#define NET_READ_TIMEOUT 30 /* Timeout on read */ +#define NET_WRITE_TIMEOUT 60 /* Timeout on write */ +#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */ + +struct st_vio; /* Only C */ +typedef struct st_vio Vio; + +#define MAX_TINYINT_WIDTH 3 /* Max width for a TINY w.o. sign */ +#define MAX_SMALLINT_WIDTH 5 /* Max width for a SHORT w.o. sign */ +#define MAX_MEDIUMINT_WIDTH 8 /* Max width for a INT24 w.o. sign */ +#define MAX_INT_WIDTH 10 /* Max width for a LONG w.o. sign */ +#define MAX_BIGINT_WIDTH 20 /* Max width for a LONGLONG */ +#define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */ +#define MAX_BLOB_WIDTH 8192 /* Default width for blob */ + +typedef struct st_net { +#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY) + Vio* vio; + unsigned char *buff,*buff_end,*write_pos,*read_pos; + my_socket fd; /* For Perl DBI/dbd */ + unsigned long max_packet,max_packet_size; + unsigned int pkt_nr,compress_pkt_nr; + unsigned int write_timeout, read_timeout, retry_count; + int fcntl; + my_bool compress; + /* + The following variable is set if we are doing several queries in one + command ( as in LOAD TABLE ... FROM MASTER ), + and do not want to confuse the client with OK at the wrong time + */ + unsigned long remain_in_buf,length, buf_length, where_b; + unsigned int *return_status; + unsigned char reading_or_writing; + char save_char; + my_bool no_send_ok; + /* + Pointer to query object in query cache, do not equal NULL (0) for + queries in cache that have not stored its results yet + */ +#endif + char last_error[MYSQL_ERRMSG_SIZE], sqlstate[SQLSTATE_LENGTH+1]; + unsigned int last_errno; + unsigned char error; + gptr query_cache_query; + my_bool report_error; /* We should report error (we have unreported error) */ + my_bool return_errno; +} NET; + +#define packet_error (~(unsigned long) 0) + +enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, + MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, + MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, + MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP, + MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24, + MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, + MYSQL_TYPE_NEWDATE, + MYSQL_TYPE_ENUM=247, + MYSQL_TYPE_SET=248, + MYSQL_TYPE_TINY_BLOB=249, + MYSQL_TYPE_MEDIUM_BLOB=250, + MYSQL_TYPE_LONG_BLOB=251, + MYSQL_TYPE_BLOB=252, + MYSQL_TYPE_VAR_STRING=253, + MYSQL_TYPE_STRING=254, + MYSQL_TYPE_GEOMETRY=255 + +}; + +/* For backward compatibility */ +#define CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS +#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL +#define FIELD_TYPE_TINY MYSQL_TYPE_TINY +#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT +#define FIELD_TYPE_LONG MYSQL_TYPE_LONG +#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT +#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE +#define FIELD_TYPE_NULL MYSQL_TYPE_NULL +#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP +#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG +#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 +#define FIELD_TYPE_DATE MYSQL_TYPE_DATE +#define FIELD_TYPE_TIME MYSQL_TYPE_TIME +#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME +#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR +#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE +#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM +#define FIELD_TYPE_SET MYSQL_TYPE_SET +#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB +#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB +#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB +#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB +#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING +#define FIELD_TYPE_STRING MYSQL_TYPE_STRING +#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY +#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM +#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY + + +/* Shutdown/kill enums and constants */ + +/* Bits for THD::killable. */ +#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0) +#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1) +#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2) +#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3) + +enum mysql_enum_shutdown_level { + /* + We want levels to be in growing order of hardness (because we use number + comparisons). Note that DEFAULT does not respect the growing property, but + it's ok. + */ + SHUTDOWN_DEFAULT = 0, + /* wait for existing connections to finish */ + SHUTDOWN_WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT, + /* wait for existing trans to finish */ + SHUTDOWN_WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS, + /* wait for existing updates to finish (=> no partial MyISAM update) */ + SHUTDOWN_WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE, + /* flush InnoDB buffers and other storage engines' buffers*/ + SHUTDOWN_WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1), + /* don't flush InnoDB buffers, flush other storage engines' buffers*/ + SHUTDOWN_WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1, + /* Now the 2 levels of the KILL command */ +#if MYSQL_VERSION_ID >= 50000 + KILL_QUERY= 254, +#endif + KILL_CONNECTION= 255 +}; + +/* options for mysql_set_option */ +enum enum_mysql_set_option +{ + MYSQL_OPTION_MULTI_STATEMENTS_ON, + MYSQL_OPTION_MULTI_STATEMENTS_OFF +}; + +#define net_new_transaction(net) ((net)->pkt_nr=0) + +#ifdef __cplusplus +extern "C" { +#endif + +my_bool my_net_init(NET *net, Vio* vio); +void my_net_local_init(NET *net); +void net_end(NET *net); +void net_clear(NET *net); +my_bool net_realloc(NET *net, unsigned long length); +my_bool net_flush(NET *net); +my_bool my_net_write(NET *net,const char *packet,unsigned long len); +my_bool net_write_command(NET *net,unsigned char command, + const char *header, unsigned long head_len, + const char *packet, unsigned long len); +int net_real_write(NET *net,const char *packet,unsigned long len); +unsigned long my_net_read(NET *net); + +/* + The following function is not meant for normal usage + Currently it's used internally by manager.c +*/ +struct sockaddr; +int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, + unsigned int timeout); + +struct rand_struct { + unsigned long seed1,seed2,max_value; + double max_value_dbl; +}; + +#ifdef __cplusplus +} +#endif + + /* The following is for user defined functions */ + +enum Item_result {STRING_RESULT, REAL_RESULT, INT_RESULT, ROW_RESULT}; + +typedef struct st_udf_args +{ + unsigned int arg_count; /* Number of arguments */ + enum Item_result *arg_type; /* Pointer to item_results */ + char **args; /* Pointer to argument */ + unsigned long *lengths; /* Length of string arguments */ + char *maybe_null; /* Set to 1 for all maybe_null args */ +} UDF_ARGS; + + /* This holds information about the result */ + +typedef struct st_udf_init +{ + my_bool maybe_null; /* 1 if function can return NULL */ + unsigned int decimals; /* for real functions */ + unsigned long max_length; /* For string functions */ + char *ptr; /* free pointer for function data */ + my_bool const_item; /* 0 if result is independent of arguments */ +} UDF_INIT; + + /* Constants when using compression */ +#define NET_HEADER_SIZE 4 /* standard header size */ +#define COMP_HEADER_SIZE 3 /* compression header extra size */ + + /* Prototypes to password functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + These functions are used for authentication by client and server and + implemented in sql/password.c +*/ + +void randominit(struct rand_struct *, unsigned long seed1, + unsigned long seed2); +double my_rnd(struct rand_struct *); +void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st); + +void hash_password(unsigned long *to, const char *password, unsigned int password_len); +void make_scrambled_password_323(char *to, const char *password); +void scramble_323(char *to, const char *message, const char *password); +my_bool check_scramble_323(const char *, const char *message, + unsigned long *salt); +void get_salt_from_password_323(unsigned long *res, const char *password); +void make_password_from_salt_323(char *to, const unsigned long *salt); + +void make_scrambled_password(char *to, const char *password); +void scramble(char *to, const char *message, const char *password); +my_bool check_scramble(const char *reply, const char *message, + const unsigned char *hash_stage2); +void get_salt_from_password(unsigned char *res, const char *password); +void make_password_from_salt(char *to, const unsigned char *hash_stage2); + +/* end of password.c */ + +char *get_tty_password(char *opt_message); +const char *mysql_errno_to_sqlstate(unsigned int mysql_errno); + +/* Some other useful functions */ + +my_bool my_init(void); +int load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv); +my_bool my_thread_init(void); +void my_thread_end(void); + +#ifdef _global_h +ulong STDCALL net_field_length(uchar **packet); +my_ulonglong net_field_length_ll(uchar **packet); +char *net_store_length(char *pkg, ulonglong length); +#endif + +#ifdef __cplusplus +} +#endif + +#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ +#define MYSQL_STMT_HEADER 4 +#define MYSQL_LONG_DATA_HEADER 6 + +#endif diff --git a/MCPKit_bundled.framework/Headers/mysql_embed.h b/MCPKit_bundled.framework/Headers/mysql_embed.h new file mode 100644 index 00000000..603af8e8 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/mysql_embed.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Defines that are unique to the embedded version of MySQL */ + +#ifdef EMBEDDED_LIBRARY + +/* Things we don't need in the embedded version of MySQL */ +/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */ + +#undef HAVE_PSTACK /* No stacktrace */ +#undef HAVE_DLOPEN /* No udf functions */ +#undef HAVE_OPENSSL +#undef HAVE_ISAM +#undef HAVE_SMEM /* No shared memory */ +#undef HAVE_NDBCLUSTER_DB /* No NDB cluster */ + +#define DONT_USE_RAID + +#endif /* EMBEDDED_LIBRARY */ diff --git a/MCPKit_bundled.framework/Headers/mysql_time.h b/MCPKit_bundled.framework/Headers/mysql_time.h new file mode 100644 index 00000000..5f4fc12c --- /dev/null +++ b/MCPKit_bundled.framework/Headers/mysql_time.h @@ -0,0 +1,56 @@ +/* Copyright (C) 2004 MySQL AB & MySQL Finland AB & TCX DataKonsult AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _mysql_time_h_ +#define _mysql_time_h_ + +/* + Time declarations shared between the server and client API: + you should not add anything to this header unless it's used + (and hence should be visible) in mysql.h. + If you're looking for a place to add new time-related declaration, + it's most likely my_time.h. See also "C API Handling of Date + and Time Values" chapter in documentation. +*/ + +enum enum_mysql_timestamp_type +{ + MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, + MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2 +}; + + +/* + Structure which is used to represent datetime values inside MySQL. + + We assume that values in this structure are normalized, i.e. year <= 9999, + month <= 12, day <= 31, hour <= 23, hour <= 59, hour <= 59. Many functions + in server such as my_system_gmt_sec() or make_time() family of functions + rely on this (actually now usage of make_*() family relies on a bit weaker + restriction). Also functions that produce MYSQL_TIME as result ensure this. + There is one exception to this rule though if this structure holds time + value (time_type == MYSQL_TIMESTAMP_TIME) days and hour member can hold + bigger values. +*/ +typedef struct st_mysql_time +{ + unsigned int year, month, day, hour, minute, second; + unsigned long second_part; + my_bool neg; + enum enum_mysql_timestamp_type time_type; +} MYSQL_TIME; + +#endif /* _mysql_time_h_ */ diff --git a/MCPKit_bundled.framework/Headers/mysql_version.h b/MCPKit_bundled.framework/Headers/mysql_version.h new file mode 100644 index 00000000..9f38c100 --- /dev/null +++ b/MCPKit_bundled.framework/Headers/mysql_version.h @@ -0,0 +1,29 @@ +/* Copyright Abandoned 1996, 1999, 2001 MySQL AB + This file is public domain and comes with NO WARRANTY of any kind */ + +/* Version numbers for protocol & mysqld */ + +#ifndef _mysql_version_h +#define _mysql_version_h +#ifdef _CUSTOMCONFIG_ +#include <custom_conf.h> +#else +#define PROTOCOL_VERSION 10 +#define MYSQL_SERVER_VERSION "4.1.12" +#define MYSQL_BASE_VERSION "mysqld-4.1" +#define MYSQL_SERVER_SUFFIX_DEF "" +#define FRM_VER 6 +#define MYSQL_VERSION_ID 40112 +#define MYSQL_PORT 3306 +#define MYSQL_UNIX_ADDR "/tmp/mysql.sock" +#define MYSQL_CONFIG_NAME "my" +#define MYSQL_COMPILATION_COMMENT "Source distribution" + +/* mysqld compile time options */ +#endif /* _CUSTOMCONFIG_ */ + +#ifndef LICENSE +#define LICENSE GPL +#endif /* LICENSE */ + +#endif /* _mysql_version_h */ diff --git a/MCPKit_bundled.framework/Headers/typelib.h b/MCPKit_bundled.framework/Headers/typelib.h new file mode 100644 index 00000000..4d6a90ad --- /dev/null +++ b/MCPKit_bundled.framework/Headers/typelib.h @@ -0,0 +1,34 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + + +#ifndef _typelib_h +#define _typelib_h + +typedef struct st_typelib { /* Different types saved here */ + unsigned int count; /* How many types */ + const char *name; /* Name of typelib */ + const char **type_names; + unsigned int *type_lengths; +} TYPELIB; + +extern int find_type(char *x,TYPELIB *typelib,unsigned int full_name); +extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); +extern const char *get_type(TYPELIB *typelib,unsigned int nr); + +extern TYPELIB sql_protocol_typelib; + +#endif /* _typelib_h */ |