/****************************************************************************** * $Id$ * * Name: cpl.i * Project: GDAL Python Interface * Purpose: GDAL Core SWIG Interface declarations. * Author: Kevin Ruland, kruland@ku.edu * ****************************************************************************** * Copyright (c) 2005, Kevin Ruland * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. *****************************************************************************/ #ifdef SWIGCSHARP typedef enum { CE_None = 0, CE_Log = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 } CPLErr; #endif %inline %{ void Debug( const char *msg_class, const char *message ) { CPLDebug( msg_class, message ); } void Error( CPLErr msg_class = CE_Failure, int err_code = 0, const char* msg = "error" ) { CPLError( msg_class, err_code, msg ); } CPLErr PushErrorHandler( char const * pszCallbackName = "CPLQuietErrorHandler" ) { CPLErrorHandler pfnHandler = NULL; if( EQUAL(pszCallbackName,"CPLQuietErrorHandler") ) pfnHandler = CPLQuietErrorHandler; else if( EQUAL(pszCallbackName,"CPLDefaultErrorHandler") ) pfnHandler = CPLDefaultErrorHandler; else if( EQUAL(pszCallbackName,"CPLLoggingErrorHandler") ) pfnHandler = CPLLoggingErrorHandler; if ( pfnHandler == NULL ) return CE_Fatal; CPLPushErrorHandler( pfnHandler ); return CE_None; } %} #ifdef SWIGRUBY %rename (push_error_handler) CPLPushErrorHandler; %rename (pop_error_handler) CPLPopErrorHandler; %rename (error_reset) CPLErrorReset; %rename (get_last_error_no) CPLGetLastErrorNo; %rename (get_last_error_type) CPLGetLastErrorType; %rename (get_last_error_msg) CPLGetLastErrorMsg; %rename (push_finder_location) CPLPushFinderLocation; %rename (pop_finder_location) CPLPopFinderLocation; %rename (finder_clean) CPLFinderClean; %rename (find_file) CPLFindFile; %rename (read_dir) VSIReadDir; %rename (set_config_option) CPLSetConfigOption; %rename (get_config_option) CPLGetConfigOption; %rename (binary_to_hex) CPLBinaryToHex; %rename (hex_to_binary) CPLHexToBinary; #else %rename (PushErrorHandler) CPLPushErrorHandler; %rename (PopErrorHandler) CPLPopErrorHandler; %rename (ErrorReset) CPLErrorReset; %rename (GetLastErrorNo) CPLGetLastErrorNo; %rename (GetLastErrorType) CPLGetLastErrorType; %rename (GetLastErrorMsg) CPLGetLastErrorMsg; %rename (PushFinderLocation) CPLPushFinderLocation; %rename (PopFinderLocation) CPLPopFinderLocation; %rename (FinderClean) CPLFinderClean; %rename (FindFile) CPLFindFile; %rename (ReadDir) VSIReadDir; %rename (SetConfigOption) CPLSetConfigOption; %rename (GetConfigOption) CPLGetConfigOption; %rename (CPLBinaryToHex) CPLBinaryToHex; %rename (CPLHexToBinary) CPLHexToBinary; #endif void CPLPushErrorHandler( CPLErrorHandler ); void CPLPopErrorHandler(); void CPLErrorReset(); int CPLGetLastErrorNo(); CPLErr CPLGetLastErrorType(); char const *CPLGetLastErrorMsg(); void CPLPushFinderLocation( const char * ); void CPLPopFinderLocation(); void CPLFinderClean(); const char * CPLFindFile( const char *, const char * ); %apply (char **options) {char **}; char **VSIReadDir( const char * ); %clear char **; void CPLSetConfigOption( const char *, const char * ); const char * CPLGetConfigOption( const char *, const char * ); /* Provide hooks to hex encoding methods */ char *CPLBinaryToHex( int nBytes, const GByte *pabyData ); GByte *CPLHexToBinary( const char *pszHex, int *pnBytes );