You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
4.2 KiB
158 lines
4.2 KiB
/*
|
|
Copyright 2020 Siemens Digital Industries Software
|
|
==================================================
|
|
Copyright 2015.
|
|
Siemens Product Lifecycle Management Software Inc.
|
|
All Rights Reserved.
|
|
==================================================
|
|
Copyright 2020 Siemens Digital Industries Software
|
|
*/
|
|
|
|
/**
|
|
@file
|
|
|
|
Defines System Service (SS) specific methods
|
|
|
|
*/
|
|
|
|
/* */
|
|
|
|
|
|
#ifndef SS_FUNCTIONS_H
|
|
#define SS_FUNCTIONS_H
|
|
|
|
#include <unidefs.h>
|
|
#include <ss/ss_types.h>
|
|
|
|
#include <ss/libss_exports.h>
|
|
|
|
/**
|
|
@defgroup SS_FUNCTIONS Functions
|
|
@ingroup SS
|
|
|
|
Teamcenter has implemented some System Specific methods.
|
|
|
|
The ITK system level functions include:
|
|
<ul>
|
|
<li>A function to generates a unique name that can be used for directory name or a file name.
|
|
<li>A function to retrieve the address of a function in a library.
|
|
<li>A function to retrieve the name of the Teamcenter server host.
|
|
<li>A function to retrieve the IP address of the Teamcenter server host.
|
|
<li>A function that delays the Teamcenter server process for the specified number of seconds.
|
|
</ul>
|
|
|
|
@{
|
|
*/
|
|
|
|
/**
|
|
Defines a generic type of function pointer.
|
|
It will need to be cast to the proper signature before usage.
|
|
*/
|
|
typedef void(*SS_function_pointer_t)(void);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
/**
|
|
Generates a unique name that can be used for directory name or a file name.
|
|
|
|
@returns #ITK_ok always
|
|
*/
|
|
extern SS_API int SS_generate_unique_name(
|
|
char** unique_name /**< (OF) The generated unique name */
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
Retrieves the address of a function in a library.
|
|
|
|
@note No extension is to be provided for the library name.
|
|
|
|
@code
|
|
SS_function_pointer_t function_pointer;
|
|
int ifail = SS_get_function_pointer_in_library( "libtextsrv", "TXTSRV_get_supported_languages_list", &function_pointer );
|
|
if( ITK_ok == ifail )
|
|
{
|
|
int nbLanguages = 0;
|
|
char** languageCodeList = 0;
|
|
char** languageNameList = 0;
|
|
/ / Now casting the function pointer to match the signature of the TXTSRV_get_supported_languages_list API
|
|
ifail = ((int (*)(int*, char***, char***))function_pointer)(&nbLanguages, &languageCodeList, &languageNameList);
|
|
[...]
|
|
}
|
|
@endcode
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#SS_shlib_no_such_file if the library @p library_name cannot be found
|
|
<li>#SS_shlib_invalid_library if the library @p library_name cannot be loaded
|
|
<li>#SS_shlib_operation_failed if the function @p function_name cannot be found in the library @p library_name
|
|
<li>Possibly other errors
|
|
</ul>
|
|
*/
|
|
extern SS_API int SS_get_function_pointer_in_library(
|
|
const char * library_name, /**< (I) Shared library name (without any platform extension) */
|
|
const char * function_name, /**< (I) Function name */
|
|
SS_function_pointer_t* function_pointer /**< (O) Function address */
|
|
);
|
|
|
|
/**
|
|
Retrieves the name of the Teamcenter server host.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#SS_NOHOST if the host name cannot be determined
|
|
</ul>
|
|
*/
|
|
extern SS_API int SS_get_host_name(
|
|
char ** host_name /**< (OF) The host name */
|
|
);
|
|
|
|
/**
|
|
Retrieves the IP address of the Teamcenter server host.
|
|
@note The function only returns IPv4 addresses for the moment.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#SS_NOHOSTADDR if the host address cannot be determined
|
|
</ul>
|
|
*/
|
|
extern SS_API int SS_get_host_address(
|
|
const char * host_name, /**< (I) The name of the server host */
|
|
char ** host_ip_address /**< (OF) The IP address of the machine */
|
|
);
|
|
|
|
/** @} */
|
|
|
|
/** @defgroup SIGNAL_HANDLING Signal handling routines
|
|
@ingroup SS_FUNCTIONS
|
|
@{
|
|
*/
|
|
|
|
/**
|
|
Delays the Teamcenter server process for the specified number of seconds
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#SS_NOSLEEP in case of failure
|
|
</ul>
|
|
*/
|
|
extern SS_API int SS_delay_process(
|
|
int seconds /**< (I) The number of seconds to sleep */
|
|
);
|
|
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#include <ss/libss_undef.h>
|
|
#endif
|