123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /* TA-LIB Copyright (c) 1999-2007, Mario Fortier
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * - Neither name of author nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- #ifndef TA_COMMON_H
- #define TA_COMMON_H
- /* The following macros are used to return internal errors.
- * The Id can be from 1 to 999 and translate to the user
- * as the return code 5000 to 5999.
- *
- * Everytime you wish to add a new fatal error code,
- * use the "NEXT AVAILABLE NUMBER" and increment the
- * number in this file.
- *
- * NEXT AVAILABLE NUMBER: 181
- */
- #define TA_INTERNAL_ERROR(Id) ((TA_RetCode)(TA_INTERNAL_ERROR+Id))
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <stdio.h>
- #include <limits.h>
- #include <float.h>
- #ifndef TA_DEFS_H
- #include "ta_defs.h"
- #endif
- /* Some functions to get the version of TA-Lib.
- *
- * Format is "Major.Minor.Patch (Month Day Year Hour:Min:Sec)"
- *
- * Example: "1.2.0 (Jan 17 2004 23:59:59)"
- *
- * Major increments indicates an "Highly Recommended" update.
- *
- * Minor increments indicates arbitrary milestones in the
- * development of the next major version.
- *
- * Patch are fixes to a "Major.Minor" release.
- */
- const char *TA_GetVersionString( void );
- /* Get individual component of the Version string */
- const char *TA_GetVersionMajor ( void );
- const char *TA_GetVersionMinor ( void );
- const char *TA_GetVersionBuild ( void );
- const char *TA_GetVersionDate ( void );
- const char *TA_GetVersionTime ( void );
- /* Misc. declaration used throughout the library code. */
- typedef double TA_Real;
- typedef int TA_Integer;
- /* General purpose structure containing an array of string.
- *
- * Example of usage:
- * void printStringTable( TA_StringTable *table )
- * {
- * int i;
- * for( i=0; i < table->size; i++ )
- * cout << table->string[i] << endl;
- * }
- *
- */
- typedef struct TA_StringTable
- {
- unsigned int size; /* Number of string. */
- const char **string; /* Pointer to the strings. */
- /* Hidden data for internal use by TA-Lib. Do not modify. */
- void *hiddenData;
- } TA_StringTable;
- /* End-user can get additional information related to a TA_RetCode.
- *
- * Example:
- * TA_RetCodeInfo info;
- *
- * retCode = TA_Initialize( ... );
- *
- * if( retCode != TA_SUCCESS )
- * {
- * TA_SetRetCodeInfo( retCode, &info );
- * printf( "Error %d(%s): %s\n",
- * retCode,
- * info.enumStr,
- * info.infoStr );
- * }
- *
- * Would display:
- * "Error 1(TA_LIB_NOT_INITIALIZE): TA_Initialize was not sucessfully called"
- */
- typedef struct TA_RetCodeInfo
- {
- const char *enumStr; /* Like "TA_IP_SOCKETERROR" */
- const char *infoStr; /* Like "Error creating socket" */
- } TA_RetCodeInfo;
- /* Info is always returned, even when 'theRetCode' is invalid. */
- void TA_SetRetCodeInfo( TA_RetCode theRetCode, TA_RetCodeInfo *retCodeInfo );
-
- /* TA_Initialize() initialize the ressources used by TA-Lib. This
- * function must be called once prior to any other functions declared in
- * this file.
- *
- * TA_Shutdown() allows to free all ressources used by TA-Lib. Following
- * a shutdown, TA_Initialize() must be called again for re-using TA-Lib.
- *
- * TA_Shutdown() should be called prior to exiting the application code.
- */
- TA_RetCode TA_Initialize( void );
- TA_RetCode TA_Shutdown( void );
- #ifdef __cplusplus
- }
- #endif
- #endif
|