aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/MCPKit_bundled.framework/Versions
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2008-12-10 16:52:52 +0000
committerstuconnolly <stuart02@gmail.com>2008-12-10 16:52:52 +0000
commitfab9a6506cd04ec8f840c98772a80c44a79c74a7 (patch)
tree3cd483487bef381c934717f10df71d306c7eaf97 /Frameworks/MCPKit_bundled.framework/Versions
parent4c3b208fad0572d8d1a79bba1bd1b8147fd0f8a6 (diff)
downloadsequelpro-fab9a6506cd04ec8f840c98772a80c44a79c74a7.tar.gz
sequelpro-fab9a6506cd04ec8f840c98772a80c44a79c74a7.tar.bz2
sequelpro-fab9a6506cd04ec8f840c98772a80c44a79c74a7.zip
MERGED r262:266 from branches/stuart02 to trunk to include new project structure.
Diffstat (limited to 'Frameworks/MCPKit_bundled.framework/Versions')
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPAttribute.h104
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPClassDescription+MCPEntreprise.h42
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPClassDescription.h91
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConnection.h158
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConnectionWinCont.h52
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConstants.h33
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPDocument.h95
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPEntrepriseNotifications.h35
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPFastQueries.h47
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPJoin.h68
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPKit_bundled.h38
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPModel+MCPEntreprise.h32
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPModel.h78
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPNull.h36
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPNumber.h84
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPObject.h106
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPRelation.h109
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPResult.h110
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPResultPlus.h43
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/my_alloc.h52
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/my_list.h46
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql.h738
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_com.h399
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_embed.h33
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_time.h56
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_version.h29
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Headers/typelib.h34
-rwxr-xr-xFrameworks/MCPKit_bundled.framework/Versions/A/MCPKit_bundledbin0 -> 1748716 bytes
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPAttribute+Private.h35
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPClassDescription+Private.h41
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPRelation+Private.h41
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/InfoPlist.stringsbin0 -> 192 bytes
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/JavaCompiling.plist8
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/_MCPConnectionWindow_EOArchive_English.java424
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/classes.nib28
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/info.nib16
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/keyedobjects.nibbin0 -> 9169 bytes
-rw-r--r--Frameworks/MCPKit_bundled.framework/Versions/A/Resources/Info.plist20
l---------Frameworks/MCPKit_bundled.framework/Versions/Current1
39 files changed, 3362 insertions, 0 deletions
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPAttribute.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPAttribute.h
new file mode 100644
index 00000000..7044718d
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPClassDescription+MCPEntreprise.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPClassDescription+MCPEntreprise.h
new file mode 100644
index 00000000..a41a4617
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPClassDescription.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPClassDescription.h
new file mode 100644
index 00000000..26ca382e
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConnection.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConnection.h
new file mode 100644
index 00000000..5b2f2eaf
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConnectionWinCont.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConnectionWinCont.h
new file mode 100644
index 00000000..98195e9f
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConstants.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPConstants.h
new file mode 100644
index 00000000..cccdfe8c
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPDocument.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPDocument.h
new file mode 100644
index 00000000..28f375da
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPEntrepriseNotifications.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPEntrepriseNotifications.h
new file mode 100644
index 00000000..824051e6
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPFastQueries.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPFastQueries.h
new file mode 100644
index 00000000..cea22a11
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPJoin.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPJoin.h
new file mode 100644
index 00000000..4784a30b
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPKit_bundled.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPKit_bundled.h
new file mode 100644
index 00000000..3242a9dd
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPModel+MCPEntreprise.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPModel+MCPEntreprise.h
new file mode 100644
index 00000000..069c9862
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPModel.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPModel.h
new file mode 100644
index 00000000..362fed72
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPNull.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPNull.h
new file mode 100644
index 00000000..1fa0babd
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPNumber.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPNumber.h
new file mode 100644
index 00000000..f4851e2a
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPObject.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPObject.h
new file mode 100644
index 00000000..2496180a
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPRelation.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPRelation.h
new file mode 100644
index 00000000..fa359e2e
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPResult.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPResult.h
new file mode 100644
index 00000000..91b69fb5
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPResultPlus.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/MCPResultPlus.h
new file mode 100644
index 00000000..28d6ff2f
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/my_alloc.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/my_alloc.h
new file mode 100644
index 00000000..a3dd35d7
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/my_list.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/my_list.h
new file mode 100644
index 00000000..f786621e
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql.h
new file mode 100644
index 00000000..d8a56126
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_com.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_com.h
new file mode 100644
index 00000000..6f941fc0
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_com.h
@@ -0,0 +1,399 @@
+/* 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_NEW_DECIMAL=246,
+ 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_NEW_DECIMAL MYSQL_TYPE_NEW_DECIMAL
+#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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_embed.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_embed.h
new file mode 100644
index 00000000..603af8e8
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_time.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_time.h
new file mode 100644
index 00000000..5f4fc12c
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_version.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/mysql_version.h
new file mode 100644
index 00000000..9f38c100
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/typelib.h b/Frameworks/MCPKit_bundled.framework/Versions/A/Headers/typelib.h
new file mode 100644
index 00000000..4d6a90ad
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/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 */
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/MCPKit_bundled b/Frameworks/MCPKit_bundled.framework/Versions/A/MCPKit_bundled
new file mode 100755
index 00000000..160ce713
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/MCPKit_bundled
Binary files differ
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPAttribute+Private.h b/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPAttribute+Private.h
new file mode 100644
index 00000000..2426b16a
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPAttribute+Private.h
@@ -0,0 +1,35 @@
+//
+// MCPAttribute+Private.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 "MCPAttribute.h"
+
+@interface MCPAttribute (Private)
+
+
+#pragma mark Setters
+- (void) setValueClassName:(NSString *) iClassName;
+
+#pragma mark Pseudo-getters
+
+@end
+
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPClassDescription+Private.h b/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPClassDescription+Private.h
new file mode 100644
index 00000000..fa4ffab3
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPClassDescription+Private.h
@@ -0,0 +1,41 @@
+//
+// MCPClassDescription+Private.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 "MCPClassDescription.h"
+
+@interface MCPClassDescription (Private)
+
+#pragma mark Setters
+- (void) setAttributes:(NSArray *) iAttributes;
+- (void) setRelations:(NSArray *) iRelations;
+- (void) insertObject:(MCPRelation *) iRelation inIncomingsAtIndex:(unsigned int) index;
+- (void) removeObjectFromIncomingsAtIndex:(unsigned int) index;
+
+#pragma mark Getters
+- (NSArray *) incomings;
+- (unsigned int) countOfIncomings;
+- (MCPRelation *) objectInIncomingsAtIndex:(unsigned int) index;
+- (unsigned int) indexOfIncoming:(id) iRelation;
+
+@end
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPRelation+Private.h b/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPRelation+Private.h
new file mode 100644
index 00000000..aa286787
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/PrivateHeaders/MCPRelation+Private.h
@@ -0,0 +1,41 @@
+//
+// MCPRelation+Private.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 "MCPRelation.h"
+
+@interface MCPRelation (Private)
+
+#pragma mark Making some work
+- (void) invalidateJoins; // Check that the joins are realistics.
+
+#pragma mark Setters
+- (void) setOrigin:(MCPClassDescription *) iOrigin;
+//- (void) setJoins:(NSArray *) iJoins;
+
+#pragma mark Getters
+- (MCPModel *) model;
+
+#pragma mark Fro the controller layer and the UI
+- (void) addNewDefaultJoin;
+
+@end
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
new file mode 100644
index 00000000..8177d470
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/JavaCompiling.plist b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/JavaCompiling.plist
new file mode 100644
index 00000000..e0a16f9b
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/JavaCompiling.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>JavaSourceSubpath</key>
+ <string>_MCPConnectionWindow_EOArchive_English.java</string>
+</dict>
+</plist>
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/_MCPConnectionWindow_EOArchive_English.java b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/_MCPConnectionWindow_EOArchive_English.java
new file mode 100644
index 00000000..5ba619a6
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/_MCPConnectionWindow_EOArchive_English.java
@@ -0,0 +1,424 @@
+// _MCPConnectionWindow_EOArchive_English.java
+// Generated by EnterpriseObjects palette at vendredi 14 mai 2004 11 h 08 Europe/Amsterdam
+
+import com.webobjects.eoapplication.*;
+import com.webobjects.eocontrol.*;
+import com.webobjects.eointerface.*;
+import com.webobjects.eointerface.swing.*;
+import com.webobjects.foundation.*;
+import java.awt.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import javax.swing.table.*;
+import javax.swing.text.*;
+
+public class _MCPConnectionWindow_EOArchive_English extends com.webobjects.eoapplication.EOArchive {
+ IBHelpConnector _iBHelpConnector0, _iBHelpConnector1, _iBHelpConnector2, _iBHelpConnector3;
+ com.webobjects.eointerface.swing.EOFrame _eoFrame0, _eoFrame1;
+ com.webobjects.eointerface.swing.EOTextField _nsTextField0, _nsTextField1, _nsTextField2, _nsTextField3, _nsTextField4, _nsTextField5, _nsTextField6, _nsTextField7, _nsTextField8, _nsTextField9;
+ com.webobjects.eointerface.swing.EOView _nsBox0, _nsBox1, _nsBox2, _nsBox3;
+ javax.swing.JButton _nsButton0, _nsButton1, _nsButton2, _nsButton3, _nsButton4;
+ javax.swing.JPanel _nsView0, _nsView1;
+ javax.swing.JPasswordField _nsSecureTextField0;
+
+ public _MCPConnectionWindow_EOArchive_English(Object owner, NSDisposableRegistry registry) {
+ super(owner, registry);
+ }
+
+ protected void _construct() {
+ Object owner = _owner();
+ EOArchive._ObjectInstantiationDelegate delegate = (owner instanceof EOArchive._ObjectInstantiationDelegate) ? (EOArchive._ObjectInstantiationDelegate)owner : null;
+ Object replacement;
+
+ super._construct();
+
+ _nsBox3 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "NSView");
+ _nsBox2 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "NSBox1");
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mCreateButton")) != null)) {
+ _nsButton4 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (javax.swing.JButton)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsButton4");
+ } else {
+ _nsButton4 = (javax.swing.JButton)_registered(new javax.swing.JButton("Create DB"), "NSButton2");
+ }
+
+ _nsButton3 = (javax.swing.JButton)_registered(new javax.swing.JButton("Cancel"), "NSButton1");
+ _nsButton2 = (javax.swing.JButton)_registered(new javax.swing.JButton("Go"), "NSButton");
+ _nsBox1 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "NSView");
+ _nsBox0 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "NSBox1");
+ _nsTextField9 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField23");
+ _nsTextField8 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField22");
+ _nsTextField7 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField21");
+ _nsTextField6 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField2");
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "window")) != null)) {
+ _eoFrame1 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOFrame)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_eoFrame1");
+ } else {
+ _eoFrame1 = (com.webobjects.eointerface.swing.EOFrame)_registered(new com.webobjects.eointerface.swing.EOFrame(), "Window");
+ }
+
+ _nsView1 = (JPanel)_eoFrame1.getContentPane();
+ _iBHelpConnector3 = (IBHelpConnector)_registered(new IBHelpConnector(), "");
+ _iBHelpConnector2 = (IBHelpConnector)_registered(new IBHelpConnector(), "");
+ _iBHelpConnector1 = (IBHelpConnector)_registered(new IBHelpConnector(), "");
+ _iBHelpConnector0 = (IBHelpConnector)_registered(new IBHelpConnector(), "");
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mHostField.nextFocusableComponent.nextFocusableComponent.nextFocusableComponent")) != null)) {
+ _nsTextField5 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOTextField)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsTextField5");
+ } else {
+ _nsTextField5 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField12");
+ }
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mHostField.nextFocusableComponent.nextFocusableComponent")) != null)) {
+ _nsTextField4 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOTextField)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsTextField4");
+ } else {
+ _nsTextField4 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField11");
+ }
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mHostField.nextFocusableComponent")) != null)) {
+ _nsTextField3 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOTextField)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsTextField3");
+ } else {
+ _nsTextField3 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField1");
+ }
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mHostField.nextFocusableComponent.nextFocusableComponent.nextFocusableComponent.nextFocusableComponent")) != null)) {
+ _nsTextField2 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOTextField)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsTextField2");
+ } else {
+ _nsTextField2 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField");
+ }
+
+ _nsButton1 = (javax.swing.JButton)_registered(new javax.swing.JButton("Cancel"), "NSButton1");
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mPasswordField.nextFocusableComponent")) != null)) {
+ _nsButton0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (javax.swing.JButton)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsButton0");
+ } else {
+ _nsButton0 = (javax.swing.JButton)_registered(new javax.swing.JButton("OK"), "NSButton");
+ }
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mPasswordField")) != null)) {
+ _nsSecureTextField0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (javax.swing.JPasswordField)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_nsSecureTextField0");
+ } else {
+ _nsSecureTextField0 = (javax.swing.JPasswordField)_registered(new javax.swing.JPasswordField(), "NSTextField");
+ }
+
+ _nsTextField1 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField21");
+ _nsTextField0 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField2");
+
+ if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "mPasswordSheet")) != null)) {
+ _eoFrame0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOFrame)replacement;
+ _replacedObjects.setObjectForKey(replacement, "_eoFrame0");
+ } else {
+ _eoFrame0 = (com.webobjects.eointerface.swing.EOFrame)_registered(new com.webobjects.eointerface.swing.EOFrame(), "Panel");
+ }
+
+ _nsView0 = (JPanel)_eoFrame0.getContentPane();
+ }
+
+ protected void _awaken() {
+ super._awaken();
+
+ if (_replacedObjects.objectForKey("_eoFrame0") == null) {
+ _connect(_eoFrame0, _owner(), "delegate");
+ }
+
+ _nsButton0.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "passwordClick", _nsButton0), ""));
+
+ if (_replacedObjects.objectForKey("_eoFrame0") == null) {
+ _connect(_owner(), _eoFrame0, "mPasswordSheet");
+ }
+
+ if (_replacedObjects.objectForKey("_nsSecureTextField0") == null) {
+ _connect(_owner(), _nsSecureTextField0, "mPasswordField");
+ }
+
+ if (_replacedObjects.objectForKey("_nsButton4") == null) {
+ _connect(_owner(), _nsButton4, "mCreateButton");
+ }
+
+ _nsButton4.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "doCreate", _nsButton4), ""));
+ _nsButton3.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "doCancel", _nsButton3), ""));
+ _nsButton2.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "doGo", _nsButton2), ""));
+
+ if (_replacedObjects.objectForKey("_eoFrame1") == null) {
+ _connect(_owner(), _eoFrame1, "window");
+ }
+
+ _nsTextField2.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "modifyInstance", _nsTextField2), ""));
+
+ if (_replacedObjects.objectForKey("_nsTextField3") == null) {
+ _connect(_owner(), _nsTextField3, "mLoginField");
+ }
+
+ _nsTextField3.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "modifyInstance", _nsTextField3), ""));
+
+ if (_replacedObjects.objectForKey("_nsTextField4") == null) {
+ _connect(_owner(), _nsTextField4, "mDatabaseField");
+ }
+
+ _nsTextField4.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "modifyInstance", _nsTextField4), ""));
+
+ if (_replacedObjects.objectForKey("_nsTextField5") == null) {
+ _connect(_owner(), _nsTextField5, "mPortField");
+ }
+
+ _nsTextField5.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "modifyInstance", _nsTextField5), ""));
+
+ if (_replacedObjects.objectForKey("_nsTextField2") == null) {
+ _connect(_owner(), _nsTextField2, "mHostField");
+ }
+
+ _nsButton1.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "passwordClick", _nsButton1), ""));
+ }
+
+ protected void _init() {
+ super._init();
+ if (!(_nsBox2.getLayout() instanceof EOViewLayout)) { _nsBox2.setLayout(new EOViewLayout()); }
+ _nsBox3.setSize(401, 1);
+ _nsBox3.setLocation(2, 2);
+ ((EOViewLayout)_nsBox2.getLayout()).setAutosizingMask(_nsBox3, EOViewLayout.MinYMargin);
+ _nsBox2.add(_nsBox3);
+ _nsBox2.setBorder(new com.webobjects.eointerface.swing._EODefaultBorder("", true, "Lucida Grande", 13, Font.PLAIN));
+
+ if (_replacedObjects.objectForKey("_nsButton4") == null) {
+ _setFontForComponent(_nsButton4, "Lucida Grande", 13, Font.PLAIN);
+ _nsButton4.setMargin(new Insets(0, 2, 0, 2));
+ }
+
+ _setFontForComponent(_nsButton3, "Lucida Grande", 13, Font.PLAIN);
+ _nsButton3.setMargin(new Insets(0, 2, 0, 2));
+ _setFontForComponent(_nsButton2, "Lucida Grande", 13, Font.PLAIN);
+ _nsButton2.setMargin(new Insets(0, 2, 0, 2));
+ if (!(_nsBox0.getLayout() instanceof EOViewLayout)) { _nsBox0.setLayout(new EOViewLayout()); }
+ _nsBox1.setSize(328, 1);
+ _nsBox1.setLocation(2, 2);
+ ((EOViewLayout)_nsBox0.getLayout()).setAutosizingMask(_nsBox1, EOViewLayout.MinYMargin);
+ _nsBox0.add(_nsBox1);
+ _nsBox0.setBorder(new com.webobjects.eointerface.swing._EODefaultBorder("", true, "Lucida Grande", 13, Font.PLAIN));
+ _setFontForComponent(_nsTextField9, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField9.setEditable(false);
+ _nsTextField9.setOpaque(false);
+ _nsTextField9.setText("Port :");
+ _nsTextField9.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
+ _nsTextField9.setSelectable(true);
+ _nsTextField9.setEnabled(true);
+ _nsTextField9.setBorder(null);
+ _setFontForComponent(_nsTextField8, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField8.setEditable(false);
+ _nsTextField8.setOpaque(false);
+ _nsTextField8.setText("Database :");
+ _nsTextField8.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
+ _nsTextField8.setSelectable(true);
+ _nsTextField8.setEnabled(true);
+ _nsTextField8.setBorder(null);
+ _setFontForComponent(_nsTextField7, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField7.setEditable(false);
+ _nsTextField7.setOpaque(false);
+ _nsTextField7.setText("Login :");
+ _nsTextField7.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
+ _nsTextField7.setSelectable(true);
+ _nsTextField7.setEnabled(true);
+ _nsTextField7.setBorder(null);
+ _setFontForComponent(_nsTextField6, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField6.setEditable(false);
+ _nsTextField6.setOpaque(false);
+ _nsTextField6.setText("Host :");
+ _nsTextField6.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
+ _nsTextField6.setSelectable(true);
+ _nsTextField6.setEnabled(true);
+ _nsTextField6.setBorder(null);
+ if (!(_nsView1.getLayout() instanceof EOViewLayout)) { _nsView1.setLayout(new EOViewLayout()); }
+ _nsTextField6.setSize(72, 17);
+ _nsTextField6.setLocation(11, 17);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField6, EOViewLayout.MaxXMargin | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField6);
+ _nsTextField7.setSize(72, 17);
+ _nsTextField7.setLocation(11, 47);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField7, EOViewLayout.MaxXMargin | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField7);
+ _nsTextField8.setSize(72, 17);
+ _nsTextField8.setLocation(11, 77);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField8, EOViewLayout.MaxXMargin | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField8);
+ _nsTextField9.setSize(72, 17);
+ _nsTextField9.setLocation(11, 107);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField9, EOViewLayout.MaxXMargin | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField9);
+ _nsTextField2.setSize(242, 22);
+ _nsTextField2.setLocation(88, 14);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField2, EOViewLayout.MinXMargin | EOViewLayout.WidthSizable | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField2);
+ _nsTextField3.setSize(242, 22);
+ _nsTextField3.setLocation(88, 44);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField3, EOViewLayout.MinXMargin | EOViewLayout.WidthSizable | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField3);
+ _nsTextField4.setSize(242, 22);
+ _nsTextField4.setLocation(88, 74);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField4, EOViewLayout.MinXMargin | EOViewLayout.WidthSizable | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField4);
+ _nsTextField5.setSize(242, 22);
+ _nsTextField5.setLocation(88, 104);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsTextField5, EOViewLayout.MinXMargin | EOViewLayout.WidthSizable | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsTextField5);
+ _nsBox0.setSize(332, 5);
+ _nsBox0.setLocation(5, 130);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsBox0, EOViewLayout.WidthSizable | EOViewLayout.MaxYMargin);
+ _nsView1.add(_nsBox0);
+ _nsButton2.setSize(77, 26);
+ _nsButton2.setLocation(256, 144);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsButton2, EOViewLayout.MinXMargin | EOViewLayout.MinYMargin);
+ _nsView1.add(_nsButton2);
+ _nsButton3.setSize(77, 26);
+ _nsButton3.setLocation(172, 144);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsButton3, EOViewLayout.MinXMargin | EOViewLayout.MinYMargin);
+ _nsView1.add(_nsButton3);
+ _nsButton4.setSize(96, 26);
+ _nsButton4.setLocation(12, 144);
+ ((EOViewLayout)_nsView1.getLayout()).setAutosizingMask(_nsButton4, EOViewLayout.MinYMargin);
+ _nsView1.add(_nsButton4);
+
+ if (_replacedObjects.objectForKey("_eoFrame1") == null) {
+ _nsView1.setSize(342, 180);
+ _eoFrame1.setTitle("New Connection Parameters");
+ _eoFrame1.setLocation(111, 492);
+ _eoFrame1.setSize(342, 180);
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField5") == null) {
+ _connect(_nsTextField5, _nsTextField2, "nextFocusableComponent");
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField5") == null) {
+ _setFontForComponent(_nsTextField5, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField5.setEditable(true);
+ _nsTextField5.setOpaque(true);
+ _nsTextField5.setText("");
+ _nsTextField5.setHorizontalAlignment(javax.swing.JTextField.LEFT);
+ _nsTextField5.setSelectable(true);
+ _nsTextField5.setEnabled(true);
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField4") == null) {
+ _connect(_nsTextField4, _nsTextField5, "nextFocusableComponent");
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField4") == null) {
+ _setFontForComponent(_nsTextField4, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField4.setEditable(true);
+ _nsTextField4.setOpaque(true);
+ _nsTextField4.setText("");
+ _nsTextField4.setHorizontalAlignment(javax.swing.JTextField.LEFT);
+ _nsTextField4.setSelectable(true);
+ _nsTextField4.setEnabled(true);
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField3") == null) {
+ _connect(_nsTextField3, _nsTextField4, "nextFocusableComponent");
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField3") == null) {
+ _setFontForComponent(_nsTextField3, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField3.setEditable(true);
+ _nsTextField3.setOpaque(true);
+ _nsTextField3.setText("");
+ _nsTextField3.setHorizontalAlignment(javax.swing.JTextField.LEFT);
+ _nsTextField3.setSelectable(true);
+ _nsTextField3.setEnabled(true);
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField2") == null) {
+ _connect(_nsTextField2, _nsTextField3, "nextFocusableComponent");
+ }
+
+ if (_replacedObjects.objectForKey("_nsTextField2") == null) {
+ _setFontForComponent(_nsTextField2, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField2.setEditable(true);
+ _nsTextField2.setOpaque(true);
+ _nsTextField2.setText("");
+ _nsTextField2.setHorizontalAlignment(javax.swing.JTextField.LEFT);
+ _nsTextField2.setSelectable(true);
+ _nsTextField2.setEnabled(true);
+ }
+
+ _connect(_nsButton1, _nsSecureTextField0, "nextFocusableComponent");
+ _setFontForComponent(_nsButton1, "Lucida Grande", 13, Font.PLAIN);
+ _nsButton1.setMargin(new Insets(0, 2, 0, 2));
+
+ if (_replacedObjects.objectForKey("_nsButton0") == null) {
+ _connect(_nsButton0, _nsButton1, "nextFocusableComponent");
+ }
+
+ if (_replacedObjects.objectForKey("_nsButton0") == null) {
+ _setFontForComponent(_nsButton0, "Lucida Grande", 13, Font.PLAIN);
+ _nsButton0.setMargin(new Insets(0, 2, 0, 2));
+ }
+
+ if (_replacedObjects.objectForKey("_nsSecureTextField0") == null) {
+ _connect(_nsSecureTextField0, _nsButton0, "nextFocusableComponent");
+ }
+
+ if (_replacedObjects.objectForKey("_nsSecureTextField0") == null) {
+ _setFontForComponent(_nsSecureTextField0, "Lucida Grande", 13, Font.PLAIN);
+ _nsSecureTextField0.setEditable(true);
+ _nsSecureTextField0.setOpaque(true);
+ _nsSecureTextField0.setText("");
+ _nsSecureTextField0.setHorizontalAlignment(javax.swing.JTextField.LEFT);
+ _nsSecureTextField0.setEnabled(true);
+ }
+
+ _setFontForComponent(_nsTextField1, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField1.setEditable(false);
+ _nsTextField1.setOpaque(false);
+ _nsTextField1.setText("Password :");
+ _nsTextField1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
+ _nsTextField1.setSelectable(false);
+ _nsTextField1.setEnabled(true);
+ _nsTextField1.setBorder(null);
+ _setFontForComponent(_nsTextField0, "Lucida Grande", 13, Font.PLAIN);
+ _nsTextField0.setEditable(false);
+ _nsTextField0.setOpaque(false);
+ _nsTextField0.setText("Please enter your password for DB server ");
+ _nsTextField0.setHorizontalAlignment(javax.swing.JTextField.CENTER);
+ _nsTextField0.setSelectable(false);
+ _nsTextField0.setEnabled(true);
+ _nsTextField0.setBorder(null);
+ if (!(_nsView0.getLayout() instanceof EOViewLayout)) { _nsView0.setLayout(new EOViewLayout()); }
+ _nsTextField0.setSize(395, 17);
+ _nsTextField0.setLocation(11, 14);
+ ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsTextField0, EOViewLayout.WidthSizable | EOViewLayout.MaxYMargin);
+ _nsView0.add(_nsTextField0);
+ _nsTextField1.setSize(73, 17);
+ _nsTextField1.setLocation(11, 51);
+ ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsTextField1, EOViewLayout.MaxXMargin | EOViewLayout.MaxYMargin);
+ _nsView0.add(_nsTextField1);
+ _nsSecureTextField0.setSize(314, 22);
+ _nsSecureTextField0.setLocation(89, 48);
+ ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsSecureTextField0, EOViewLayout.WidthSizable | EOViewLayout.MinYMargin);
+ _nsView0.add(_nsSecureTextField0);
+ _nsBox2.setSize(405, 5);
+ _nsBox2.setLocation(5, 37);
+ ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsBox2, EOViewLayout.MinYMargin);
+ _nsView0.add(_nsBox2);
+ _nsButton0.setSize(77, 26);
+ _nsButton0.setLocation(329, 88);
+ ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsButton0, EOViewLayout.MinYMargin);
+ _nsView0.add(_nsButton0);
+ _nsButton1.setSize(77, 26);
+ _nsButton1.setLocation(245, 88);
+ ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsButton1, EOViewLayout.MinYMargin);
+ _nsView0.add(_nsButton1);
+
+ if (_replacedObjects.objectForKey("_eoFrame0") == null) {
+ _nsView0.setSize(415, 124);
+ _eoFrame0.setTitle("Password");
+ _eoFrame0.setLocation(95, 422);
+ _eoFrame0.setSize(415, 124);
+ }
+ }
+}
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/classes.nib b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/classes.nib
new file mode 100644
index 00000000..e9dc7fa3
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/classes.nib
@@ -0,0 +1,28 @@
+{
+ IBClasses = (
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {
+ ACTIONS = {
+ askPassword = id;
+ doCancel = id;
+ doCreate = id;
+ doGo = id;
+ modifyInstance = id;
+ passwordClick = id;
+ };
+ CLASS = MCPConnectionWinCont;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ mCreateButton = NSButton;
+ mDatabaseField = NSTextField;
+ mHostField = NSTextField;
+ mLoginField = NSTextField;
+ mPasswordField = NSTextField;
+ mPasswordSheet = NSPanel;
+ mPortField = NSTextField;
+ };
+ SUPERCLASS = NSWindowController;
+ }
+ );
+ IBVersion = 1;
+} \ No newline at end of file
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/info.nib b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/info.nib
new file mode 100644
index 00000000..10b70ee6
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/info.nib
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>193 200 356 240 0 0 1280 832 </string>
+ <key>IBFramework Version</key>
+ <string>364.0</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>5</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>7F44</string>
+</dict>
+</plist>
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/keyedobjects.nib b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/keyedobjects.nib
new file mode 100644
index 00000000..d0ebc199
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/English.lproj/MCPConnectionWindow.nib/keyedobjects.nib
Binary files differ
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/Info.plist b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 00000000..c5731f54
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>MCPKit_bundled</string>
+ <key>CFBundleIdentifier</key>
+ <string>net.chocolatnoir.MCPKit_bundled</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/Frameworks/MCPKit_bundled.framework/Versions/Current b/Frameworks/MCPKit_bundled.framework/Versions/Current
new file mode 120000
index 00000000..8c7e5a66
--- /dev/null
+++ b/Frameworks/MCPKit_bundled.framework/Versions/Current
@@ -0,0 +1 @@
+A \ No newline at end of file