mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
COMP: tecio : move out of thirdparty
This commit is contained in:
@ -0,0 +1,261 @@
|
||||
/*
|
||||
* NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM
|
||||
*
|
||||
* Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide.
|
||||
*
|
||||
* Tecplot hereby grants OpenCFD limited authority to distribute without
|
||||
* alteration the source code to the Tecplot Input/Output library, known
|
||||
* as TecIO, as part of its distribution of OpenFOAM and the
|
||||
* OpenFOAM_to_Tecplot converter. Users of this converter are also hereby
|
||||
* granted access to the TecIO source code, and may redistribute it for the
|
||||
* purpose of maintaining the converter. However, no authority is granted
|
||||
* to alter the TecIO source code in any form or manner.
|
||||
*
|
||||
* This limited grant of distribution does not supersede Tecplot, Inc.'s
|
||||
* copyright in TecIO. Contact Tecplot, Inc. for further information.
|
||||
*
|
||||
* Tecplot, Inc.
|
||||
* 3535 Factoria Blvd, Ste. 550
|
||||
* Bellevue, WA 98006, USA
|
||||
* Phone: +1 425 653 1200
|
||||
* http://www.tecplot.com/
|
||||
*
|
||||
*/
|
||||
#include "stdafx.h"
|
||||
#include "MASTER.h"
|
||||
#define TECPLOTENGINEMODULE
|
||||
|
||||
/*
|
||||
*****************************************************************
|
||||
*****************************************************************
|
||||
******* ********
|
||||
****** Copyright (C) 1988-2008 Tecplot, Inc. *******
|
||||
******* ********
|
||||
*****************************************************************
|
||||
*****************************************************************
|
||||
*/
|
||||
|
||||
#define TASSERTMODULE
|
||||
#include "GLOBAL.h"
|
||||
#include "TASSERT.h"
|
||||
#include "Q_UNICODE.h"
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#if defined (MSWIN)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "STRUTIL.h"
|
||||
|
||||
using namespace tecplot::strutil;
|
||||
using namespace std;
|
||||
|
||||
#define MAX_ERRMSG_LENGTH 2096
|
||||
|
||||
/* the mopup from assert and the writing out of crash.lay are */
|
||||
/* used by TUASSERT and thus are needed even if NO_ASSERTS */
|
||||
/* is set */
|
||||
#if !defined NO_TU_ASSERTS || !defined NO_ASSERTS
|
||||
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#if defined MSWIN /* ...Unix/Linux calls this via signal handlers */
|
||||
#endif
|
||||
#endif /* TECPLOTKERNEL */
|
||||
|
||||
#endif /* Mopup function needed ... */
|
||||
|
||||
|
||||
|
||||
#if !defined STD_ASSERTS
|
||||
/*
|
||||
* Define the final assertion notification function.
|
||||
*/
|
||||
#if defined UNIXX && !defined NO_ASSERTS
|
||||
/*******************************************************************
|
||||
* *
|
||||
* UNIX *
|
||||
* *
|
||||
*******************************************************************/
|
||||
|
||||
|
||||
# if defined NDEBUG
|
||||
/*
|
||||
* if NDEBUG is defined __assert is NOT defined so we must supply
|
||||
* our own assertion notification function.....
|
||||
*/
|
||||
# define ASSERT assert
|
||||
static void UnixAssert(const char *expression,
|
||||
const char *file_name,
|
||||
int line)
|
||||
{
|
||||
fprintf(stderr, "Assertion: %s\n"
|
||||
"Tecplot version: %s\n"
|
||||
"File Name: %s\n"
|
||||
"Line Number: %d\n",
|
||||
expression, TecVersionId, file_name, line);
|
||||
exit(ExitCode_AssertionFailure);
|
||||
}
|
||||
static TAssertFailureNotifyFunc assert_failure_notify = UnixAssert;
|
||||
# else
|
||||
/*
|
||||
* NDEBUG is not defined so __assert is available....
|
||||
*/
|
||||
# if defined LINUX
|
||||
# define LOWLEVELASSERTFUNCTION __linuxassertproxy
|
||||
/*
|
||||
* In linux, __assert does not exist but rather
|
||||
* __assert_fail which has a differnt API. Thus
|
||||
* a proxy is provided
|
||||
*/
|
||||
static void __linuxassertproxy(const char *__assertion,
|
||||
const char *__file,
|
||||
int __line)
|
||||
{
|
||||
__assert_fail(__assertion, __file, __line, __ASSERT_FUNCTION);
|
||||
}
|
||||
# elif defined DARWIN
|
||||
# define LOWLEVELASSERTFUNCTION __darwinassertproxy
|
||||
/*
|
||||
* In Darwin (Mac OS X), __assert is #defined to a call to __eprintf,
|
||||
* which also has a different API. Another proxy...
|
||||
*/
|
||||
static void __darwinassertproxy(const char *__assertion,
|
||||
const char *__file,
|
||||
int __line)
|
||||
{
|
||||
__eprintf("Assertion: %s\n"
|
||||
"Tecplot version: %s\n"
|
||||
"File Name: %s\n"
|
||||
"Line Number: %d\n",
|
||||
__assertion, TecVersionId, __file, (unsigned)__line);
|
||||
}
|
||||
# else
|
||||
# define LOWLEVELASSERTFUNCTION __assert
|
||||
# endif
|
||||
|
||||
static TAssertFailureNotifyFunc assert_failure_notify = (TAssertFailureNotifyFunc) LOWLEVELASSERTFUNCTION;
|
||||
|
||||
# endif
|
||||
#endif /* UNIXX */
|
||||
|
||||
#if defined UNIXX && !defined NO_ASSERTS
|
||||
/*
|
||||
* Replace the current assert failure notification function and
|
||||
* return the current one.
|
||||
*
|
||||
* Assumptions:
|
||||
* new function points to valid function (not null) that
|
||||
* conforms to the specified prototype
|
||||
*
|
||||
* Guarantees:
|
||||
* result is a pointer to the previously installed
|
||||
* function (not null)
|
||||
*/
|
||||
TAssertFailureNotifyFunc InstallTAssertFailureNotify(
|
||||
TAssertFailureNotifyFunc new_function) /* new notification function */
|
||||
{
|
||||
TAssertFailureNotifyFunc result = 0; /* old function address */
|
||||
|
||||
ASSERT(new_function != 0);
|
||||
|
||||
result = assert_failure_notify;
|
||||
assert_failure_notify = new_function;
|
||||
|
||||
ASSERT(result != 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Perform the installed assert failure notification action.
|
||||
*/
|
||||
void TAssert(const char *expression, /* text representation of the assertion */
|
||||
const char *file_name, /* name of the file containing the assertion */
|
||||
int line) /* line number in the file of the assertion */
|
||||
{
|
||||
static Boolean_t InTAssert = FALSE;
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#endif
|
||||
char Message[MAX_ERRMSG_LENGTH+1];
|
||||
ASSERT(expression != 0 && strlen(expression) != 0);
|
||||
ASSERT(file_name != 0 && strlen(file_name) != 0);
|
||||
ASSERT(line >= 1);
|
||||
|
||||
/* check for recursion */
|
||||
if (InTAssert)
|
||||
{
|
||||
fprintf(stderr, "Already in assert!\n");
|
||||
fprintf(stderr, "Assertion: %s\n"
|
||||
"Tecplot version: %s\n"
|
||||
"File Name: %s\n"
|
||||
"Line Number: %d\n",
|
||||
expression, TecVersionId, file_name, line);
|
||||
PrintCurBacktrace(stderr, 100);
|
||||
ASSERT(FALSE); /*... really exit */
|
||||
}
|
||||
|
||||
InTAssert = TRUE;
|
||||
|
||||
sprintf(Message, "Assertion: %s\n"
|
||||
"Tecplot version: %s\n"
|
||||
"File Name: %s\n"
|
||||
"Line Number: %d\n",
|
||||
expression, TecVersionId, file_name, line);
|
||||
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#endif
|
||||
|
||||
# if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
# else
|
||||
fprintf(stderr, "%s", Message);
|
||||
# endif
|
||||
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#endif
|
||||
|
||||
(*assert_failure_notify)(expression, file_name, line);
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#endif
|
||||
|
||||
#if defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#endif
|
||||
|
||||
InTAssert = FALSE; /* just in case assert_failure_notify has an ignore */
|
||||
}
|
||||
#endif /* defined UNIXX && !defined NO_ASSERTS */
|
||||
#endif /* STD_ASSERTS */
|
||||
|
||||
|
||||
#if defined MSWIN && defined TECPLOTKERNEL
|
||||
/* CORE SOURCE CODE REMOVED */
|
||||
#if defined CHECKED_BUILD
|
||||
#endif
|
||||
#if !defined ENGINE
|
||||
# if defined CHECKED_BUILD
|
||||
# endif // CHECKED_BUILD
|
||||
#endif //!ENGINE
|
||||
#endif /* MSWIN */
|
||||
|
||||
|
||||
#if defined NICE_NOT_IMPLEMENTED
|
||||
static Boolean_t NotImplementedCalled = FALSE;
|
||||
void NiceNotImplemented(void)
|
||||
{
|
||||
if (!NotImplementedCalled)
|
||||
{
|
||||
Warning("Not Implemented!");
|
||||
NotImplementedCalled = TRUE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user