libs-gdl2/EOAdaptors/PostgreSQLAdaptor/PostgreSQLChannel.h
ayers 3317f1cc5e * EOAdaptors/PostgreSQLAdaptor/PostgreSQLValues.h/m:
Remove files.
	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLPrivate.h/m
	Remove references to PostgreSQLValues.
	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLExpression.m:
	Ditto.
	* EOAdaptors/PostgreSQLAdaptor/GNUmakefile.in: Ditto.
	
	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLChannel.m
	(attrRespondsToValueClass, attrRespondsToValueTypeChar)
	(newValueForNumberTypeLengthAttribute)
	(newValueForCharactersTypeLengthAttribute)
	(newValueForBytesTypeLengthAttribute)
	(newValueForDateTypeLengthAttribute)
	(newValueForBytesLengthAttribute)
	... to static inline functions here.
	(getDigits): New support function.
	(__dummy_function_used_for_linking) Remove link hack.
	(initialize): Initialize new static variables.
	Use new static inline functions instead of PostgreSQLValues.

	(newValueForDateTypeLengthAttribute): Adapt to stricter NSDate
	parsing behavior.

	(NSS_SWF): Remove macro in favor of real method name.
	
	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLChannel.h
	(encoding): New instance variable.

	* EOAdaptors/PostgreSQLAdaptor/PostgreSQLAdaptor.h
	(PostgreSQLException): Move declation for documentation.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@24298 72102866-910b-0410-8b05-ffd578937521
2006-12-31 01:32:05 +00:00

105 lines
2.9 KiB
Objective-C

/* -*-objc-*-
PostgreSQLChannel.h
Copyright (C) 2000,2002,2003,2004,2005 Free Software Foundation, Inc.
Author: Mirko Viviani <mirko.viviani@gmail.com>
Date: February 2000
based on the PostgreSQL adaptor written by
Mircea Oancea <mircea@jupiter.elcom.pub.ro>
This file is part of the GNUstep Database Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __PostgreSQLChannel_h__
#define __PostgreSQLChannel_h__
#include <EOAccess/EOAdaptorChannel.h>
/* Include PostgreSQL Headers */
#undef Assert
#include <stdio.h>
#include <libpq-fe.h>
#include <libpq/libpq-fs.h>
#include <pg_config.h>
#undef Assert
@class NSString;
@class NSMutableDictionary;
@class NSMutableArray;
@class EOAttribute;
@class PostgreSQLContext;
@interface PostgreSQLChannel : EOAdaptorChannel
{
PostgreSQLContext *_adaptorContext;
PGconn *_pgConn;
PGresult *_pgResult;
NSArray *_attributes;
NSArray *_origAttributes;
EOSQLExpression *_sqlExpression;
int _currentResultRow;
NSMutableDictionary *_oidToTypeName;
BOOL _isFetchInProgress;
BOOL _fetchBlobsOid;
NSArray *_pkAttributeArray;
int _pgVersion;
NSStringEncoding encoding;
struct {
unsigned int postgresInsertedRowOid:1;
unsigned int postgresNotification:1;
} _postgresDelegateRespondsTo;
}
- (PGconn*)pgConn;
- (PGresult*)pgResult;
- (BOOL)advanceRow;
- (void)cleanupFetch;
- (void)_cancelResults;
- (void)_describeResults;
- (void)_readServerVersion;
/* Extensions for login panel */
- (NSArray *)describeDatabaseNames;
- (BOOL)userNameIsAdministrative:(NSString*)userName;
/* Private methods */
- (char*)_readBinaryDataRow: (Oid)oid length: (int*)length zone: (NSZone*)zone;
- (Oid)_insertBinaryData: (NSData*)binaryData forAttribute: (EOAttribute*)attr;
- (Oid)_updateBinaryDataRow: (Oid)oid data: (NSData*)binaryData;
- (void)_describeDatabaseTypes;
- (BOOL)_evaluateExpression: (EOSQLExpression *)expression
withAttributes: (NSArray*)attributes;
@end
@interface NSObject (PostgreSQLChannelDelegate)
- (void)postgresChannel: (PostgreSQLChannel*)channel
insertedRowWithOid: (Oid)oid;
- (void)postgresChannel: (PostgreSQLChannel*)channel
receivedNotification: (NSString*)notification;
@end
#endif /* __PostgreSQLChannel_h__ */