main
commit
4a3e76669c
@ -0,0 +1,389 @@
|
||||
# ---> VisualStudio
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*[.json, .xml, .info]
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# ---> C++
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
@ -0,0 +1,8 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# 基于编辑器的 HTTP 客户端请求
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GitToolBoxBlameSettings">
|
||||
<option name="version" value="2" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ASMSmaliIdeaPluginConfiguration">
|
||||
<asm skipDebug="true" skipFrames="true" skipCode="false" expandFrames="false" />
|
||||
<groovy codeStyle="LEGACY" />
|
||||
</component>
|
||||
<component name="ProjectInspectionProfilesVisibleTreeState">
|
||||
<entry key="Project Default">
|
||||
<profile-state>
|
||||
<expanded-state>
|
||||
<State>
|
||||
<id>JUnit</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>JVM 语言</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>Java 5Java 语言级别迁移帮助Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>Java 8Java 语言级别迁移帮助Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>Java 语言级别迁移帮助Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>JavadocJava</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>Spring</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>Spring AOPSpring</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>TestNGJava</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>代码成熟度Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>性能Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>数值问题Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>类结构Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>线程问题Java</id>
|
||||
</State>
|
||||
<State>
|
||||
<id>编译器问题Java</id>
|
||||
</State>
|
||||
</expanded-state>
|
||||
<selected-state>
|
||||
<State>
|
||||
<id>用户定义</id>
|
||||
</State>
|
||||
</selected-state>
|
||||
</profile-state>
|
||||
</entry>
|
||||
</component>
|
||||
<component name="ProjectRootManager">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/ML_ITK.iml" filepath="$PROJECT_DIR$/.idea/ML_ITK.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,760 @@
|
||||
/* DISABLE check_long_lines */
|
||||
|
||||
/*
|
||||
* $Header: security_src/public/nzerror.h /st_ldap_client19/1 2019/04/01 00:22:52 akadian Exp $
|
||||
*
|
||||
* Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*/
|
||||
|
||||
/* ENABLE check_long_lines */
|
||||
/*
|
||||
NAME
|
||||
nzerror.h - error numbers for the Oracle Security Server
|
||||
DESCRIPTION
|
||||
None.
|
||||
PUBLIC FUNCTION(S)
|
||||
None.
|
||||
PRIVATE FUNCTION(S)
|
||||
None.
|
||||
NOTES
|
||||
A pragma is used to silence olint about the enum value names not being
|
||||
unique within 7 characters. This limit is being changed to 30.
|
||||
MODIFIED
|
||||
akadian 03/03/19 - XbranchMerge akadian_bug-29295652 from main
|
||||
mevyas 01/05/16 - ALPN Implementation
|
||||
abjuneja 05/14/13 - A360Id 770690: PKIX enhancements
|
||||
tnallath 03/21/13 - 16163238: xbranchmerge 8616736 to main
|
||||
sourajai 06/20/12 - Error code for csf api enhacements (map, key not
|
||||
present)
|
||||
tnallath 03/03/12 - crldp for ssl
|
||||
tnallath 02/15/12 - nzupg12: enable fips
|
||||
shiahuan 11/04/11 - mscapi errors
|
||||
tnallath 03/23/11 - nz upgrade: use rsa-mes
|
||||
tnallath 08/18/09 - bug 8612354: error for large crl file
|
||||
rchahal 06/12/06 -
|
||||
skalyana 01/30/05 -
|
||||
rchahal 07/16/04 - add cert label
|
||||
rchahal 07/06/04 -
|
||||
rchahal 10/15/03 - bug 2513821
|
||||
rchahal 08/14/03 - new error range (43000 - 43499)
|
||||
skalyana 08/25/03 - Error changes
|
||||
rchahal 06/27/03 - RSA errors
|
||||
rchahal 05/27/03 - convert wallet
|
||||
skalyana 03/07/03 - Move FIPS errors
|
||||
rchahal 02/28/03 - bug 2648177
|
||||
rchahal 01/20/03 - use sltsky
|
||||
rchahal 11/11/02 - pkcs11 support
|
||||
skalyana 11/29/02 - Add mutex errors
|
||||
akoyfman 11/01/02 - adding crl cache
|
||||
rchahal 10/23/02 - crldp error
|
||||
rchahal 10/15/02 - fetch crl from ldap
|
||||
rchahal 10/07/02 - crl support
|
||||
akoyfman 10/16/02 - Update with SSL PLus 4.2 errors
|
||||
skalyana 10/04/02 - Certicom SSL Plus 4.2 Upgrade changes
|
||||
akoyfman 08/06/02 - adding sso wallet errors
|
||||
akoyfman 07/12/02 - adding secret store errors
|
||||
skalyana 07/07/02 - Add more errors for FIPS self tests
|
||||
skalyana 07/01/02 - Add more errors
|
||||
skalyana 06/03/02 - Add NZ error for self test failure.
|
||||
ajacobs 02/22/01 - Add some entrust errors
|
||||
vle 02/09/01 - add error mesg
|
||||
lkethana 08/11/00 - Extension Errors
|
||||
lkethana 07/30/00 - add pkcs12 errors
|
||||
lkethana 06/17/00 - mult cert errors
|
||||
lkethana 06/11/00 - multiple cert support
|
||||
rturlapa 03/29/00 - Add error meesage for Entrust Login failure.
|
||||
rwessman 07/07/99 - Deleted include of sslerrs.h. It caused the RDBMS bu
|
||||
rwessman 07/02/99 - fixed merge errors
|
||||
rwessman 07/01/99 - moved NZOS errors to nzerror to make them visible
|
||||
supriya 12/16/98 - add new error for cert chain.
|
||||
arswamin 12/04/98 - add NZERROR_NO_MATCHING_PRIVATE_KEY
|
||||
qdinh 11/12/98 - add NZERROR_VALIDITY_EXPIRED.
|
||||
arswamin 06/17/98 - add INIT_FAILED
|
||||
sdange 06/10/98 - change wrong password to bad password
|
||||
amthakur 06/09/98 - adding error messages
|
||||
wliau 03/10/97 - Add new error message for snzdfo.c.
|
||||
rwessman 03/14/97 - Consolidated PL/SQL toolkit errors into generic erro
|
||||
rwessman 02/26/97 - Added NZERROR_UNSUPPORTED. Corrected values of
|
||||
errors outside the valid range.
|
||||
asriniva 03/02/97 - Fix olint warning
|
||||
rwessman 02/26/97 - Added NZERROR_UNSUPPORTED
|
||||
rwessman 01/02/97 - Changed PLSQL package errors to be TK_PLSQL to
|
||||
separate them from the errors generated by the
|
||||
Oracle interface.
|
||||
rwessman 12/30/96 - Merged in PL/SQL toolkit errors
|
||||
sdange 11/14/96 - (Added NZERROR_DECRYPT_FAILED to the enum list)
|
||||
rwessman 12/02/96 -
|
||||
rwessman 11/25/96 - Added error messages for PL/SQL functions.
|
||||
asriniva 10/31/96 - Include oratypes.h
|
||||
asriniva 10/29/96 - Fix numbering.
|
||||
asriniva 10/29/96 - Fix error numbers
|
||||
asriniva 10/29/96 - Correct type-o
|
||||
asriniva 10/28/96 - Add more TK errors
|
||||
asriniva 10/28/96 - Convert OKAPI errors to TK errors.
|
||||
rwessman 10/17/96 - still more OSS TK errors
|
||||
asriniva 10/16/96 - OKAPI errors
|
||||
asriniva 10/15/96 - OSSTK errors
|
||||
rwessman 10/15/96 - Added more OSS TK errors
|
||||
asriniva 10/09/96 - Add OSSTK errors.
|
||||
rwessman 09/05/96 - Added errors for PL/SQL functions.
|
||||
wliau 09/05/96 - correct error numbers.
|
||||
$Log: $
|
||||
* Revision 1.26 1996/07/15 23:07:23 wliau
|
||||
* Added NZERROR_AUTH_SHARED_MEMORY
|
||||
*
|
||||
* Revision 1.25 1996/07/01 20:40:15 asriniva
|
||||
* Finished RSA verify/sign.
|
||||
*
|
||||
* Revision 1.24 1996/06/27 20:39:41 rwessman
|
||||
* Added more errors.
|
||||
*
|
||||
* Revision 1.23 1996/05/31 17:33:40 rwessman
|
||||
* Updated nzerror.h to contain bug # for olint enum bug.
|
||||
*
|
||||
* Revision 1.22 1996/05/31 17:12:30 rwessman
|
||||
* Assigned values to the various errors.
|
||||
*
|
||||
* Revision 1.21 1996/05/13 20:46:58 ggilchri
|
||||
* Added more attribute related error conditions
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NZERROR_ORACLE
|
||||
# define NZERROR_ORACLE
|
||||
|
||||
#ifndef ORATYPES
|
||||
# include <oratypes.h>
|
||||
#endif /* ORATYPES */
|
||||
/*
|
||||
Warning suppressed
|
||||
warning #2157: NULL defined to 0 (type is integer not pointer): when we define Null to 0
|
||||
warning #2312: pointer cast involving 64-bit pointed-to type : Any higher bit cast to lower bit pointer
|
||||
warning #1684: conversion from pointer to same-sized integral type (potential portability problem): Any cast from pointer to an int type
|
||||
warning #1740: dllexport/dllimport conflict with "NZXK_EXTENDED_KEY_USAGE" (declared at line 77 of "../include/nzxk.h"); dllexport assumed : Don't Know
|
||||
warning #556: a value of type "R_PKEY *" cannot be assigned to an entity of type "ub1={unsigned char} *" : When assign void * to an other type.
|
||||
warning #2330: argument of type "const nzttIdentity *" is incompatible with parameter of type "nzttIdentity *" (dropping qualifiers) : This occur when non constant variable is passed where const variable required.
|
||||
warning #1478: function "GetVersionExA" (declared at line 433 of "C:\PROGRA~2\WINDOW~4\8.1\Include\um\sysinfoapi.h") was declared deprecated : This occurs when function deprecated.
|
||||
warning #2259: non-pointer conversion from "size_t={unsigned __int64}" to "unsigned int" may lose significant bits : when converting higher bit to lower bit
|
||||
*/
|
||||
#ifdef _WIN32
|
||||
#ifdef __ICL
|
||||
#pragma warning(disable : 2259)
|
||||
#pragma warning(disable : 2312)
|
||||
#pragma warning(disable : 47)
|
||||
#pragma warning(disable : 1684)
|
||||
#pragma warning(disable : 2330)
|
||||
#pragma warning(disable : 1478)
|
||||
#pragma warning(disable : 556)
|
||||
#pragma warning(disable : 1740)
|
||||
#pragma warning(disable : 2157)
|
||||
#endif /* _WIN32 */
|
||||
#endif /* _WIN32 */
|
||||
/*
|
||||
** Errors - when an error is added here, a message corresponding to the
|
||||
** error number must be added to the message file.
|
||||
** New errors must be assigned numbers, otherwise the compiler can assign any
|
||||
** value that it wants, which may lead to invalid error numbers being
|
||||
** generated.
|
||||
** The number range currently assigned to the OSS is 28750 - 29249
|
||||
** New number range 43000 - 43499
|
||||
*/
|
||||
|
||||
typedef enum nzerror
|
||||
{
|
||||
NZERROR_OK = 0,
|
||||
NZERROR_GENERIC = 28750, /* A catchall for errors */
|
||||
NZERROR_NO_MEMORY = 28751, /* No more memory */
|
||||
NZERROR_DATA_SOURCE_INIT_FAILED = 28752, /* Failed to init data source */
|
||||
NZERROR_DATA_SOURCE_TERM_FAILED = 28753,/* Failed to terminate data source */
|
||||
NZERROR_OBJECT_STORE_FAILED = 28754, /* Store object in data source failed */
|
||||
NZERROR_OBJECT_GET_FAILED = 28755,
|
||||
/* Failed to obtain object from data source */
|
||||
NZERROR_MEMORY_ALLOC_FAILED = 28756,
|
||||
/* Callback failed to allocate memory */
|
||||
NZERROR_MEMORY_ALLOC_0_BYTES = 28757,
|
||||
/* Attempted to ask for 0 bytes of memory */
|
||||
NZERROR_MEMORY_FREE_FAILED = 28758,
|
||||
/* Callback failed to free memory */
|
||||
NZERROR_FILE_OPEN_FAILED = 28759,
|
||||
/* Open of file failed */
|
||||
NZERROR_LIST_CREATION_FAILED = 28760,
|
||||
/* Creation of list failed */
|
||||
NZERROR_NO_ELEMENT = 28761,
|
||||
/* No list element found */
|
||||
NZERROR_ELEMENT_ADD_FAILED = 28762,
|
||||
/* Addition of list element failed */
|
||||
NZERROR_PARAMETER_BAD_TYPE = 28763,
|
||||
/* Retrieval of an unknown parameter type */
|
||||
NZERROR_PARAMETER_RETRIEVAL = 28764, /* Retrieval of parameter failed */
|
||||
|
||||
NZERROR_NO_LIST = 28765, /* Data method list does not exist */
|
||||
NZERROR_TERMINATE_FAIL = 28766, /* Failed to terminate */
|
||||
NZERROR_BAD_VERSION_NUMBER = 28767, /* Bad version number */
|
||||
NZERROR_BAD_MAGIC_NUMBER = 28768, /* Bad magic number */
|
||||
NZERROR_METHOD_NOT_FOUND = 28769,
|
||||
/* Data retrieval method specified does not exist */
|
||||
NZERROR_ALREADY_INITIALIZED = 28770,
|
||||
/*The data source is already initialized */
|
||||
NZERROR_NOT_INITIALIZED = 28771, /* The data source is not initialized */
|
||||
NZERROR_BAD_FILE_ID = 28772, /* File ID is bad */
|
||||
NZERROR_WRITE_MAGIC_VERSION = 28773, /* Failed to write magic and version */
|
||||
NZERROR_FILE_WRITE_FAILED = 28774, /* Failed to write to file */
|
||||
NZERROR_FILE_CLOSE_FAILED = 28775, /* Failed to close file */
|
||||
NZERROR_OUTPUT_BUFFER_TOO_SMALL = 28776,
|
||||
/* The buffer supplied by the caller is too small */
|
||||
NZERROR_BINDING_CREATION_FAILED = 28777,/* NL failed in creating a binding */
|
||||
NZERROR_PARAMETER_MALFORMED = 28778, /* A parameter was in a bad format */
|
||||
NZERROR_PARAMETER_NO_METHOD = 28779,
|
||||
/* No method was specified for a data type */
|
||||
NZERROR_BAD_PARAMETER_METHOD = 28780, /* Illegal method for data type */
|
||||
NZERROR_PARAMETER_NO_DATA = 28781, /* No method specified when required */
|
||||
NZERROR_NOT_ALLOCATED = 28782, /* Data source is not allocated */
|
||||
NZERROR_INVALID_PARAMETER = 28783, /* Invalid parameter name */
|
||||
NZERROR_FILE_NAME_TRANSLATION = 28784,/* Could not translate OSD file name */
|
||||
NZERROR_NO_SUCH_PARAMETER = 28785, /* Selected parameter is non-existent */
|
||||
|
||||
NZERROR_DECRYPT_FAILED = 28786,
|
||||
/* Encrypted private key decryption failure */
|
||||
NZERROR_ENCRYPT_FAILED = 28787, /* Private key encryption failed */
|
||||
|
||||
NZERROR_INVALID_INPUT = 28788, /* Incorrect input or unknown error */
|
||||
|
||||
NZERROR_NAME_TYPE_NOT_FOUND = 28789,
|
||||
/* Type of name requested is not available */
|
||||
NZERROR_NLS_STRING_OPEN_FAILED = 28790,
|
||||
/* Failure to generate an NLS string */
|
||||
NZERROR_CERTIFICATE_VERIFY = 28791, /* Failed to verify a certificate */
|
||||
NZERROR_OCI_PLSQL_FAILED = 28792,
|
||||
/* an OCI call to process some plsql failed */
|
||||
NZERROR_OCI_BIND_FAILED = 28793,
|
||||
/* an OCI call to bind an internal var. failed */
|
||||
NZERROR_ATTRIBUTE_INIT = 28794, /* failed to init role retrieval */
|
||||
NZERROR_ATTRIBUTE_FINISH_FAILED = 28795,/* Did not complete role retrieval */
|
||||
NZERROR_UNSUPPORTED_METHOD = 28796, /* Data method specified not supported */
|
||||
NZERROR_INVALID_KEY_DATA_TYPE = 28797,
|
||||
/* Invalid data type specified for key */
|
||||
NZEROR_BIND_SUBKEY_COUNT = 28798,
|
||||
/* Number of sub-keys to bind does not match count in initialized key */
|
||||
NZERROR_AUTH_SHARED_MEMORY = 28799,
|
||||
/* Failed to retreieve authentication information from the shared memory */
|
||||
NZERROR_RIO_OPEN = 28800, /* RIO Open Failed */
|
||||
NZERROR_RIO_OBJECT_TYPE = 28801, /* RIO object type invalid */
|
||||
NZERROR_RIO_MODE = 28802, /* RIO mode invalid */
|
||||
NZERROR_RIO_IO = 28803, /* RIO io set or numberinvalid */
|
||||
NZERROR_RIO_CLOSE = 28804, /* RIO close failed */
|
||||
NZERROR_RIO_RETRIEVE = 28805, /* RIO retrieve failed */
|
||||
NZERROR_RIO_STORE = 28806, /* RIO store failed */
|
||||
NZERROR_RIO_UPDATE = 28807, /* RIO update failed */
|
||||
NZERROR_RIO_INFO = 28808, /* RIO info failed */
|
||||
NZERROR_RIO_DELETE = 28809, /* RIO delete failed */
|
||||
NZERROR_KD_CREATE = 28810, /* Key descriptor create failed */
|
||||
NZERROR_RIO_ACCESS_DESCRIPTOR = 28811, /* access descriptor invalid */
|
||||
NZERROR_RIO_RECORD = 28812, /* record invalid */
|
||||
NZERROR_RIO_RECORD_TYPE = 28813, /* record type and AD type not matched */
|
||||
NZERROR_PLSQL_ORACLE_TO_REAL = 28814,
|
||||
/* A number passed to PL/SQL could not be converted to real format */
|
||||
NZERROR_PLSQL_REAL_TO_ORACLE = 28815,
|
||||
/* A number in machine format could not be converted to Oracle format */
|
||||
NZERROR_TK_PLSQL_NO_PASSWORD = 28816,
|
||||
/* A password was not provided to a PL/SQL function */
|
||||
NZERROR_TK_PLSQL_GENERIC = 28817,
|
||||
/* A PL/SQL function returned an error */
|
||||
NZERROR_TK_PLSQL_NO_CONTEXT = 28818,
|
||||
/* The package context was not specified to a PL/SQL function */
|
||||
NZERROR_TK_PLSQL_NO_DIST_NAME = 28819,
|
||||
/* The user's distinguished name was not provided to a PL/SQL function */
|
||||
NZERROR_TK_PLSQL_NO_STATE = 28820,
|
||||
/* The state of either a signature or decryption/encryption was not provided */
|
||||
NZERROR_TK_PLSQL_NO_INPUT = 28821,
|
||||
/* An input buffer was specified to a PL/SQL function */
|
||||
NZERROR_TK_PLSQL_NO_SEED = 28822,
|
||||
/* No seed was specified to the PL/SQL seed initialization function */
|
||||
NZERROR_TK_PLSQL_NO_BYTES = 28823,
|
||||
/* Number of bytes was not specified to the PL/SQL random number generator */
|
||||
NZERROR_TK_INVALID_STATE = 28824,
|
||||
/* Invalid encryption/decryption/signature state passed */
|
||||
NZERROR_TK_PLSQL_NO_ENG_FUNC = 28825,
|
||||
/* No crypto engine function was passed in */
|
||||
NZERROR_TK_INV_ENG_FUNC = 28826,
|
||||
/* An invalid crypto engine function was passed in */
|
||||
NZERROR_TK_INV_CIPHR_TYPE = 28827,
|
||||
/* An invalid cipher type was passed in */
|
||||
NZERROR_TK_INV_IDENT_TYPE = 28828,
|
||||
/* An invalid identity type was specified */
|
||||
NZERROR_TK_PLSQL_NO_CIPHER_TYPE = 28829,
|
||||
/* No cipher type was specified */
|
||||
NZERROR_TK_PLSQL_NO_IDENT_TYPE = 28830,
|
||||
/* No identity type was specified */
|
||||
NZERROR_TK_PLSQL_NO_DATA_FMT = 28831,
|
||||
/* No data unit format was specified */
|
||||
NZERROR_TK_INV_DATA_FMT = 28832,
|
||||
/* Invalid data unit format was provided to function */
|
||||
NZERROR_TK_PLSQL_INSUFF_INFO = 28833,
|
||||
/* Not enough info (usually parameters) provided to a PL/SQL function */
|
||||
NZERROR_TK_PLSQL_BUF_TOO_SMALL = 28834,
|
||||
/* Buffer provided by PL/SQL is too small for data to be returned */
|
||||
NZERROR_TK_PLSQL_INV_IDENT_DESC = 28835,
|
||||
/* Identity descriptor not present or too small */
|
||||
NZERROR_TK_PLSQL_WALLET_NOTOPEN = 28836,
|
||||
/* Wallet has not been opened yet */
|
||||
NZERROR_TK_PLSQL_NO_WALLET = 28837,
|
||||
/* No wallet descriptor specified to PL/SQL function */
|
||||
NZERROR_TK_PLSQL_NO_IDENTITY = 28838,
|
||||
/* No identity descriptor specified to PL/SQL function */
|
||||
NZERROR_TK_PLSQL_NO_PERSONA = 28839,
|
||||
/* No persona descriptor was specified to PL/SQL function */
|
||||
NZERROR_TK_PLSQL_WALLET_OPEN = 28840,
|
||||
/* Wallet was already opened */
|
||||
NZERROR_UNSUPPORTED = 28841, /* Operation is not supported */
|
||||
NZERROR_FILE_BAD_PERMISSION = 28842, /* Bad file permission specified */
|
||||
NZERROR_FILE_OSD_ERROR = 28843, /* OSD error when opening file */
|
||||
NZERROR_NO_WALLET = 28844, /* cert + privkey + tp files do not exist */
|
||||
NZERROR_NO_CERTIFICATE_ALERT = 28845, /* no certificate */
|
||||
NZERROR_NO_PRIVATE_KEY = 28846, /* no private-key */
|
||||
NZERROR_NO_CLEAR_PRIVATE_KEY_FILE = 28847, /* no clear key-file */
|
||||
NZERROR_NO_ENCRYPTED_PRIVATE_KEY_FILE = 28848, /* no encrypted priv key */
|
||||
NZERROR_NO_TRUSTPOINTS = 28849, /* no trustpoints */
|
||||
NZERROR_NO_CLEAR_TRUSTPOINT_FILE = 28850, /* no clear trustpoints */
|
||||
NZERROR_NO_ENCRYPTED_TRUSTPOINT_FILE = 28851, /* no encrypted trustpoints */
|
||||
NZERROR_BAD_PASSWORD = 28852, /* bad password */
|
||||
NZERROR_INITIALIZATION_FAILED = 28853, /* init failed or
|
||||
module loading failed */
|
||||
/******************************* SSL ERRORS ********************************/
|
||||
/*
|
||||
* In order to allow SSL errors to be mapped to Oracle errors, space is
|
||||
* provided here. One Oracle error is provided for each SSL error to make
|
||||
* error handling easier. A macro is provided to do the conversion.
|
||||
* NOTE: ANY CHANGE IN SSL ERRORS MUST BE REFLECTED HERE.
|
||||
* To add an SSL error, use the following formula to calculate the Oracle
|
||||
* error:
|
||||
* new_oracle_error = (new_ssl_error - SSLMemoryError) + NZERROR_SSLMemoryErr
|
||||
* or numerically:
|
||||
* new_oracle_error = (new_ssl_error - -7000) + 28854
|
||||
*/
|
||||
NZERROR_SSLMemoryErr = 28854,
|
||||
NZERROR_SSLUnsupportedErr = 28855,
|
||||
NZERROR_SSLOverflowErr = 28856,
|
||||
NZERROR_SSLUnknownErr = 28857,
|
||||
NZERROR_SSLProtocolErr = 28858,
|
||||
NZERROR_SSLNegotiationErr = 28859,
|
||||
NZERROR_SSLFatalAlert = 28860,
|
||||
NZERROR_SSLWouldBlockErr = 28861,
|
||||
NZERROR_SSLIOErr = 28862,
|
||||
NZERROR_SSLSessionNotFoundErr = 28863,
|
||||
NZERROR_SSLConnectionClosedGraceful = 28864,
|
||||
NZERROR_SSLConnectionClosedError = 28865,
|
||||
NZERROR_ASNBadEncodingErr = 28866,
|
||||
NZERROR_ASNIntegerTooBigErr = 28867,
|
||||
NZERROR_X509CertChainInvalidErr = 28868,
|
||||
NZERROR_X509CertExpiredErr = 28869,
|
||||
NZERROR_X509NamesNotEqualErr = 28870,
|
||||
NZERROR_X509CertChainIncompleteErr = 28871,
|
||||
NZERROR_X509DataNotFoundErr = 28872,
|
||||
NZERROR_SSLBadParameterErr = 28873,
|
||||
NZERROR_SSLIOClosedOverrideGoodbyeKiss = 28874,
|
||||
NZERROR_X509MozillaSGCErr = 28875,
|
||||
NZERROR_X509IESGCErr = 28876,
|
||||
NZERROR_ImproperServerCredentials = 28877,
|
||||
NZERROR_ImproperClientCredentials = 28878,
|
||||
NZERROR_NoProtocolSideSet = 28879,
|
||||
NZERROR_setPersonaFailed = 28880,
|
||||
NZERROR_setCertFailed = 28881,
|
||||
NZERROR_setVKeyFailed = 28882,
|
||||
NZERROR_setTPFailed = 28883,
|
||||
NZERROR_BadCipherSuite = 28884,
|
||||
NZERROR_NoKeyPairForKeyUsage = 28885,
|
||||
|
||||
/* ============>>> ENTRUST ERRORS */
|
||||
NZERROR_EntrustLoginFailed = 28890,
|
||||
NZERROR_EntrustGetInfoFailed = 28891,
|
||||
NZERROR_EntrustLoadCertificateFailed = 28892,
|
||||
NZERROR_EntrustGetNameFailed = 28893,
|
||||
|
||||
/* ============>>> MSCAPI ERRORS */
|
||||
NZERROR_OPEN_WINDOWS_CERT_STORE_FAILED = 28900,
|
||||
|
||||
/* ============>>> NZERRORS CONTINUED */
|
||||
NZERROR_CertNotInstalled = 29000,
|
||||
NZERROR_BAD_DATETIME_FORMAT = 29001,
|
||||
NZERROR_ServerDNMisMatched = 29002,
|
||||
NZERROR_ServerDNMisConfigured = 29003,
|
||||
|
||||
/* ============>>> PKI VENDORS ERRORS 29050 - 29099 */
|
||||
|
||||
/* ============>>> SSL Errors CONTINUED */
|
||||
NZERROR_CIC_ERR_SSL_ALERT_CB_FAILURE = 29004,
|
||||
NZERROR_CIC_ERR_SSL_BAD_CERTIFICATE = 29005,
|
||||
NZERROR_CIC_ERR_SSL_BAD_CERTIFICATE_REQUEST = 29006,
|
||||
NZERROR_CIC_ERR_SSL_BAD_CLEAR_KEY_LEN = 29007,
|
||||
NZERROR_CIC_ERR_SSL_BAD_DHPARAM_KEY_LENGTH = 29008,
|
||||
NZERROR_CIC_ERR_SSL_BAD_ENCRYPTED_KEY_LEN = 29009,
|
||||
NZERROR_CIC_ERR_SSL_BAD_EXPORT_KEY_LENGTH = 29010,
|
||||
NZERROR_CIC_ERR_SSL_BAD_FINISHED_MESSAGE = 29011,
|
||||
NZERROR_CIC_ERR_SSL_BAD_KEY_ARG_LEN = 29012,
|
||||
NZERROR_CIC_ERR_SSL_BAD_MAC = 29013,
|
||||
NZERROR_CIC_ERR_SSL_BAD_MAX_FRAGMENT_LENGTH_EXTENSION = 29014,
|
||||
NZERROR_CIC_ERR_SSL_BAD_MESSAGE_LENGTH = 29015,
|
||||
NZERROR_CIC_ERR_SSL_BAD_PKCS1_PADDING = 29016,
|
||||
NZERROR_CIC_ERR_SSL_BAD_PREMASTER_SECRET_LENGTH = 29017,
|
||||
NZERROR_CIC_ERR_SSL_BAD_PREMASTER_SECRET_VERSION = 29018,
|
||||
NZERROR_CIC_ERR_SSL_BAD_PROTOCOL_VERSION = 29019,
|
||||
NZERROR_CIC_ERR_SSL_BAD_RECORD_LENGTH = 29020,
|
||||
NZERROR_CIC_ERR_SSL_BAD_SECRET_KEY_LEN = 29021,
|
||||
NZERROR_CIC_ERR_SSL_BAD_SIDE = 29022,
|
||||
NZERROR_CIC_ERR_SSL_BUFFERS_NOT_EMPTY = 29023,
|
||||
NZERROR_CIC_ERR_SSL_CERTIFICATE_VALIDATE_FAILED = 29024,
|
||||
NZERROR_CIC_ERR_SSL_CERT_CHECK_CALLBACK = 29025,
|
||||
NZERROR_CIC_ERR_SSL_DECRYPT_FAILED = 29026,
|
||||
NZERROR_CIC_ERR_SSL_ENTROPY_COLLECTION = 29027,
|
||||
NZERROR_CIC_ERR_SSL_FAIL_SERVER_VERIFY = 29028,
|
||||
NZERROR_CIC_ERR_SSL_HANDSHAKE_ALREADY_COMPLETED = 29029,
|
||||
NZERROR_CIC_ERR_SSL_HANDSHAKE_REQUESTED = 29030,
|
||||
NZERROR_CIC_ERR_SSL_HANDSHAKE_REQUIRED = 29031,
|
||||
NZERROR_CIC_ERR_SSL_INCOMPLETE_IDENTITY = 29032,
|
||||
NZERROR_CIC_ERR_SSL_INVALID_PFX = 29033,
|
||||
NZERROR_CIC_ERR_SSL_NEEDS_CIPHER_OR_CLIENTAUTH = 29034,
|
||||
NZERROR_CIC_ERR_SSL_NEEDS_PRNG = 29035,
|
||||
NZERROR_CIC_ERR_SSL_NOT_SUPPORTED = 29036,
|
||||
NZERROR_CIC_ERR_SSL_NO_CERTIFICATE = 29037,
|
||||
NZERROR_CIC_ERR_SSL_NO_MATCHING_CERTIFICATES = 29038,
|
||||
NZERROR_CIC_ERR_SSL_NO_MATCHING_CIPHER_SUITES = 29039,
|
||||
NZERROR_CIC_ERR_SSL_NO_SUPPORTED_CIPHER_SUITES = 29040,
|
||||
NZERROR_CIC_ERR_SSL_NULL_CB = 29041,
|
||||
NZERROR_CIC_ERR_SSL_READ_BUFFER_NOT_EMPTY = 29042,
|
||||
NZERROR_CIC_ERR_SSL_READ_REQUIRED = 29043,
|
||||
NZERROR_CIC_ERR_SSL_RENEGOTIATION_ALREADY_REQUESTED = 29044,
|
||||
NZERROR_CIC_ERR_SSL_RENEGOTIATION_REFUSED = 29045,
|
||||
NZERROR_CIC_ERR_SSL_RESUMABLE_SESSION = 29046,
|
||||
NZERROR_CIC_ERR_SSL_TLS_EXTENSION_MISMATCH = 29047,
|
||||
NZERROR_CIC_ERR_SSL_UNEXPECTED_MSG = 29048,
|
||||
NZERROR_CIC_ERR_SSL_UNKNOWN_RECORD = 29049,
|
||||
NZERROR_CIC_ERR_SSL_UNSUPPORTED_CLIENT_AUTH_MODE = 29050,
|
||||
NZERROR_CIC_ERR_SSL_UNSUPPORTED_PUBKEY_TYPE = 29051,
|
||||
NZERROR_CIC_ERR_SSL_WRITE_BUFFER_NOT_EMPTY = 29052,
|
||||
NZERROR_CIC_ERR_PKCS12_MISSING_ALG = 29053,
|
||||
NZERROR_CIC_ERR_PKCS_AUTH_FAILED = 29054,
|
||||
NZERROR_CIC_ERR_PKCS_BAD_CONTENT_TYPE = 29055,
|
||||
NZERROR_CIC_ERR_PKCS_BAD_INPUT = 29056,
|
||||
NZERROR_CIC_ERR_PKCS_BAD_PADDING = 29057,
|
||||
NZERROR_CIC_ERR_PKCS_BAD_SN = 29058,
|
||||
NZERROR_CIC_ERR_PKCS_BAD_SN_LENGTH = 29059,
|
||||
NZERROR_CIC_ERR_PKCS_BAD_VERSION = 29060,
|
||||
NZERROR_CIC_ERR_PKCS_BASE = 29061,
|
||||
NZERROR_CIC_ERR_PKCS_FIELD_NOT_PRESENT = 29062,
|
||||
NZERROR_CIC_ERR_PKCS_NEED_CERTVAL = 29063,
|
||||
NZERROR_CIC_ERR_PKCS_NEED_PASSWORD = 29064,
|
||||
NZERROR_CIC_ERR_PKCS_NEED_PKC = 29065,
|
||||
NZERROR_CIC_ERR_PKCS_NEED_PRV_KEY = 29066,
|
||||
NZERROR_CIC_ERR_PKCS_NEED_TRUSTED = 29067,
|
||||
NZERROR_CIC_ERR_PKCS_UNSUPPORTED_CERT_FORMAT = 29068,
|
||||
NZERROR_CIC_ERR_PKCS_UNSUP_PRVKEY_TYPE = 29069,
|
||||
NZERROR_CIC_ERR_CODING_BAD_PEM = 29070,
|
||||
NZERROR_CIC_ERR_CODING_BASE = 29071,
|
||||
NZERROR_CIC_ERR_DER_BAD_ENCODING = 29072,
|
||||
NZERROR_CIC_ERR_DER_BAD_ENCODING_LENGTH = 29073,
|
||||
NZERROR_CIC_ERR_DER_BASE = 29074,
|
||||
NZERROR_CIC_ERR_DER_ELEMENT_TOO_LONG = 29075,
|
||||
NZERROR_CIC_ERR_DER_INDEFINITE_LENGTH = 29076,
|
||||
NZERROR_CIC_ERR_DER_NO_MORE_ELEMENTS = 29077,
|
||||
NZERROR_CIC_ERR_DER_OBJECT_TOO_LONG = 29078,
|
||||
NZERROR_CIC_ERR_DER_TAG_SIZE = 29079,
|
||||
NZERROR_CIC_ERR_DER_TIME_OUT_OF_RANGE = 29080,
|
||||
NZERROR_CIC_ERR_DER_UNUSED_BITS_IN_BIT_STR = 29081,
|
||||
NZERROR_CIC_ERR_GENERAL_BASE = 29082,
|
||||
NZERROR_CIC_ERR_HASH_BASE = 29083,
|
||||
NZERROR_CIC_ERR_ILLEGAL_PARAM = 29084,
|
||||
NZERROR_CIC_ERR_MEM_NOT_OURS = 29085,
|
||||
NZERROR_CIC_ERR_MEM_OVERRUN = 29086,
|
||||
NZERROR_CIC_ERR_MEM_UNDERRUN = 29087,
|
||||
NZERROR_CIC_ERR_MEM_WAS_FREED = 29088,
|
||||
NZERROR_CIC_ERR_NOT_FOUND = 29090,
|
||||
NZERROR_CIC_ERR_NO_PTR = 29091,
|
||||
NZERROR_CIC_ERR_TIMEOUT = 29092,
|
||||
NZERROR_CIC_ERR_UNIT_MASK = 29093,
|
||||
NZERROR_CIC_ERR_BAD_CTX = 29094,
|
||||
NZERROR_CIC_ERR_BAD_INDEX = 29095,
|
||||
NZERROR_CIC_ERR_BAD_LENGTH = 29096,
|
||||
NZERROR_CIC_ERR_CODING_BAD_ENCODING = 29097,
|
||||
NZERROR_CIC_ERR_SSL_NO_CLIENT_AUTH_MODES = 29098,
|
||||
|
||||
/* ============>>> PKCS12 error 29100 - 29149 */
|
||||
|
||||
NZERROR_LOCKEYID_CREATE_FAILED = 29100,
|
||||
NZERROR_P12_ADD_PVTKEY_FAILED = 29101,
|
||||
NZERROR_P12_ADD_CERT_FAILED = 29102,
|
||||
NZERROR_P12_WLT_CREATE_FAILED = 29103,
|
||||
NZERROR_P12_ADD_CERTREQ_FAILED = 29104,
|
||||
NZERROR_P12_WLT_EXP_FAILED = 29105,
|
||||
NZERROR_P12_WLT_IMP_FAILED = 29106,
|
||||
NZERROR_P12_CREATE_FAILED = 29107,
|
||||
NZERROR_P12_DEST_FAILED = 29107,
|
||||
NZERROR_P12_RAND_ERROR = 29108,
|
||||
NZERROR_P12_PVTKEY_CRT_FAILED = 29109,
|
||||
NZERROR_P12_INVALID_BAG = 29110,
|
||||
NZERROR_P12_INVALID_INDEX = 29111,
|
||||
NZERROR_P12_GET_CERT_FAILED = 29112,
|
||||
NZERROR_P12_GET_PVTKEY_FAILED = 29113,
|
||||
NZERROR_P12_IMP_PVTKEY_FAILED = 29114,
|
||||
NZERROR_P12_EXP_PVTKEY_FAILED = 29115,
|
||||
NZERROR_P12_GET_ATTRIB_FAILED = 29116,
|
||||
NZERROR_P12_ADD_ATTRIB_FAILED = 29117,
|
||||
NZERROR_P12_CRT_ATTRIB_FAILED = 29118,
|
||||
NZERROR_P12_IMP_CERT_FAILED = 29119,
|
||||
NZERROR_P12_EXP_CERT_FAILED = 29120,
|
||||
NZERROR_P12_ADD_SECRET_FAILED = 29121,
|
||||
NZERROR_P12_ADD_PKCS11INFO_FAILED = 29122,
|
||||
NZERROR_P12_GET_PKCS11INFO_FAILED = 29123,
|
||||
NZERROR_P12_MULTIPLE_PKCS11_LIBNAME = 29124,
|
||||
NZERROR_P12_MULTIPLE_PKCS11_TOKENLABEL = 29125,
|
||||
NZERROR_P12_MULTIPLE_PKCS11_TOKENPASSPHRASE = 29126,
|
||||
NZERROR_P12_UNKNOWN_PKCS11INFO = 29127,
|
||||
NZERROR_P12_PKCS11_LIBNAME_NOT_SET = 29128,
|
||||
NZERROR_P12_PKCS11_TOKENLABEL_NOT_SET = 29129,
|
||||
NZERROR_P12_PKCS11_TOKENPASSPHRASE_NOT_SET = 29130,
|
||||
NZERROR_P12_MULTIPLE_PKCS11_CERTLABEL = 29131,
|
||||
|
||||
/* ===========>>> SSL Errors CONTINUED 29135 - 29139 */
|
||||
NZERROR_CIC_ERR_RANDOM = 29135,
|
||||
NZERROR_CIC_ERR_SMALL_BUFFER = 29136,
|
||||
NZERROR_CIC_ERR_SSL_BAD_CONTEXT = 29137,
|
||||
|
||||
/* ==========>>> Mutex Errors 29138 - 29139 */
|
||||
NZERROR_MUTEX_INITIALIZE_FAILED = 29138,
|
||||
NZERROR_MUTEX_DESTROY_FAILED = 29139,
|
||||
|
||||
|
||||
/* ============>>> EXTENSIONS Errors 29140 - 29149 */
|
||||
NZERROR_BS_CERTOBJ_CREAT_FAILED = 29140,
|
||||
NZERROR_BS_DER_IMP_FAILED = 29141,
|
||||
NZERROR_CERT_NAME_ERROR = 29142,
|
||||
NZERROR_EXT_ERROR = 29143, /* ext processing failed */
|
||||
|
||||
|
||||
/* ============>>> FIPS ERRORS 29150 - 29175 */
|
||||
NZERROR_DES_SELF_TEST_FAILED = 29150,
|
||||
NZERROR_3DES_SELF_TEST_FAILED = 29151,
|
||||
NZERROR_SHA_SELF_TEST_FAILED = 29152,
|
||||
NZERROR_RSA_SELF_TEST_FAILED = 29153,
|
||||
NZERROR_DRNG_SELF_TEST_FAILED = 29154,
|
||||
NZERROR_CKEYPAIR_SELF_TEST_FAILED = 29155,
|
||||
NZERROR_CRNG_SELF_TEST_FAILED = 29156,
|
||||
NZERROR_FIPS_PATHNAME_ERROR = 29157,
|
||||
NZERROR_FIPS_LIB_OPEN_FAILED = 29158,
|
||||
NZERROR_FIPS_LIB_READ_ERROR = 29159,
|
||||
NZERROR_FIPS_LIB_DIFFERS = 29160,
|
||||
NZERROR_DAC_SELF_TEST_FAILED = 29161,
|
||||
NZERROR_NONFIPS_CIPHERSUITE = 29162,
|
||||
NZERROR_VENDOR_NOT_SUPPORTED_FIPS_MODE = 29163,
|
||||
NZERROR_EXTERNAL_PKCS12_NOT_SUPPORTED_FIPS_MODE = 29164,
|
||||
NZERROR_AES_SELF_TEST_FAILED = 29165,
|
||||
NZERROR_FIPS_BAD_KEYSIZE = 29166,
|
||||
|
||||
/* ============>>> CRL ERRORS 29176 - 29200 */
|
||||
NZERROR_CRL_SIG_VERIFY_FAILED = 29176, /*CRL signature verification failed*/
|
||||
NZERROR_CERT_NOT_IN_CRL = 29177,
|
||||
/*Cert is not in CRL - cert is not revoked*/
|
||||
NZERROR_CERT_IN_CRL = 29178, /*Cert is in CRL - cert is revoked*/
|
||||
NZERROR_CERT_IN_CRL_CHECK_FAILED = 29179, /*Cert revocation check failed */
|
||||
NZERROR_INVALID_CERT_STATUS_PROTOCOL = 29180,
|
||||
NZERROR_LDAP_OPEN_FAILED = 29181, /* ldap_open failed */
|
||||
NZERROR_LDAP_BIND_FAILED = 29182, /* ldap_bind failed */
|
||||
NZERROR_LDAP_SEARCH_FAILED = 29183, /* ldap_search failed */
|
||||
NZERROR_LDAP_RESULT_FAILED = 29184, /* ldap_result failed */
|
||||
NZERROR_LDAP_FIRSTATTR_FAILED = 29185, /* ldap_first_attribute failed */
|
||||
NZERROR_LDAP_GETVALUESLEN_FAILED = 29186, /* ldap_get_values_len failed */
|
||||
NZERROR_LDAP_UNSUPPORTED_VALMEC = 29187,
|
||||
/* unsupported validation mechanism */
|
||||
NZERROR_LDAP_COUNT_ENTRIES_FAILED = 29188,/* ldap_count_entries failed */
|
||||
NZERROR_LDAP_NO_ENTRY_FOUND = 29189, /* No entry found in OID */
|
||||
NZERROR_LDAP_MULTIPLE_ENTRIES_FOUND = 29190, /* Multiple entries in OID*/
|
||||
NZERROR_OID_INFO_NOT_SET = 29191,
|
||||
NZERROR_LDAP_VALMEC_NOT_SET = 29192,
|
||||
/* Validation mechanism not set in OID*/
|
||||
NZERROR_CRLDP_NO_CRL_FOUND = 29193,
|
||||
/* No CRL found using CRLDP mechanism */
|
||||
NZERROR_CRL_NOT_IN_CACHE = 29194, /* No CRL found in the cache*/
|
||||
NZERROR_CRL_EXPIRED = 29195, /* CRL nextUpdate time is in the past */
|
||||
NZERROR_CRL_FILETOOBIG = 29196, /* CRL file is too large */
|
||||
NZERROR_CRL_CACHE_FULL = 29197, /* CRL could not be added in CRL cache,
|
||||
CRL cache max size < (CRL cache current size + input CRL size)
|
||||
*/
|
||||
/* ============>>> ADD ERRORS HERE -- NOTE DECREASING numbers */
|
||||
NZERROR_EMPTY_CN_AND_SAN = 29221, /*!< Certificate's common name and SAN both are empty/NULL */
|
||||
NZERROR_DN_MATCH = 29222, /*!< for nztCompareDN */
|
||||
NZERROR_CERT_CHAIN_CREATION = 29223, /*!< unable to create a cert chain
|
||||
* with the existing TPs for the
|
||||
* cert to be installed.
|
||||
*/
|
||||
NZERROR_NO_MATCHING_CERT_REQ = 29224, /* No matching cert_req was
|
||||
* found the corresponding to
|
||||
* the privatekey which
|
||||
* matches the cert to be
|
||||
* installed */
|
||||
NZERROR_CERT_ALREADY_INSTALLED = 29225, /* we are attempting to
|
||||
* install a cert again into
|
||||
* a persona which already
|
||||
* has it installed.
|
||||
*/
|
||||
NZERROR_NO_MATCHING_PRIVATE_KEY = 29226, /* could not find a matching
|
||||
* persona-private(privatekey) in
|
||||
* the Persona, for the given
|
||||
* cert(public key).
|
||||
*/
|
||||
NZERROR_VALIDITY_EXPIRED = 29227, /* certificate validity date expired */
|
||||
NZERROR_TK_BYTES_NEEDED = 29228, /* Couldn't determine # of bytes needed */
|
||||
NZERROR_TK_BAD_MAGIC_NUMBER = 29229,
|
||||
/* Magic number found in header does not match expected */
|
||||
NZERROR_TK_BAD_HEADER_LENGTH = 29230,
|
||||
/* Header length passed in not sufficient for message header */
|
||||
NZERROR_TK_CE_INIT = 29231, /* Crypto engine failed to initialize */
|
||||
NZERROR_TK_CE_KEYINIT = 29232, /* Crypto engine key initialization failed */
|
||||
NZERROR_TK_CE_ENCODE_KEY = 29233, /* Count not encode key object */
|
||||
NZERROR_TK_CE_DECODE_KEY = 29234, /* Could not decode key into object */
|
||||
NZERROR_TK_CE_GEYKEYINFO = 29235, /* Crypto engine failed to get key info */
|
||||
NZERROR_TK_SEED_RANDOM = 29236, /* Couldn't seed random number generator */
|
||||
NZERROR_TK_CE_ALGFINISH = 29237, /* Couldn't finish algorithm */
|
||||
NZERROR_TK_CE_ALGAPPLY = 29238, /* Couldn't apply algorithm to data */
|
||||
NZERROR_TK_CE_ALGINIT = 29239, /* Couldn't init CE for algorithm */
|
||||
NZERROR_TK_ALGORITHM = 29240, /* Have no idea what algorithm you want */
|
||||
NZERROR_TK_CANNOT_GROW = 29241, /* Cannot grow output buffer block */
|
||||
NZERROR_TK_KEYSIZE = 29242, /* Key not large enough for data */
|
||||
NZERROR_TK_KEYTYPE = 29243, /* Unknown key type. */
|
||||
|
||||
NZERROR_TK_PLSQL_NO_WRL = 29244,
|
||||
/* Wallet resource locator not specified to PL/SQL function */
|
||||
|
||||
NZERROR_TK_CE_FUNC = 29245, /* Unknown crypto engine function */
|
||||
NZERROR_TK_TDU_FORMAT = 29246, /* Unknown TDU format */
|
||||
NZERROR_TK_NOTOPEN = 29247, /* Object must be open */
|
||||
NZERROR_TK_WRLTYPE = 29248, /* Bad WRL type */
|
||||
NZERROR_TK_CE_STATE = 29249, /* Bad state specified for the crypto engine */
|
||||
|
||||
/* After 29249, use error numbers in block 43000 - 43499 */
|
||||
NZERROR_PKCS11_LIBRARY_NOT_FOUND = 43000, /* PKCS #11 library not found */
|
||||
NZERROR_PKCS11_TOKEN_NOT_FOUND = 43001,
|
||||
/* can't find token with given label*/
|
||||
NZERROR_PKCS11_BAD_PASSPHRASE = 43002, /* passphrase is incorrect/expired */
|
||||
NZERROR_PKCS11_GET_FUNC_LIST = 43003, /* C_GetFunctionList returned error */
|
||||
NZERROR_PKCS11_INITIALIZE = 43004, /* C_Initialize returned error */
|
||||
NZERROR_PKCS11_NO_TOKENS_PRESENT = 43005, /* No tokens present */
|
||||
NZERROR_PKCS11_GET_SLOT_LIST = 43006, /* C_GetSlotList returned error */
|
||||
|
||||
NZERROR_PKCS11_GET_TOKEN_INFO = 43008, /* C_GetTokenInfo returned error */
|
||||
NZERROR_PKCS11_SYMBOL_NOT_FOUND = 43009, /* Symbol not found in PKCS11 lib */
|
||||
|
||||
NZERROR_PKCS11_TOKEN_LOGIN_FAILED = 43011, /* Token login failed */
|
||||
|
||||
NZERROR_PKCS11_CHANGE_PROVIDERS_ERROR = 43013, /* Change providers error */
|
||||
NZERROR_PKCS11_GET_PRIVATE_KEY_ERROR = 43014,
|
||||
/* Error trying to find private key on token */
|
||||
NZERROR_PKCS11_CREATE_KEYPAIR_ERROR = 43015, /* Key pair gen error */
|
||||
NZERROR_PKCS11_WALLET_CONTAINS_P11_INFO = 43016, /* Wallet already contains
|
||||
pkcs11 info */
|
||||
NZERROR_PKCS11_NO_CERT_ON_TOKEN = 43017, /* No cert found on token */
|
||||
NZERROR_PKCS11_NO_USER_CERT_ON_TOKEN = 43018, /*No user cert found on token*/
|
||||
NZERROR_PKCS11_NO_CERT_ON_TOKEN_WITH_GIVEN_LABEL = 43019, /*No cert found on token with given certificate label.*/
|
||||
NZERROR_PKCS11_MULTIPLE_CERTS_ON_TOKEN_WITH_GIVEN_LABEL = 43020, /*Multiple certs found on token with given certificate label.*/
|
||||
NZERROR_PKCS11_CERT_WITH_LABEL_NOT_USER_CERT = 43021, /*Cert with given cert is not a user cert because no corresponding pvt key found on token */
|
||||
|
||||
/* RSA ERRORS 43050 - 43059 */
|
||||
NZERROR_BIND_SERVICE_ERROR = 43050, /* C_BindService returned error */
|
||||
NZERROR_CREATE_KEY_OBJ_ERROR = 43051, /* B_CreateKeyObject returned error */
|
||||
NZERROR_GET_CERT_FIELDS = 43052, /* C_GetCertFields returned error */
|
||||
NZERROR_CREATE_PKCS10_OBJECT = 43053,
|
||||
/* C_CreatePKCS10Object returned error */
|
||||
NZERROR_SET_PKCS10_FIELDS = 43054, /* C_SetPKCS10Fields returned error */
|
||||
NZERROR_SIGN_CERT_REQUEST = 43055, /* C_SignCertRequest returned error */
|
||||
NZERROR_GET_PKCS10_DER = 43056, /* C_GetPKCS10DER returned error */
|
||||
NZERROR_INITIALIZE_CERTC = 43057, /* C_InitializeCertC returned error */
|
||||
NZERROR_INSERT_PRIVATE_KEY = 43058, /* C_InsertPrivateKey returned error */
|
||||
NZERROR_RSA_ERROR = 43059, /* RSA error. See trace output */
|
||||
|
||||
/* slts ERRORS 43060 - 43069 */
|
||||
NZERROR_SLTSCTX_INIT_FAILED = 43060, /* sltsini() returned error */
|
||||
NZERROR_SLTSKYC_FAILED = 43061, /* sltskyc() returned error */
|
||||
NZERROR_SLTSCTX_TERM_FAILED = 43062, /* sltster() returned error */
|
||||
NZERROR_SLTSKYS_FAILED = 43063, /* sltskys() returned error */
|
||||
|
||||
NZERROR_INVALID_HEADER_LENGTH = 43070, /* bad sso header length */
|
||||
NZERROR_WALLET_CONTAINS_USER_CREDENTIALS = 43071, /* wallet not empty */
|
||||
NZERROR_CANNOT_MODIFY_AL = 43072, /* Cannot modify AL wallet */
|
||||
NZERROR_FILE_LOCK_FAILED = 43073, /* Cannot lock wallet file */
|
||||
|
||||
/* Certificate selection errors 43080 - 43099 */
|
||||
NZERROR_MULTIPLE_MATCHING_CREDENTIALS = 43080, /* Multiple matching certs */
|
||||
NZERROR_KEYPAIR_CHECK = 43081, /* Error matching pub and pvt keys */
|
||||
NZERROR_SSL_DUPLICATE_RSA_CERTIFICATES = 43082, /* Multiple matching certs */
|
||||
NZERROR_SSL_DUPLICATE_ECC_CURVE_CERTIFICATES = 43083, /* Multiple matching certs */
|
||||
NZERROR_FORBIDDEN_SIGNATURE_ALGORITHM = 43084, /* insecure cert signature algorithm */
|
||||
|
||||
|
||||
NZERROR_CSF_ALIAS_INVALID = 43100, /* alias is invalid */
|
||||
NZERROR_CSF_KEY_INVALID = 43101, /* key invalid */
|
||||
NZERROR_CSF_CRED_NOT_SUPPORTED = 43102, /* only pwd cred supported */
|
||||
NZERROR_CSF_HOSTNAME = 43103, /* hostname error */
|
||||
NZERROR_CSF_XML = 43104, /* XmlCreate error. See trace */
|
||||
NZERROR_CSF_WALLET_NOT_SPECIFIED = 43105, /* no wallet specified */
|
||||
NZERROR_CSF_MAP_NOT_IN_STORE = 43106, /* map does not exist in store */
|
||||
NZERROR_CSF_KEY_NOT_IN_STORE = 43107, /* key does not exist in store */
|
||||
NZERROR_CSF_ENTRY_EXISTS = 43108, /* entry with map/key exists */
|
||||
NZERROR_CSF_BTSTRP_WLT_PATH_NOT_SET = 43109, /* bootWallet Path not set */
|
||||
NZERROR_CSF_BTSTRP_WLT_MAP_NOT_SET = 43110, /* bootWallet map (alias) not set */
|
||||
NZERROR_CSF_BTSTRP_WLT_KEY_NOT_SET = 43111, /* bootWallet key not set */
|
||||
NZERROR_CSF_LDAP_USERNAME_NOT_SET = 43112, /* ldap username not set */
|
||||
NZERROR_CSF_LDAP_PWD_NOT_SET = 43113, /* ldap password not set */
|
||||
NZERROR_CSF_LDAP_URL_NOT_SET = 43114, /* ldap url not set */
|
||||
NZERROR_CSF_LDAP_PORT_NOT_SET = 43115, /* ldap port not set */
|
||||
NZERROR_CSF_LDAP_FARMNAME_NOT_SET = 43116, /* ldap farmname not set */
|
||||
NZERROR_CSF_LDAP_ROOTNAME_NOT_SET = 43117, /* ldap rootname not set */
|
||||
|
||||
NZERROR_SSL_UNSUPPORTED_CIPHER = 43120,
|
||||
NZERROR_SSL_BAD_ENCRYPTED_VAUE = 43121,
|
||||
NZERROR_SSL_ERR_SIGNATURE = 43122,
|
||||
NZERROR_SSL_HARDWARE_FAILURE = 43123,
|
||||
NZERROR_SSL_ERR_PKEY = 43124,
|
||||
NZERROR_SSL_HANDSHAKE_FAILED = 43125,
|
||||
NZERROR_SSL_BAD_CLIENT_HELLO = 43126,
|
||||
NZERROR_SSL_BAD_SERVER_HELLO = 43127,
|
||||
|
||||
NZERROR_UNKNOWN_ECC_CURVE = 43130,
|
||||
|
||||
NZERROR_ODBC_SQL_FAILED = 43131, /* C CSF ODBC Callback error code */
|
||||
NZERROR_CSF_DB_B64_DECODE_FAILED = 43132, /* C CSF DB - zt base 64 decode failed */
|
||||
NZERROR_CSF_DB_DEC_SPLIT_FAILED = 43133, /* Split during decryption is failed */
|
||||
NZERROR_CSF_DB_DECKEY_NULL = 43134, /* Master key is not present in bootwallet */
|
||||
NZERROR_CSF_MAP_NOT_PRESENT = 43135, /* Map is not present in credstore */
|
||||
NZERROR_CSF_KEY_NOT_PRESENT = 43136, /* Key is not present in credstore */
|
||||
|
||||
NZERROR_SET_ALPN_PROTOCOL_FAILED = 43137,
|
||||
NZERROR_GET_ALPN_PROTOCOL_FAILED = 43138,
|
||||
NZERROR_NO_COMMON_ALPN_PROTOCOL = 43139,
|
||||
NZERROR_HANDSHAKE_FAILED_NO_COMMON_ALPN_PROTOCOL = 43140,
|
||||
NZERROR_ALPN_FEATURE_NOT_SUPPORTED = 43141,
|
||||
NZERROR_CERT_CHAIN_TOO_BIG = 43142, /* cert chain is too big */
|
||||
|
||||
NZERROR_LX_ERROR = 43490, /* lx api returned error */
|
||||
|
||||
NZERROR_LAST_ERROR = 43499, /* Last available error */
|
||||
/* MAXIMUM ERROR NUMBER IS 43499 */
|
||||
|
||||
/*
|
||||
* DO NOT JUST INSERT NEW ERRORS IN ANY OLD PLACE. New errors should be
|
||||
* added such the current error retains their integer values. Duplicate
|
||||
* values will cause compiler errors.
|
||||
*/
|
||||
NZERROR_THIS_MUST_BE_LAST
|
||||
|
||||
} nzerror;
|
||||
|
||||
/*
|
||||
* Macro to convert SSL errors to Oracle errors. As SSL errors are negative
|
||||
* and Oracle numbers are positive, the following needs to be done.
|
||||
* 1. The base error number, which is the highest, is added to the
|
||||
* SSL error to get the index into the number range.
|
||||
* 2. The result is added to the base Oracle number to get the Oracle error.
|
||||
*/
|
||||
#define NZERROR_SSL_TO_ORACLE(ssl_error_) \
|
||||
((ssl_error_ == SSLNoErr) \
|
||||
? NZERROR_OK \
|
||||
: (nzerror) ((ssl_error_ - SSLMemoryErr) + (uword) NZERROR_SSLMemoryErr))
|
||||
#endif /* NZERROR_ORACLE */
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,78 @@
|
||||
/* Copyright (c) 2000, 2002, Oracle Corporation. All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
occi.h - Oracle C++ Interface header files.
|
||||
|
||||
DESCRIPTION
|
||||
<short description of facility this file declares/defines>
|
||||
|
||||
RELATED DOCUMENTS
|
||||
<note any documents related to this facility>
|
||||
|
||||
EXPORT FUNCTION(S)
|
||||
<external functions declared for use outside package - one-line
|
||||
descriptions>
|
||||
|
||||
INTERNAL FUNCTION(S)
|
||||
<other external functions declared - one-line descriptions>
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
<other useful comments, qualifications, etc.>
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
vvinay 08/19/02 -
|
||||
aahluwal 06/03/02 - bug 2360115
|
||||
gayyappa 01/03/01 - removed inclusions before occiCommon.h
|
||||
kmohan 04/11/00 - include oci.h and occiCommon.h also
|
||||
rkasamse 04/03/00 - header file for all the OCCI classes
|
||||
rkasamse 04/03/00 - Creation
|
||||
|
||||
*/
|
||||
|
||||
#ifndef OCCI_ORACLE
|
||||
# define OCCI_ORACLE
|
||||
|
||||
#ifndef OCCICOMMON_ORACLE
|
||||
#include <occiCommon.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCCIDATA_ORACLE
|
||||
#include <occiData.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCCICONTROL_ORACLE
|
||||
#include <occiControl.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCCIOBJECTS_ORACLE
|
||||
#include <occiObjects.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCCIAQ_ORACLE
|
||||
#include <occiAQ.h>
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
EXPORT FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
INTERNAL FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#endif /* OCCI_ORACLE */
|
@ -0,0 +1,379 @@
|
||||
/* Copyright (c) 2002, 2013, Oracle and/or its affiliates.
|
||||
All rights reserved.*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
occiAQ.h - Header file for occi AQ classes
|
||||
|
||||
DESCRIPTION
|
||||
Class declarations for Producer, Consumer, Message, Agent
|
||||
Listener, Subscription
|
||||
|
||||
RELATED DOCUMENTS
|
||||
<note any documents related to this facility>
|
||||
|
||||
EXPORT FUNCTION(S)
|
||||
<external functions declared for use outside package - one-line
|
||||
descriptions>
|
||||
|
||||
INTERNAL FUNCTION(S)
|
||||
<other external functions declared - one-line descriptions>
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
<other useful comments, qualifications, etc.>
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
cparampa 10/12/02 - creation
|
||||
|
||||
*/
|
||||
|
||||
#ifndef _olint /* disable olint check */
|
||||
|
||||
#ifndef OCCIAQ_ORACLE
|
||||
# define OCCIAQ_ORACLE
|
||||
|
||||
#ifndef OCCICOMMON_ORACLE
|
||||
#include <occiCommon.h>
|
||||
#endif
|
||||
|
||||
#ifdef RAW
|
||||
#undef RAW
|
||||
#endif /* RAW */
|
||||
|
||||
namespace oracle {
|
||||
namespace occi {
|
||||
namespace aq{
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
class Message
|
||||
{
|
||||
public:
|
||||
|
||||
enum MessageState
|
||||
{
|
||||
MSG_READY = OCI_MSG_READY,
|
||||
MSG_WAITING = OCI_MSG_WAITING,
|
||||
MSG_PROCESSED = OCI_MSG_PROCESSED,
|
||||
MSG_EXPIRED = OCI_MSG_EXPIRED
|
||||
};
|
||||
enum PayloadType
|
||||
{
|
||||
RAW,
|
||||
ANYDATA,
|
||||
OBJECT
|
||||
};
|
||||
|
||||
Message( const Environment *env );
|
||||
Message( const Message& rhs);
|
||||
~Message();
|
||||
|
||||
void operator=(const Message& rhs);
|
||||
int getAttemptsToDequeue() const ;
|
||||
void setCorrelationId( const OCCI_STD_NAMESPACE::string& corr_id ) ;
|
||||
OCCI_STD_NAMESPACE::string getCorrelationId() const ;
|
||||
void setDelay( int delay ) ;
|
||||
int getDelay() const ;
|
||||
Date getMessageEnqueuedTime() const ;
|
||||
void setExceptionQueueName( const OCCI_STD_NAMESPACE::string& queue ) ;
|
||||
OCCI_STD_NAMESPACE::string getExceptionQueueName() const ;
|
||||
void setExpiration( int exp ) ;
|
||||
int getExpiration() const ;
|
||||
MessageState getMessageState() const ;
|
||||
void setPriority( int priority ) ;
|
||||
int getPriority() const ;
|
||||
void setRecipientList( OCCI_STD_NAMESPACE::vector<Agent>& ag_list ) ;
|
||||
void setSenderId( const Agent& sender ) ;
|
||||
Agent getSenderId() const ;
|
||||
void setOriginalMessageId( const Bytes& queue ) ;
|
||||
Bytes getOriginalMessageId() const ;
|
||||
void setNull();
|
||||
bool isNull() const;
|
||||
|
||||
void setBytes( const Bytes& bytes);
|
||||
void setObject( PObject* pobj);
|
||||
void setAnyData( const AnyData& any);
|
||||
|
||||
Bytes getBytes() const ;
|
||||
PObject *getObject() ;
|
||||
AnyData getAnyData() const ;
|
||||
|
||||
PayloadType getPayloadType( ) const;
|
||||
|
||||
private:
|
||||
Ptr<MessageImpl> ptr;
|
||||
OCIAQMsgProperties* getOCIMsgProperties() const;
|
||||
Message( const Environment *env, const Connection *con,
|
||||
OCIAQMsgProperties *msgprop, void *data, unsigned int dataLen,
|
||||
bool isNull, PayloadType pType);
|
||||
friend class ConsumerImpl;
|
||||
friend class ProducerImpl;
|
||||
friend class NotifyResult;
|
||||
};
|
||||
|
||||
class Producer
|
||||
{
|
||||
public:
|
||||
|
||||
enum EnqueueSequence
|
||||
{
|
||||
ENQ_BEFORE = OCI_ENQ_BEFORE,
|
||||
ENQ_TOP = OCI_ENQ_TOP
|
||||
};
|
||||
enum Visibility
|
||||
{
|
||||
ENQ_IMMEDIATE = OCI_ENQ_IMMEDIATE,
|
||||
ENQ_ON_COMMIT = OCI_ENQ_ON_COMMIT
|
||||
};
|
||||
|
||||
Producer( const Connection *conn );
|
||||
Producer( const Connection *conn,
|
||||
const OCCI_STD_NAMESPACE::string& queue );
|
||||
Producer( const Producer& rhs);
|
||||
~Producer();
|
||||
|
||||
void operator=(const Producer& prod);
|
||||
void setRelativeMessageId( const Bytes& msgid );
|
||||
Bytes getRelativeMessageId() const;
|
||||
void setSequenceDeviation( EnqueueSequence option );
|
||||
EnqueueSequence getSequenceDeviation() const;
|
||||
void setVisibility( Visibility option );
|
||||
Visibility getVisibility() const;
|
||||
void setQueueName( const OCCI_STD_NAMESPACE::string& queue );
|
||||
OCCI_STD_NAMESPACE::string getQueueName() const;
|
||||
void setTransformation( const OCCI_STD_NAMESPACE::string& fName);
|
||||
OCCI_STD_NAMESPACE::string getTransformation() const;
|
||||
Bytes send( Message& msg, const OCCI_STD_NAMESPACE::string& queue );
|
||||
Bytes send( Message& msg );
|
||||
void setNull();
|
||||
bool isNull() const;
|
||||
|
||||
private:
|
||||
Ptr<ProducerImpl> ptr;
|
||||
};
|
||||
|
||||
class Consumer
|
||||
{
|
||||
public:
|
||||
|
||||
enum DequeueMode
|
||||
{
|
||||
DEQ_BROWSE = OCI_DEQ_BROWSE,
|
||||
DEQ_LOCKED = OCI_DEQ_LOCKED,
|
||||
DEQ_REMOVE = OCI_DEQ_REMOVE,
|
||||
DEQ_REMOVE_NODATA = OCI_DEQ_REMOVE_NODATA
|
||||
};
|
||||
enum Navigation
|
||||
{
|
||||
DEQ_FIRST_MSG = OCI_DEQ_FIRST_MSG,
|
||||
DEQ_NEXT_TRANSACTION = OCI_DEQ_NEXT_TRANSACTION,
|
||||
DEQ_NEXT_MSG = OCI_DEQ_NEXT_MSG
|
||||
};
|
||||
enum Visibility
|
||||
{
|
||||
DEQ_IMMEDIATE = OCI_DEQ_IMMEDIATE,
|
||||
DEQ_ON_COMMIT = OCI_DEQ_ON_COMMIT
|
||||
};
|
||||
enum
|
||||
{
|
||||
DEQ_WAIT_FOREVER = OCI_DEQ_WAIT_FOREVER,
|
||||
DEQ_NO_WAIT = OCI_DEQ_NO_WAIT
|
||||
};
|
||||
|
||||
Consumer( const Connection *conn );
|
||||
Consumer( const Connection * conn, const Agent& agent);
|
||||
Consumer( const Connection *conn,
|
||||
const OCCI_STD_NAMESPACE::string& queue );
|
||||
Consumer(const Consumer& con);
|
||||
~Consumer();
|
||||
|
||||
void operator=(const Consumer& con);
|
||||
void setAgent(const Agent& agent);
|
||||
void setConsumerName( const OCCI_STD_NAMESPACE::string& name );
|
||||
OCCI_STD_NAMESPACE::string getConsumerName() const;
|
||||
void setCorrelationId( const OCCI_STD_NAMESPACE::string& cor_id );
|
||||
OCCI_STD_NAMESPACE::string getCorrelationId() const;
|
||||
void setDequeueMode( DequeueMode mode );
|
||||
DequeueMode getDequeueMode() const;
|
||||
void setMessageIdToDequeue( const Bytes& msgid );
|
||||
Bytes getMessageIdToDequeue() const;
|
||||
void setPositionOfMessage( Navigation pos );
|
||||
Navigation getPositionOfMessage() const;
|
||||
void setVisibility( Visibility option );
|
||||
Visibility getVisibility() const;
|
||||
void setWaitTime( unsigned int wait );
|
||||
unsigned int getWaitTime() const;
|
||||
void setQueueName( const OCCI_STD_NAMESPACE::string& queue );
|
||||
OCCI_STD_NAMESPACE::string getQueueName() const;
|
||||
void setTransformation( const OCCI_STD_NAMESPACE::string& fName);
|
||||
OCCI_STD_NAMESPACE::string getTransformation() const;
|
||||
Message receive( Message::PayloadType pType,
|
||||
const OCCI_STD_NAMESPACE::string& type="",
|
||||
const OCCI_STD_NAMESPACE::string& schema="");
|
||||
void setNull();
|
||||
bool isNull() const;
|
||||
|
||||
private:
|
||||
Ptr<ConsumerImpl> ptr;
|
||||
};
|
||||
|
||||
class Agent
|
||||
{
|
||||
public:
|
||||
Agent( const Environment *env );
|
||||
Agent( const Environment *env,
|
||||
const OCCI_STD_NAMESPACE::string& name,
|
||||
const OCCI_STD_NAMESPACE::string& address,
|
||||
unsigned int protocol=0 ) ;
|
||||
Agent(const Agent& a);
|
||||
~Agent() ;
|
||||
|
||||
void operator=(const Agent& a);
|
||||
void setName( const OCCI_STD_NAMESPACE::string& name );
|
||||
OCCI_STD_NAMESPACE::string getName() const;
|
||||
void setAddress( const OCCI_STD_NAMESPACE::string& addr );
|
||||
OCCI_STD_NAMESPACE::string getAddress() const;
|
||||
void setProtocol(unsigned int protocol = 0);
|
||||
unsigned int getProtocol() const;
|
||||
void setNull();
|
||||
bool isNull() const;
|
||||
OCIAQAgent* getOCIAQAgent() const;
|
||||
|
||||
private:
|
||||
Ptr<AgentImpl> ptr;
|
||||
Agent( const Environment *env, OCIAQAgent *rhs, bool toFree = false );
|
||||
friend class Listener;
|
||||
friend class MessageImpl;
|
||||
};
|
||||
|
||||
class Listener
|
||||
{
|
||||
public:
|
||||
Listener( const Connection *conn );
|
||||
Listener( const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Agent> &agList,
|
||||
int waitTime=0 );
|
||||
~Listener();
|
||||
|
||||
Agent listen();
|
||||
void setAgentList(OCCI_STD_NAMESPACE::vector<Agent> &agList);
|
||||
void setTimeOutForListen(int waitTime);
|
||||
OCCI_STD_NAMESPACE::vector<Agent> getAgentList() const;
|
||||
int getTimeOutForListen() const;
|
||||
|
||||
private:
|
||||
const ConnectionImpl *conn;
|
||||
OCIAQAgent** agentList;
|
||||
unsigned int numAgents;
|
||||
int timeOut;
|
||||
void *listenerExt;
|
||||
};
|
||||
|
||||
|
||||
class Subscription
|
||||
{
|
||||
public:
|
||||
enum Presentation
|
||||
{
|
||||
PRES_DEFAULT = OCI_SUBSCR_PRES_DEFAULT,
|
||||
PRES_XML = OCI_SUBSCR_PRES_XML
|
||||
};
|
||||
enum Protocol
|
||||
{
|
||||
PROTO_CBK = OCI_SUBSCR_PROTO_OCI,
|
||||
PROTO_MAIL = OCI_SUBSCR_PROTO_MAIL,
|
||||
PROTO_SERVER = OCI_SUBSCR_PROTO_SERVER,
|
||||
PROTO_HTTP = OCI_SUBSCR_PROTO_HTTP
|
||||
};
|
||||
enum Namespace
|
||||
{
|
||||
NS_ANONYMOUS = OCI_SUBSCR_NAMESPACE_ANONYMOUS,
|
||||
NS_AQ = OCI_SUBSCR_NAMESPACE_AQ
|
||||
};
|
||||
|
||||
Subscription(const Environment* env);
|
||||
Subscription(const Environment* env, OCISubscription* sub);
|
||||
Subscription(const Subscription& sub);
|
||||
~Subscription();
|
||||
|
||||
void operator=(const Subscription& sub);
|
||||
unsigned int getDatabaseServersCount() const;
|
||||
void setDatabaseServerNames(
|
||||
const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string>& dbsrv);
|
||||
OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string>
|
||||
getDatabaseServerNames() const ;
|
||||
void setNotifyCallback(unsigned int (*callback)(Subscription& sub,
|
||||
NotifyResult *nr));
|
||||
unsigned int (*getNotifyCallback() const)(Subscription& sub,
|
||||
NotifyResult *nr);
|
||||
void setCallbackContext(void* ctx);
|
||||
void* getCallbackContext() const;
|
||||
void setSubscriptionName(const OCCI_STD_NAMESPACE::string& name);
|
||||
OCCI_STD_NAMESPACE::string getSubscriptionName() const ;
|
||||
void setSubscriptionNamespace(Namespace nameSpace);
|
||||
Namespace getSubscriptionNamespace() const ;
|
||||
void setPayload(const Bytes& payload);
|
||||
Bytes getPayload() const ;
|
||||
void setRecipientName( const OCCI_STD_NAMESPACE::string& name);
|
||||
OCCI_STD_NAMESPACE::string getRecipientName() const;
|
||||
void setPresentation( Presentation pres) ;
|
||||
Presentation getPresentation() const ;
|
||||
void setProtocol( Protocol prot) ;
|
||||
Protocol getProtocol() const ;
|
||||
OCISubscription* getOCISubscription() const;
|
||||
void setNull();
|
||||
bool isNull() const;
|
||||
Environment* getEnvironment() const;
|
||||
|
||||
private:
|
||||
Ptr<SubscriptionImpl> ptr;
|
||||
};
|
||||
|
||||
class NotifyResult
|
||||
{
|
||||
public:
|
||||
Bytes getPayload() const;
|
||||
Message getMessage() const;
|
||||
Bytes getMessageId() const;
|
||||
OCCI_STD_NAMESPACE::string getConsumerName() const;
|
||||
OCCI_STD_NAMESPACE::string getQueueName() const;
|
||||
|
||||
private:
|
||||
const EnvironmentImpl *env;
|
||||
void *payload;
|
||||
unsigned int payloadLen;
|
||||
void *desc;
|
||||
ub4 mode;
|
||||
void *notifyResultExt;
|
||||
|
||||
//private constructor
|
||||
NotifyResult(const Environment *env, void *payload, ub4 payloadLen,
|
||||
void *pdescriptor, ub4 mode);
|
||||
|
||||
friend class SubscriptionImpl;
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
EXPORT FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
INTERNAL FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
} /* end of namespace aq */
|
||||
} /* end of namespace occi */
|
||||
} /* end of namespace oracle */
|
||||
|
||||
#endif /* OCCIAQ_ORACLE */
|
||||
|
||||
#endif /* _olint */
|
@ -0,0 +1,998 @@
|
||||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
occiCommon.h - header file for doing forward references
|
||||
|
||||
DESCRIPTION
|
||||
Just declare all the classes
|
||||
|
||||
RELATED DOCUMENTS
|
||||
OCCI Programmer's Guide
|
||||
|
||||
EXPORT FUNCTION(S)
|
||||
none
|
||||
|
||||
INTERNAL FUNCTION(S)
|
||||
none
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
none
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OCCICOMMON_ORACLE
|
||||
# define OCCICOMMON_ORACLE
|
||||
|
||||
#ifndef _olint
|
||||
|
||||
#ifndef OCI_ORACLE
|
||||
#include <oci.h>
|
||||
#endif
|
||||
|
||||
#ifndef ORASTRINGSTL
|
||||
#define ORASTRINGSTL
|
||||
#include <string>
|
||||
#endif
|
||||
|
||||
#ifndef ORAVECTORSTL
|
||||
#include <vector>
|
||||
#define ORAVECTORSTL
|
||||
#endif
|
||||
|
||||
#ifndef ORALISTSTL
|
||||
#include <list>
|
||||
#define ORALISTSTL
|
||||
#endif
|
||||
|
||||
#define OCCI_STD_NAMESPACE std
|
||||
#define OCCI_HAVE_STD_NAMESPACE 1
|
||||
|
||||
// version definitions
|
||||
#define OCCI_MAJOR_VERSION OCI_MAJOR_VERSION
|
||||
#define OCCI_MINOR_VERSION OCI_MINOR_VERSION
|
||||
|
||||
namespace oracle {
|
||||
namespace occi {
|
||||
|
||||
//UString is the class for UTF16 characterset
|
||||
//check for version = 3.2 or 3.3
|
||||
#if (__GNUC__ == 3 && (__GNUC_MINOR__ == 2 || __GNUC_MINOR__ == 3))
|
||||
//char_traits<T> specialization for utext for gcc 3.2.3
|
||||
struct utext_char_traits
|
||||
{
|
||||
typedef utext char_type;
|
||||
typedef unsigned int int_type;
|
||||
|
||||
typedef OCCI_STD_NAMESPACE::streampos pos_type;
|
||||
typedef OCCI_STD_NAMESPACE::streamoff off_type;
|
||||
typedef OCCI_STD_NAMESPACE::mbstate_t state_type;
|
||||
|
||||
//assign one char to another
|
||||
static void assign(char_type& c1, const char_type& c2)
|
||||
{
|
||||
c1 = c2;
|
||||
}
|
||||
|
||||
//are 2 chars equal ?
|
||||
static bool eq(const char_type& c1, const char_type& c2)
|
||||
{
|
||||
return c1 == c2;
|
||||
}
|
||||
|
||||
//is char c1 less then c2 ?
|
||||
static bool lt(const char_type& c1, const char_type& c2)
|
||||
{
|
||||
return c1 < c2;
|
||||
}
|
||||
|
||||
//compare 2 strings of char
|
||||
static int compare(const char_type* s1, const char_type* s2, size_t n)
|
||||
{
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
if (!eq(s1[i], s2[i]))
|
||||
return s1[i] < s2[i] ? -1 : 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
//length of a char string
|
||||
static size_t length(const char_type* s)
|
||||
{
|
||||
const char_type nullchar = char_type(0);
|
||||
size_t i = 0;
|
||||
|
||||
while (!eq(*s++, nullchar)) i++;
|
||||
return i;
|
||||
}
|
||||
|
||||
//find a character in the char string
|
||||
static const char_type* find(const char_type* s,
|
||||
size_t n, const char_type& c)
|
||||
{
|
||||
for ( ; n > 0 ; ++s, --n)
|
||||
if (eq(*s, c))
|
||||
return s;
|
||||
return 0;
|
||||
}
|
||||
|
||||
//move n chars from s2 to s1
|
||||
static char_type* move(char_type* s1, const char_type* s2, size_t n)
|
||||
{
|
||||
memmove(s1, s2, n * sizeof(char_type));
|
||||
return s1;
|
||||
}
|
||||
|
||||
//copy n chars from s2 to s1
|
||||
static char_type* copy(char_type* s1, const char_type* s2, size_t n)
|
||||
{
|
||||
memcpy(s1, s2, n * sizeof(char_type));
|
||||
return s1;
|
||||
}
|
||||
|
||||
//fill char c into s
|
||||
static char_type* assign(char_type* s, size_t n, char_type c)
|
||||
{
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
assign(s[i], c);
|
||||
return s;
|
||||
}
|
||||
|
||||
//is the int representation eof ?
|
||||
static int_type not_eof(const int_type& c)
|
||||
{
|
||||
if (c == eof())
|
||||
return 0;
|
||||
else
|
||||
return c;
|
||||
}
|
||||
|
||||
//cast a int type to char
|
||||
static char_type to_char_type(const int_type& c)
|
||||
{
|
||||
return static_cast<char_type>(c);
|
||||
}
|
||||
|
||||
//cast char to int type
|
||||
static int_type to_int_type(const char_type& c)
|
||||
{
|
||||
return static_cast<int_type>(c);
|
||||
}
|
||||
|
||||
//eq operator when the chars are represented as ints
|
||||
static bool eq_int_type(const int_type& c1, const int_type& c2)
|
||||
{
|
||||
return c1 == c2;
|
||||
}
|
||||
|
||||
//eof character
|
||||
static int_type eof()
|
||||
{
|
||||
return static_cast<int_type>(-1);
|
||||
}
|
||||
|
||||
|
||||
}; //end char_traits<unsigned short>
|
||||
|
||||
typedef OCCI_STD_NAMESPACE::basic_string<utext, utext_char_traits> UString;
|
||||
#else
|
||||
//for non gcc 3.2.3 platforms
|
||||
typedef OCCI_STD_NAMESPACE::basic_string<utext> UString;
|
||||
#endif /* if gcc 3.2.3 */
|
||||
|
||||
class Environment;
|
||||
class EnvironmentImpl;
|
||||
class Connection;
|
||||
class ConnectionImpl;
|
||||
class ConnectionPool;
|
||||
class ConnectionPoolImpl;
|
||||
class StatelessConnectionPool;
|
||||
class StatelessConnectionPoolImpl;
|
||||
class Statement;
|
||||
class StatementImpl;
|
||||
class ResultSet;
|
||||
class ResultSetImpl;
|
||||
class SQLException;
|
||||
class SQLExceptionImpl;
|
||||
class BatchSQLException;
|
||||
class BatchSQLExceptionImpl;
|
||||
class Stream;
|
||||
class PObject;
|
||||
class Number;
|
||||
class Bytes;
|
||||
class BytesImpl;
|
||||
class Date;
|
||||
class Timestamp;
|
||||
|
||||
class MetaData;
|
||||
class MetaDataImpl;
|
||||
template <class T> class Ref;
|
||||
class RefImpl;
|
||||
class RefAny;
|
||||
class Blob;
|
||||
class Bfile;
|
||||
class Clob;
|
||||
class LobStreamImpl;
|
||||
class AnyData;
|
||||
class AnyDataImpl;
|
||||
class Map;
|
||||
class IntervalDS;
|
||||
class IntervalYM;
|
||||
|
||||
namespace aq {
|
||||
class Message;
|
||||
class MessageImpl;
|
||||
class Agent;
|
||||
class AgentImpl;
|
||||
class Producer;
|
||||
class ProducerImpl;
|
||||
class Consumer;
|
||||
class ConsumerImpl;
|
||||
class Listener;
|
||||
class Subscription;
|
||||
class SubscriptionImpl;
|
||||
class NotifyResult;
|
||||
}
|
||||
|
||||
typedef struct BFloat BFloat;
|
||||
typedef struct BDouble BDouble;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
ENUMERATORS
|
||||
---------------------------------------------------------------------------*/
|
||||
enum Type
|
||||
{
|
||||
OCCI_SQLT_CHR=SQLT_CHR,
|
||||
OCCI_SQLT_NUM=SQLT_NUM,
|
||||
OCCIINT = SQLT_INT,
|
||||
OCCIFLOAT = SQLT_FLT,
|
||||
OCCIBFLOAT = SQLT_BFLOAT,
|
||||
OCCIBDOUBLE = SQLT_BDOUBLE,
|
||||
OCCIIBFLOAT = SQLT_IBFLOAT,
|
||||
OCCIIBDOUBLE = SQLT_IBDOUBLE,
|
||||
OCCI_SQLT_STR=SQLT_STR,
|
||||
OCCI_SQLT_VNU=SQLT_VNU,
|
||||
OCCI_SQLT_PDN=SQLT_PDN,
|
||||
OCCI_SQLT_LNG=SQLT_LNG,
|
||||
OCCI_SQLT_VCS=SQLT_VCS,
|
||||
OCCI_SQLT_NON=SQLT_NON,
|
||||
OCCI_SQLT_RID=SQLT_RID,
|
||||
OCCI_SQLT_DAT=SQLT_DAT,
|
||||
OCCI_SQLT_VBI=SQLT_VBI,
|
||||
OCCI_SQLT_BIN=SQLT_BIN,
|
||||
OCCI_SQLT_LBI=SQLT_LBI,
|
||||
OCCIUNSIGNED_INT = SQLT_UIN,
|
||||
OCCI_SQLT_SLS=SQLT_SLS,
|
||||
OCCI_SQLT_LVC=SQLT_LVC,
|
||||
OCCI_SQLT_LVB=SQLT_LVB,
|
||||
OCCI_SQLT_AFC=SQLT_AFC,
|
||||
OCCI_SQLT_AVC=SQLT_AVC,
|
||||
OCCI_SQLT_CUR=SQLT_CUR,
|
||||
OCCI_SQLT_RDD=SQLT_RDD,
|
||||
OCCI_SQLT_LAB=SQLT_LAB,
|
||||
OCCI_SQLT_OSL=SQLT_OSL,
|
||||
OCCI_SQLT_NTY=SQLT_NTY,
|
||||
OCCI_SQLT_REF=SQLT_REF,
|
||||
OCCI_SQLT_CLOB=SQLT_CLOB,
|
||||
OCCI_SQLT_BLOB=SQLT_BLOB,
|
||||
OCCI_SQLT_BFILEE=SQLT_BFILEE,
|
||||
OCCI_SQLT_CFILEE=SQLT_CFILEE,
|
||||
OCCI_SQLT_RSET=SQLT_RSET,
|
||||
OCCI_SQLT_NCO=SQLT_NCO,
|
||||
OCCI_SQLT_VST=SQLT_VST,
|
||||
OCCI_SQLT_ODT=SQLT_ODT,
|
||||
OCCI_SQLT_DATE=SQLT_DATE,
|
||||
OCCI_SQLT_TIME=SQLT_TIME,
|
||||
OCCI_SQLT_TIME_TZ=SQLT_TIME_TZ,
|
||||
OCCI_SQLT_TIMESTAMP=SQLT_TIMESTAMP,
|
||||
OCCI_SQLT_TIMESTAMP_TZ=SQLT_TIMESTAMP_TZ,
|
||||
OCCI_SQLT_INTERVAL_YM=SQLT_INTERVAL_YM,
|
||||
OCCI_SQLT_INTERVAL_DS=SQLT_INTERVAL_DS,
|
||||
OCCI_SQLT_TIMESTAMP_LTZ=SQLT_TIMESTAMP_LTZ,
|
||||
OCCI_SQLT_FILE=SQLT_FILE,
|
||||
OCCI_SQLT_CFILE=SQLT_CFILE,
|
||||
OCCI_SQLT_BFILE=SQLT_BFILE,
|
||||
|
||||
OCCICHAR = 32 *1024,
|
||||
OCCIDOUBLE,
|
||||
OCCIBOOL,
|
||||
OCCIANYDATA ,
|
||||
OCCINUMBER,
|
||||
OCCIBLOB,
|
||||
OCCIBFILE,
|
||||
OCCIBYTES,
|
||||
OCCICLOB ,
|
||||
OCCIVECTOR,
|
||||
OCCIMETADATA,
|
||||
OCCIPOBJECT,
|
||||
OCCIREF ,
|
||||
OCCIREFANY,
|
||||
OCCISTRING ,
|
||||
OCCISTREAM ,
|
||||
OCCIDATE ,
|
||||
OCCIINTERVALDS ,
|
||||
OCCIINTERVALYM ,
|
||||
OCCITIMESTAMP,
|
||||
OCCIROWID,
|
||||
OCCICURSOR
|
||||
|
||||
|
||||
};
|
||||
|
||||
enum LockOptions {OCCI_LOCK_NONE = OCI_LOCK_NONE,
|
||||
OCCI_LOCK_X = OCI_LOCK_X,
|
||||
OCCI_LOCK_X_NOWAIT = OCI_LOCK_X_NOWAIT
|
||||
};
|
||||
|
||||
enum {OCCI_MAX_PREFETCH_DEPTH = UB4MAXVAL};
|
||||
|
||||
enum TypeCode
|
||||
{
|
||||
|
||||
OCCI_TYPECODE_REF = OCI_TYPECODE_REF,
|
||||
OCCI_TYPECODE_DATE = OCI_TYPECODE_DATE,
|
||||
OCCI_TYPECODE_REAL = OCI_TYPECODE_REAL,
|
||||
OCCI_TYPECODE_DOUBLE = OCI_TYPECODE_DOUBLE,
|
||||
OCCI_TYPECODE_BDOUBLE = OCI_TYPECODE_BDOUBLE,
|
||||
OCCI_TYPECODE_FLOAT = OCI_TYPECODE_FLOAT,
|
||||
OCCI_TYPECODE_BFLOAT = OCI_TYPECODE_BFLOAT,
|
||||
OCCI_TYPECODE_NUMBER = OCI_TYPECODE_NUMBER,
|
||||
OCCI_TYPECODE_DECIMAL = OCI_TYPECODE_DECIMAL,
|
||||
OCCI_TYPECODE_OCTET = OCI_TYPECODE_OCTET,
|
||||
OCCI_TYPECODE_INTEGER = OCI_TYPECODE_INTEGER,
|
||||
OCCI_TYPECODE_SMALLINT= OCI_TYPECODE_SMALLINT,
|
||||
OCCI_TYPECODE_RAW = OCI_TYPECODE_RAW,
|
||||
OCCI_TYPECODE_VARCHAR2 = OCI_TYPECODE_VARCHAR2,
|
||||
OCCI_TYPECODE_VARCHAR = OCI_TYPECODE_VARCHAR,
|
||||
OCCI_TYPECODE_CHAR = OCI_TYPECODE_CHAR,
|
||||
OCCI_TYPECODE_VARRAY= OCI_TYPECODE_VARRAY,
|
||||
OCCI_TYPECODE_TABLE = OCI_TYPECODE_TABLE,
|
||||
OCCI_TYPECODE_CLOB = OCI_TYPECODE_CLOB,
|
||||
OCCI_TYPECODE_BLOB = OCI_TYPECODE_BLOB,
|
||||
OCCI_TYPECODE_BFILE = OCI_TYPECODE_BFILE,
|
||||
OCCI_TYPECODE_OBJECT = OCI_TYPECODE_OBJECT,
|
||||
OCCI_TYPECODE_NAMEDCOLLECTION = OCI_TYPECODE_NAMEDCOLLECTION
|
||||
};
|
||||
|
||||
enum CharSetForm
|
||||
{
|
||||
OCCI_SQLCS_IMPLICIT = SQLCS_IMPLICIT // use local db char set
|
||||
,OCCI_SQLCS_NCHAR = SQLCS_NCHAR // use local db nchar set
|
||||
,OCCI_SQLCS_EXPLICIT = SQLCS_EXPLICIT // char set explicitly specified
|
||||
,OCCI_SQLCS_FLEXIBLE = SQLCS_FLEXIBLE // pl/sql flexible parameter
|
||||
};
|
||||
|
||||
enum LobOpenMode
|
||||
{ OCCI_LOB_READONLY = OCI_LOB_READONLY
|
||||
,OCCI_LOB_READWRITE = OCI_LOB_READWRITE
|
||||
,OCCI_LOB_WRITEONLY = OCI_LOB_WRITEONLY
|
||||
,OCCI_LOB_APPENDONLY = OCI_LOB_APPENDONLY
|
||||
,OCCI_LOB_FULLOVERWRITE = OCI_LOB_FULLOVERWRITE
|
||||
,OCCI_LOB_FULLREAD = OCI_LOB_FULLREAD
|
||||
};
|
||||
|
||||
enum LobOptionType
|
||||
{
|
||||
OCCI_LOB_OPT_NONE = 0,
|
||||
OCCI_LOB_OPT_COMPRESS = OCI_LOB_OPT_COMPRESS,
|
||||
OCCI_LOB_OPT_ENCRYPT = OCI_LOB_OPT_ENCRYPT,
|
||||
OCCI_LOB_OPT_DEDUPLICATE = OCI_LOB_OPT_DEDUPLICATE,
|
||||
OCCI_LOB_OPT_ALLOCSIZE = OCI_LOB_OPT_ALLOCSIZE,
|
||||
OCCI_LOB_OPT_CONTENTTYPE = OCI_LOB_OPT_CONTENTTYPE,
|
||||
OCCI_LOB_OPT_MODTIME = OCI_LOB_OPT_MODTIME
|
||||
};
|
||||
|
||||
enum LobOptionValue
|
||||
{
|
||||
// Compression Options
|
||||
OCCI_LOB_COMPRESS_OFF = OCI_LOB_COMPRESS_OFF,
|
||||
OCCI_LOB_COMPRESS_ON = OCI_LOB_COMPRESS_ON,
|
||||
// Encryption Options
|
||||
OCCI_LOB_ENCRYPT_OFF = OCI_LOB_ENCRYPT_OFF,
|
||||
OCCI_LOB_ENCRYPT_ON = OCI_LOB_ENCRYPT_ON,
|
||||
// Sharing Options
|
||||
OCCI_LOB_DEDUPLICATE_OFF = OCI_LOB_DEDUPLICATE_OFF,
|
||||
OCCI_LOB_DEDUPLICATE_ON = OCI_LOB_DEDUPLICATE_ON
|
||||
};
|
||||
|
||||
class RefCounted {
|
||||
public:
|
||||
RefCounted();
|
||||
virtual ~RefCounted(){}
|
||||
const RefCounted * newRef() const;
|
||||
void deleteRef() const;
|
||||
|
||||
private:
|
||||
|
||||
void onZeroReferences();
|
||||
unsigned long references_;
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class ConstPtr
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
ConstPtr( const T* ptr = 0 );
|
||||
ConstPtr( const ConstPtr<T>& mp );
|
||||
~ConstPtr();
|
||||
const T * operator->() const;
|
||||
const T* rawPtr() const;
|
||||
|
||||
#ifdef MEMBER_TEMPLATE
|
||||
template<class OtherType> operator ConstPtr<OtherType>();
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
||||
void operator=( const ConstPtr<T>& mp );
|
||||
const T* rawPtr_;
|
||||
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class Ptr : public ConstPtr<T> {
|
||||
|
||||
public:
|
||||
|
||||
Ptr( T* ptr = 0 );
|
||||
Ptr( const Ptr<T>& mp );
|
||||
void operator=( const Ptr<T>& mp );
|
||||
const T * operator->() const;
|
||||
T * operator->();
|
||||
T* rawPtr() ;
|
||||
const T* rawPtr() const;
|
||||
|
||||
|
||||
|
||||
#ifdef MEMBER_TEMPLATE
|
||||
template<class OtherType>
|
||||
operator Ptr<OtherType>();
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
EXPORT FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
void getVector(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect);
|
||||
void getVector(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<UString> &vect);
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Number> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<BFloat> &vect);
|
||||
void getVector(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<BDouble> &vect);
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Date> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
|
||||
void getVector( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
|
||||
template <class T>
|
||||
void getVectorOfRefs( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
|
||||
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
|
||||
#endif
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<T> &vect,
|
||||
void *(*rSQL)(void *));
|
||||
#else
|
||||
template <class T>
|
||||
void getVector(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<T *> &vect,
|
||||
void *(*rSQL)(void *));
|
||||
#endif
|
||||
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<UString> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<BFloat> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<BDouble> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Number> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Date> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
|
||||
template <class T>
|
||||
void setVectorOfRefs( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
|
||||
#endif
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector< T > &vect) ;
|
||||
#else
|
||||
template <class T>
|
||||
void setVector( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector< T* > &vect) ;
|
||||
#endif
|
||||
|
||||
void getVector( ResultSet *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<int> &vect) ;
|
||||
void getVector( ResultSet *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
|
||||
void getVector( ResultSet *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<float> &vect);
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<BFloat> &vect);
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<double> &vect);
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<BDouble> &vect);
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Bytes> &vect);
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Date> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Number> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
|
||||
template <class T>
|
||||
void getVectorOfRefs(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector(ResultSet *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
|
||||
#endif
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector( ResultSet *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector< T > &vect) ;
|
||||
#else
|
||||
template <class T>
|
||||
void getVector( ResultSet *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector< T* > &vect) ;
|
||||
#endif
|
||||
|
||||
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Number> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
|
||||
void getVector( Statement *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<int> &vect) ;
|
||||
void getVector( Statement *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
|
||||
void getVector( Statement *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
|
||||
void getVector( Statement *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<float> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<BFloat> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<double> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<BDouble> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Date> &vect) ;
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
|
||||
template <class T>
|
||||
void getVectorOfRefs(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector(Statement *rs, unsigned int,
|
||||
OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
|
||||
#endif
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector( Statement *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector< T > &vect) ;
|
||||
#else
|
||||
template <class T>
|
||||
void getVector( Statement *rs, unsigned int index,
|
||||
OCCI_STD_NAMESPACE::vector< T* > &vect) ;
|
||||
#endif
|
||||
|
||||
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<int> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<unsigned int> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<double> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<float> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Number> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype);
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Bytes> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype);
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<RefAny> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Blob> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Clob> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Bfile> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Timestamp> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Date> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
template <class T>
|
||||
void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
#endif
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector( Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector< T > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
#else
|
||||
template <class T>
|
||||
void setVector( Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<T* > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &sqltype) ;
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------
|
||||
Statement setVector functions, schema & type separate
|
||||
arguments - multibyte support
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<int> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<unsigned int> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<double> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<float> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Number> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName);
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Bytes> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName);
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<RefAny> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Blob> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Clob> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Bfile> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Timestamp> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Date> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
template <class T>
|
||||
void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
#endif
|
||||
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector( Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector< T > &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
#else
|
||||
template <class T>
|
||||
void setVector( Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<T* > &vect, const OCCI_STD_NAMESPACE::string
|
||||
&schemaName, const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
Statement setVector function - UTF16 support
|
||||
-------------------------------------------------------------------------
|
||||
*/
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<int> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<unsigned int> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<double> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<float> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Number> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName);
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Bytes> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName);
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<UString> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<UString> &vect,
|
||||
const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<RefAny> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Blob> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Clob> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Bfile> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Timestamp> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Date> &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
template <class T>
|
||||
void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector(Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
#endif
|
||||
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector( Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector< T > &vect,
|
||||
const UString &schemaName,
|
||||
const UString &typeName) ;
|
||||
#else
|
||||
template <class T>
|
||||
void setVector( Statement *stmt, unsigned int paramIndex,
|
||||
const OCCI_STD_NAMESPACE::vector<T* > &vect, const UString
|
||||
&schemaName, const UString &typeName) ;
|
||||
#endif
|
||||
|
||||
|
||||
/* Global method for array pins */
|
||||
template <class T>
|
||||
void pinVectorOfRefs( const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
OCCI_STD_NAMESPACE::vector<T* > &vectObj,
|
||||
LockOptions lockOpt = OCCI_LOCK_NONE );
|
||||
|
||||
template <class T>
|
||||
void pinVectorOfRefs( const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
|
||||
LockOptions lockOpt = OCCI_LOCK_NONE );
|
||||
|
||||
#ifdef ORAXB8_DEFINED
|
||||
void readVectorOfBfiles(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Bfile> &vec,
|
||||
oraub8 *byte_amts, oraub8 *offsets,
|
||||
unsigned char *buffers[], oraub8 *buffer_lens);
|
||||
|
||||
void readVectorOfBlobs(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Blob> &vec,
|
||||
oraub8 *byte_amts, oraub8 *offsets,
|
||||
unsigned char *buffers[], oraub8 *buffer_lens);
|
||||
void writeVectorOfBlobs(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Blob> &vec,
|
||||
oraub8 *byte_amts, oraub8 *offsets,
|
||||
unsigned char *buffers[], oraub8 *buffer_lens);
|
||||
|
||||
void readVectorOfClobs(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vec,
|
||||
oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets,
|
||||
unsigned char *buffers[], oraub8 *buffer_lens);
|
||||
void writeVectorOfClobs(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vec,
|
||||
oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets,
|
||||
unsigned char *buffers[], oraub8 *buffer_lens);
|
||||
void readVectorOfClobs(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vec,
|
||||
oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets,
|
||||
utext *buffers[], oraub8 *buffer_lens);
|
||||
void writeVectorOfClobs(const Connection *conn,
|
||||
OCCI_STD_NAMESPACE::vector<Clob> &vec,
|
||||
oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets,
|
||||
utext *buffers[], oraub8 *buffer_lens);
|
||||
#endif
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
INTERNAL FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
} /* end of namespace occi */
|
||||
} /* end of namespace oracle */
|
||||
|
||||
|
||||
#endif /* _olint */
|
||||
|
||||
#endif /* OCCICOMMON_ORACLE */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,910 @@
|
||||
/* Copyright (c) 2000, 2007, Oracle. All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
occiObjects.h - header file for OCCI object classes
|
||||
|
||||
DESCRIPTION
|
||||
Class definitions for Ref, RefAny, AnyData
|
||||
|
||||
RELATED DOCUMENTS
|
||||
<note any documents related to this facility>
|
||||
|
||||
EXPORT FUNCTION(S)
|
||||
<external functions declared for use outside package - one-line
|
||||
descriptions>
|
||||
|
||||
INTERNAL FUNCTION(S)
|
||||
<other external functions declared - one-line descriptions>
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
<other useful comments, qualifications, etc.>
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#ifndef _olint /* disable olint check */
|
||||
|
||||
#ifndef OCCIOBJECTS_ORACLE
|
||||
# define OCCIOBJECTS_ORACLE
|
||||
|
||||
#ifndef OCCICOMMON_ORACLE
|
||||
#include <occiCommon.h>
|
||||
#endif
|
||||
|
||||
namespace oracle {
|
||||
namespace occi {
|
||||
struct AnyDataCtx {
|
||||
ConnectionImpl *occiSession;
|
||||
OCIAnyData *anyData;
|
||||
void *objHeader;
|
||||
ub4 errNum;
|
||||
};
|
||||
typedef struct AnyDataCtx AnyDataCtx;
|
||||
|
||||
class PObject
|
||||
{
|
||||
public:
|
||||
enum LockOption {OCCI_LOCK_WAIT, OCCI_LOCK_NOWAIT};
|
||||
enum UnpinOption {OCCI_PINCOUNT_DECR, OCCI_PINCOUNT_RESET};
|
||||
static void destroy(void *);
|
||||
static void refresh(void *);
|
||||
PObject();
|
||||
PObject(const void *ctx);
|
||||
PObject(const PObject& obj);
|
||||
virtual ~PObject();
|
||||
PObject& operator=(const PObject& obj);
|
||||
void *operator new(size_t size);
|
||||
void *operator new(size_t size, const Connection *x,
|
||||
const OCCI_STD_NAMESPACE::string& tablename,
|
||||
const char *typeName);
|
||||
void *operator new(size_t size, const Connection *sess,
|
||||
const OCCI_STD_NAMESPACE::string& tablename,
|
||||
const OCCI_STD_NAMESPACE::string& typName ,
|
||||
const OCCI_STD_NAMESPACE::string& schTabName="",
|
||||
const OCCI_STD_NAMESPACE::string& schTypName = "");
|
||||
void *operator new(size_t size, const Connection *sess,
|
||||
const UString& tablename, const UString &typName,
|
||||
const UString& schTabName, const UString& schTypName);
|
||||
void *operator new(size_t size, void *adctx);
|
||||
void operator delete(void *obj, size_t size);
|
||||
RefAny getRef() const;
|
||||
bool isLocked() const;
|
||||
void unpin(UnpinOption mode=OCCI_PINCOUNT_DECR);
|
||||
void pin();
|
||||
void lock(PObject::LockOption lock_option);
|
||||
void unmark();
|
||||
void flush();
|
||||
void markDelete();
|
||||
void markModified();
|
||||
bool isNull() const;
|
||||
void setNull();
|
||||
const Connection *getConnection() const;
|
||||
virtual OCCI_STD_NAMESPACE::string getSQLTypeName() const = 0;
|
||||
virtual void getSQLTypeName(Environment *env, void **schName,
|
||||
unsigned int &schNameLen, void **typeName,
|
||||
unsigned int &typeNameLen) const = 0;
|
||||
void getSQLTypeName(Environment *env, void *(*rSQL)(void *),
|
||||
void **schname, unsigned int &schnamelen,
|
||||
void **typname, unsigned int &typnamelen) const;
|
||||
virtual void writeSQL(AnyData& stream) = 0;
|
||||
virtual void readSQL(AnyData& stream) = 0;
|
||||
private:
|
||||
static void initialise( void * obj, const Connection * sess,
|
||||
void *schTabName, unsigned int schTabLen,
|
||||
void *tableName, unsigned int tabLen,
|
||||
void *schTypName, unsigned int schTypLen,
|
||||
void *typeName, unsigned int typLen);
|
||||
|
||||
ConnectionImpl *occiSession_;
|
||||
void *objHeader_;
|
||||
ub2 customNewed_;
|
||||
enum {CUSTOM_NEWED = 0x5cde};
|
||||
ub2 flags_;
|
||||
enum {NULL_INFO = 0x0001, GARBAGE_COLLECTED = 0x0002,
|
||||
REFRESH_OBJECT = 0x0004,
|
||||
CACHED_OBJECT = 0xBAF8};
|
||||
//check PObject implementation for CACHED_OBJECT flag
|
||||
// for future use
|
||||
void *pobjectExt;
|
||||
friend class RefImpl;
|
||||
};
|
||||
|
||||
class AnyData
|
||||
{
|
||||
public:
|
||||
~AnyData();
|
||||
AnyData(void *any) ;
|
||||
AnyData(const Connection *sessp);
|
||||
AnyData(const Connection *sessp, OCIAnyData *any, bool freeImg = true) ;
|
||||
|
||||
AnyData(const AnyData &src);
|
||||
AnyData& operator = (const AnyData &src);
|
||||
|
||||
OCIAnyData* getOCIAnyData() const;
|
||||
const Connection* getConnection() const;
|
||||
|
||||
|
||||
bool isNull() const ;
|
||||
void setNull() ;
|
||||
OCCI_STD_NAMESPACE::string getString() const ;
|
||||
UString getUString() const ;
|
||||
Blob getBlob() const ;
|
||||
Clob getClob() const ;
|
||||
Bfile getBfile() const ;
|
||||
BFloat getBFloat() const ;
|
||||
BDouble getBDouble() const ;
|
||||
Number getNumber() const ;
|
||||
Bytes getBytes() const ;
|
||||
Date getDate() const ;
|
||||
Timestamp getTimestamp() const ;
|
||||
IntervalYM getIntervalYM() const ;
|
||||
IntervalDS getIntervalDS() const ;
|
||||
PObject *getObject(void *(*rSQL)(void *)) const ;
|
||||
RefAny getRef() const ;
|
||||
|
||||
void setString(const OCCI_STD_NAMESPACE::string &str) ;
|
||||
void setUString(const UString &str) ;
|
||||
void setBlob(const Blob &blob) ;
|
||||
void setClob(const Clob &clob) ;
|
||||
void setBfile(const Bfile &bfile) ;
|
||||
void setBFloat(const BFloat &n) ;
|
||||
void setBDouble(const BDouble &n) ;
|
||||
void setNumber(const Number &n) ;
|
||||
void setBytes(const Bytes &bytes) ;
|
||||
void setDate(const Date &date) ;
|
||||
void setTimestamp(const Timestamp ×tamp) ;
|
||||
void setIntervalYM(const IntervalYM &intervalym) ;
|
||||
void setIntervalDS(const IntervalDS &intervalds) ;
|
||||
void setObject(const PObject *objptr) ;
|
||||
void setRef(const RefAny &ref) ;
|
||||
|
||||
void setFromString(const OCCI_STD_NAMESPACE::string &str) ;
|
||||
void setFromBfile(const Bfile &bfile) ;
|
||||
void setFromBFloat(const BFloat &n) ;
|
||||
void setFromBDouble(const BDouble &n) ;
|
||||
void setFromNumber(const Number &n) ;
|
||||
void setFromBytes(const Bytes &bytes) ;
|
||||
void setFromDate(const Date &date) ;
|
||||
void setFromTimestamp(const Timestamp ×tamp) ;
|
||||
void setFromIntervalYM(const IntervalYM &intervalym) ;
|
||||
void setFromIntervalDS(const IntervalDS &intervalds) ;
|
||||
void setFromObject(const PObject *objptr) ;
|
||||
void setFromRef(const RefAny &ref,
|
||||
const OCCI_STD_NAMESPACE::string &typname,
|
||||
const OCCI_STD_NAMESPACE::string &schname) ;
|
||||
|
||||
OCCI_STD_NAMESPACE::string getAsString() const ;
|
||||
Bfile getAsBfile() const ;
|
||||
BFloat getAsBFloat() const ;
|
||||
BDouble getAsBDouble() const ;
|
||||
Number getAsNumber() const ;
|
||||
Bytes getAsBytes() const ;
|
||||
Date getAsDate() const ;
|
||||
Timestamp getAsTimestamp() const ;
|
||||
IntervalYM getAsIntervalYM() const ;
|
||||
IntervalDS getAsIntervalDS() const ;
|
||||
PObject *getAsObject() const ;
|
||||
RefAny getAsRef() const ;
|
||||
|
||||
TypeCode getType() const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
// private data members
|
||||
Ptr<AnyDataImpl> anyDataImplPtr;
|
||||
|
||||
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class Ref
|
||||
{
|
||||
public:
|
||||
|
||||
Ref();
|
||||
Ref(const T *obj) ;
|
||||
Ref(const RefAny &refAny) ;
|
||||
Ref(const Ref<T> &src) ;
|
||||
Ref(const Connection *sessp, OCIRef *tref, bool copy=TRUE)
|
||||
;
|
||||
~Ref();
|
||||
Ref<T>& operator=(const Ref<T> &src)
|
||||
;
|
||||
Ref<T>& operator=(const T *obj) ;
|
||||
Ref<T>& operator=(const RefAny &src);
|
||||
T * operator->() ;
|
||||
T * ptr() ;
|
||||
T & operator *() ;
|
||||
const T * operator->() const;
|
||||
const T * ptr() const;
|
||||
const T & operator *() const ;
|
||||
void markDelete() ;
|
||||
void unmarkDelete() ;
|
||||
void setNull();
|
||||
bool isNull() const;
|
||||
void clear() ;
|
||||
bool isClear() const;
|
||||
void setPrefetch(const OCCI_STD_NAMESPACE::string &typeName,
|
||||
unsigned int depth);
|
||||
void setPrefetch(const OCCI_STD_NAMESPACE::string &schName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName,
|
||||
unsigned int depth);
|
||||
void setPrefetch(const UString &schName,
|
||||
const UString &typeName,
|
||||
unsigned int depth);
|
||||
void setPrefetch(unsigned int depth) ;
|
||||
void setLock(LockOptions );
|
||||
operator RefAny() const;
|
||||
OCIRef *getRef() const;
|
||||
const Connection *getConnection() const;
|
||||
bool operator == (const Ref<T> &ref) const;
|
||||
bool operator != (const Ref<T> &ref) const;
|
||||
bool operator == (const RefAny &refAnyR) const ;
|
||||
bool operator != (const RefAny &refAnyR) const ;
|
||||
OCIComplexObject *getCor() const;
|
||||
void setPinnedObject(PObject *objPtr);
|
||||
private:
|
||||
|
||||
RefImpl *rimplPtr;
|
||||
};
|
||||
|
||||
|
||||
class RefImpl
|
||||
{
|
||||
public:
|
||||
|
||||
RefImpl();
|
||||
RefImpl(PObject *obj) ;
|
||||
RefImpl(const RefAny &refAny) ;
|
||||
RefImpl(const RefImpl &src) ;
|
||||
RefImpl(const Connection *sessp, OCIRef *tref,
|
||||
bool copy=TRUE) ;
|
||||
~RefImpl();
|
||||
bool isNull() const ;
|
||||
void setNull() ;
|
||||
void markDelete() ;
|
||||
void unmarkDelete() ;
|
||||
void clear() ;
|
||||
bool isClear() const ;
|
||||
void setPrefetch(const OCCI_STD_NAMESPACE::string &typeName,
|
||||
unsigned int depth) ;
|
||||
void setPrefetch(const OCCI_STD_NAMESPACE::string &schName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName,
|
||||
unsigned int depth);
|
||||
void setPrefetch(const UString &schName,
|
||||
const UString &typeName,
|
||||
unsigned int depth);
|
||||
void setPrefetch(unsigned int depth) ;
|
||||
void setLock(LockOptions lckOption) ;
|
||||
PObject *pin() ;
|
||||
void unpin(PObject *obj) ;
|
||||
void setRefFromObjPtr(const PObject *obj) ;
|
||||
OCIRef* getRef() const;
|
||||
void setRefImpl(RefImpl *rptr);
|
||||
const Connection * getConnection() const;
|
||||
bool operator == (const RefImpl &refI) const ;
|
||||
bool operator == (const RefAny &refAnyR) const ;
|
||||
void assignObj(PObject *newObjPtr) ;
|
||||
void assignRefAny(const RefAny &src) ;
|
||||
// added following methods
|
||||
bool isEqual(PObject *obj);
|
||||
void operator = ( const RefImpl &src);
|
||||
OCIComplexObject *getCor() const;
|
||||
void setPinnedObject( PObject *objPtr);
|
||||
private:
|
||||
|
||||
OCIRef *ref;
|
||||
const ConnectionImpl *sessp;
|
||||
OCIComplexObject *corhp;
|
||||
OCCI_STD_NAMESPACE::list<void *> descriptorList;
|
||||
LockOptions lockOption;
|
||||
// added data member for object header
|
||||
void *objHeader;
|
||||
//common implementation function for setPrefetch
|
||||
void do_setPrefetch(void *schName, unsigned int schNameLen,
|
||||
void *typeName, unsigned int typeNameLen,
|
||||
unsigned int depth);
|
||||
};
|
||||
|
||||
|
||||
class RefAny
|
||||
{
|
||||
public:
|
||||
|
||||
RefAny();
|
||||
RefAny (const Connection *sessptr, const OCIRef *ref);
|
||||
RefAny (const Connection *sessptr, const OCIRef *ref, bool isowner);
|
||||
~RefAny() ;
|
||||
RefAny(const RefAny& src) ;
|
||||
RefAny& operator=(const RefAny& src) ;
|
||||
void markDelete() ;
|
||||
void unmarkDelete() ;
|
||||
void clear() ;
|
||||
bool isNull() const;
|
||||
OCIRef * getRef() const;
|
||||
const Connection * getConnection() const;
|
||||
bool operator == (const RefAny &refAnyR) const;
|
||||
bool operator != (const RefAny &refAnyR) const;
|
||||
bool isOwner() const;
|
||||
|
||||
private:
|
||||
|
||||
OCIRef *ref;
|
||||
const ConnectionImpl *sessp;
|
||||
// for future use
|
||||
void *refanyExt;
|
||||
bool owner;
|
||||
|
||||
friend RefAny MetaData::getRef(MetaData::AttrId) const;
|
||||
friend RefAny PObject::getRef() const;
|
||||
friend class AnyDataImpl;
|
||||
friend class ResultSetImpl;
|
||||
friend class StatementImpl;
|
||||
friend void getVector(const ResultSet *rs,
|
||||
unsigned int colIndex,
|
||||
OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
|
||||
friend void getVector(const Statement *stmt,
|
||||
unsigned int colIndex,
|
||||
OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
|
||||
};
|
||||
|
||||
template <class T>
|
||||
Ref<T>::Ref()
|
||||
{
|
||||
rimplPtr = new RefImpl();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>::Ref(const T *obj)
|
||||
{
|
||||
rimplPtr = new RefImpl((PObject *)obj);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>::Ref(const RefAny &refAny)
|
||||
|
||||
{
|
||||
rimplPtr = new RefImpl(refAny);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>::Ref(const Ref<T>& src)
|
||||
|
||||
{
|
||||
rimplPtr = new RefImpl(*(src.rimplPtr));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>::Ref(const Connection *sessp, OCIRef *tref, bool copy)
|
||||
|
||||
{
|
||||
rimplPtr = new RefImpl(sessp, tref, copy);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>::~Ref()
|
||||
{
|
||||
delete rimplPtr;
|
||||
}
|
||||
|
||||
|
||||
template <class T>
|
||||
Ref<T>& Ref<T>::operator=(const Ref<T> &src)
|
||||
{
|
||||
if (&src == this)
|
||||
return *this;
|
||||
*rimplPtr = *(src.rimplPtr);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>& Ref<T>::operator=(const T *obj)
|
||||
{
|
||||
if (rimplPtr->isEqual((PObject *)obj))
|
||||
return *this;
|
||||
rimplPtr->assignObj((PObject *)obj);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>& Ref<T>::operator=(const RefAny &src)
|
||||
{
|
||||
rimplPtr->assignRefAny(src);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T* Ref<T>::operator->()
|
||||
{
|
||||
return ((T *)rimplPtr->pin());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T* Ref<T>::ptr()
|
||||
{
|
||||
return ((T *)rimplPtr->pin());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T& Ref<T>::operator * ()
|
||||
{
|
||||
return ((T &)(*(rimplPtr->pin())));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
const T* Ref<T>::operator->() const
|
||||
{
|
||||
return ((const T *)rimplPtr->pin());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
const T* Ref<T>::ptr() const
|
||||
{
|
||||
return ((const T *)rimplPtr->pin());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
const T& Ref<T>::operator * () const
|
||||
{
|
||||
return ((const T &)(*(rimplPtr->pin())));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::markDelete ()
|
||||
{
|
||||
rimplPtr->markDelete();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::unmarkDelete ()
|
||||
{
|
||||
rimplPtr->unmarkDelete();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::setNull()
|
||||
{
|
||||
rimplPtr->setNull();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool Ref<T>::isNull() const
|
||||
{
|
||||
return rimplPtr->isNull();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::clear ()
|
||||
{
|
||||
rimplPtr->clear();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool Ref<T>::isClear() const
|
||||
{
|
||||
return rimplPtr->isClear();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::setPrefetch (const OCCI_STD_NAMESPACE::string &typeName,
|
||||
unsigned int depth)
|
||||
|
||||
{
|
||||
rimplPtr->setPrefetch(typeName,depth);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::setPrefetch (const OCCI_STD_NAMESPACE::string &schemaName,
|
||||
const OCCI_STD_NAMESPACE::string &typeName,
|
||||
unsigned int depth)
|
||||
|
||||
{
|
||||
rimplPtr->setPrefetch(schemaName,typeName,depth);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::setPrefetch (const UString &schemaName,
|
||||
const UString &typeName,
|
||||
unsigned int depth)
|
||||
|
||||
{
|
||||
rimplPtr->setPrefetch(schemaName,typeName,depth);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::setPrefetch (unsigned int depth)
|
||||
|
||||
{
|
||||
rimplPtr->setPrefetch(depth);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void Ref<T>::setLock (LockOptions lckOption)
|
||||
{
|
||||
rimplPtr->setLock(lckOption);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
OCIRef* Ref<T>::getRef() const
|
||||
{
|
||||
return (rimplPtr->getRef());
|
||||
}
|
||||
|
||||
template<class T>
|
||||
const Connection* Ref<T>::getConnection () const
|
||||
{
|
||||
return (rimplPtr->getConnection());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
Ref<T>::operator RefAny () const
|
||||
{
|
||||
if (isNull())
|
||||
return RefAny();
|
||||
return (RefAny(rimplPtr->getConnection(), rimplPtr->getRef()));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool Ref<T>::operator ==(const Ref<T> &ref) const
|
||||
|
||||
{
|
||||
return ( (*rimplPtr) == (*(ref.rimplPtr)) );
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool Ref<T>::operator !=(const Ref<T> &ref) const
|
||||
|
||||
{
|
||||
return ( !((*rimplPtr) == (*(ref.rimplPtr))) );
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool Ref<T>::operator == (const RefAny & refAnyR) const
|
||||
|
||||
{
|
||||
return ( (*rimplPtr) == refAnyR );
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool Ref<T>::operator != (const RefAny & refAnyR) const
|
||||
|
||||
{
|
||||
return ( !((*rimplPtr) == refAnyR ));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
OCIComplexObject * Ref<T>::getCor() const
|
||||
{
|
||||
return (rimplPtr->getCor());
|
||||
}
|
||||
|
||||
template < class T>
|
||||
void Ref<T>::setPinnedObject( PObject *objPtr)
|
||||
{
|
||||
rimplPtr->setPinnedObject(objPtr);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PROTOTYPES USED BY FUNCTION TEMPLATES
|
||||
---------------------------------------------------------------------------*/
|
||||
void getVectorOfOCIRefs( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector<void *> &vect);
|
||||
void getVectorOfPObjects( const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector< PObject* > &vect,
|
||||
void *(*rSQL)(void *)) ;
|
||||
void setVectorOfOCIRefs( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector<void *> &vect,
|
||||
const OCCI_STD_NAMESPACE::vector< OCIInd> &vec_ind) ;
|
||||
void setVectorOfPObjects( AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector< PObject* > &vect) ;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
EXPORT FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
/*------------------- getVector for POBject----------------------------*/
|
||||
/*
|
||||
NAME
|
||||
getVector - overloaded function. Retrieves the attribute in the
|
||||
current position as a vector of PObject
|
||||
|
||||
PARAMETERS
|
||||
any - AnyData
|
||||
vect- reference to vector of PObject (OUT parameter).
|
||||
|
||||
DESCRIPTION
|
||||
Retrieves the attribute in the current position as a vector
|
||||
of PObject
|
||||
The attribute at the current position should be a collection
|
||||
type (varray or nested table). The SQL type of the elements in
|
||||
the collection should be compatible with PObject
|
||||
|
||||
RETURNS
|
||||
nothing
|
||||
|
||||
NOTES
|
||||
compatible SQL types : user defined types (SQLT_NTY) etc.
|
||||
*/
|
||||
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
// and other platforms that do not support
|
||||
// partial function template specialization
|
||||
template <class T>
|
||||
void getVector(const AnyData &any, OCCI_STD_NAMESPACE::vector<T> &vect,
|
||||
void *(*rSQL)(void *))
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
|
||||
getVectorOfPObjects( any, vec_pobj, rSQL);
|
||||
|
||||
vect.clear();
|
||||
unsigned int size= vec_pobj.size();
|
||||
vect.reserve( size );
|
||||
for( unsigned int i=0; i< size; i++)
|
||||
vect.push_back( (T)vec_pobj[i] );
|
||||
}
|
||||
#else
|
||||
template <class T>
|
||||
void getVector(const AnyData &any, OCCI_STD_NAMESPACE::vector<T*> &vect,
|
||||
void *(*rSQL)(void *))
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
|
||||
getVectorOfPObjects( any, vec_pobj, rSQL);
|
||||
|
||||
vect.clear();
|
||||
unsigned int size= vec_pobj.size();
|
||||
vect.reserve( size );
|
||||
for( unsigned int i=0; i< size; i++)
|
||||
vect.push_back( (T*)vec_pobj[i] );
|
||||
}
|
||||
#endif /* end of #ifdef WIN32COMMON */
|
||||
|
||||
/*------------------- getVector for Ref<T>----------------------------*/
|
||||
/*
|
||||
NAME
|
||||
getVector - overloaded function. Retrieves the attribute in the
|
||||
current position as a vector of PObject
|
||||
|
||||
PARAMETERS
|
||||
any - AnyData
|
||||
vect- reference to vector of PObject (OUT parameter).
|
||||
|
||||
DESCRIPTION
|
||||
Retrieves the attribute in the current position as a vector
|
||||
of PObject
|
||||
The attribute at the current position should be a collection
|
||||
type (varray or nested table). The SQL type of the elements in
|
||||
the collection should be compatible with PObject
|
||||
|
||||
RETURNS
|
||||
nothing
|
||||
|
||||
NOTES
|
||||
compatible SQL types : user defined types (SQLT_NTY) etc.
|
||||
*/
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void getVector(const AnyData &any,OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< void *> vec_ref;
|
||||
getVectorOfOCIRefs( any, vec_ref);
|
||||
|
||||
vect.clear();
|
||||
unsigned int size = vec_ref.size();
|
||||
vect.reserve( size );
|
||||
const Connection *sess = any.getConnection();
|
||||
|
||||
for (unsigned int i=0; i< size; i++)
|
||||
{
|
||||
if (vec_ref[i] == (OCIRef *)0)
|
||||
vect.push_back(Ref<T>()); // pushing a default-constructed Ref
|
||||
else
|
||||
vect.push_back(Ref<T>(sess, (OCIRef *)vec_ref[i], FALSE));
|
||||
}
|
||||
}
|
||||
#endif /* end of #ifndef WIN32COMMON */
|
||||
|
||||
/*-----------------------setVector for PObject--------------------------*/
|
||||
/*
|
||||
NAME
|
||||
setVector - overloaded function. sets the attribute in the current
|
||||
position of anydata with the vector elements.
|
||||
|
||||
PARAMETERS
|
||||
none.
|
||||
|
||||
DESCRIPTION
|
||||
sets the attribute in the current position in anydata with the
|
||||
vector elements.
|
||||
The attribute in the current position of anydata should be a
|
||||
collection type. If the collection type is a varray, the input vector
|
||||
size should be equal to the size of the varray. Also the SQL type of
|
||||
the collection's elements should be compatible with PObject.
|
||||
|
||||
RETURNS
|
||||
nothing.
|
||||
|
||||
NOTES
|
||||
compatible SQL types : SQLT_NTY (user defined types).
|
||||
*/
|
||||
#if defined(WIN32COMMON) || defined(__MVS__)
|
||||
// and other platforms that do not support
|
||||
// partial function template specialization
|
||||
|
||||
template <class T>
|
||||
void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector<T> &vect)
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
|
||||
unsigned int size= vect.size();
|
||||
vec_pobj.reserve( size );
|
||||
for( unsigned int i=0; i< size; i++)
|
||||
vec_pobj.push_back( vect[i] );
|
||||
setVectorOfPObjects( any, vec_pobj);
|
||||
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
template <class T>
|
||||
void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector<T*> &vect)
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< PObject *> vec_pobj;
|
||||
unsigned int size= vect.size();
|
||||
vec_pobj.reserve( size );
|
||||
for( unsigned int i=0; i< size; i++)
|
||||
vec_pobj.push_back( vect[i] );
|
||||
setVectorOfPObjects( any, vec_pobj);
|
||||
|
||||
}
|
||||
#endif /* end of #ifdef WIN32COMMON */
|
||||
|
||||
/*-----------------------setVector for Ref<T>--------------------------*/
|
||||
/*
|
||||
NAME
|
||||
setVector - overloaded function. sets the attribute in the current
|
||||
position of anydata with the vector elements.
|
||||
|
||||
PARAMETERS
|
||||
none.
|
||||
|
||||
DESCRIPTION
|
||||
sets the attribute in the current position in anydata with the
|
||||
vector elements.
|
||||
The attribute in the current position of anydata should be a
|
||||
collection type. If the collection type is a varray, the input vector
|
||||
size should be equal to the size of the varray. Also the SQL type of
|
||||
the collection's elements should be compatible with PObject.
|
||||
|
||||
RETURNS
|
||||
nothing.
|
||||
|
||||
NOTES
|
||||
compatible SQL types : SQLT_NTY (user defined types).
|
||||
*/
|
||||
#if !defined(WIN32COMMON) && !defined(__MVS__)
|
||||
template <class T>
|
||||
void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< void *> vec_ref;
|
||||
OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
|
||||
|
||||
unsigned int size= vect.size();
|
||||
vec_ref.reserve( size );
|
||||
vec_ind.reserve( size );
|
||||
for( unsigned int i=0; i< size; i++)
|
||||
{
|
||||
vec_ref.push_back( vect[i].getRef() );
|
||||
vec_ind.push_back(vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
|
||||
}
|
||||
setVectorOfOCIRefs( any, vec_ref, vec_ind);
|
||||
|
||||
}
|
||||
#endif /* end of #ifndef WIN32COMMON */
|
||||
|
||||
// Platform independent get/setVectorOfRefs method added
|
||||
// get(set)Vector of Ref<T> and get(set)VectorOfRefs are identical
|
||||
// in functionality.
|
||||
|
||||
/*------------------- getVectorOfRefs for Ref<T>----------------------------*/
|
||||
/*
|
||||
NAME
|
||||
getVectorOfRefs - overloaded function. Retrieves the attribute in the
|
||||
current position as a vector of PObject
|
||||
|
||||
PARAMETERS
|
||||
any - AnyData
|
||||
vect- reference to vector of PObject (OUT parameter).
|
||||
|
||||
DESCRIPTION
|
||||
Retrieves the attribute in the current position as a vector
|
||||
of PObject
|
||||
The attribute at the current position should be a collection
|
||||
type (varray or nested table). The SQL type of the elements in
|
||||
the collection should be compatible with PObject
|
||||
|
||||
RETURNS
|
||||
nothing
|
||||
|
||||
NOTES
|
||||
compatible SQL types : user defined types (SQLT_NTY) etc.
|
||||
*/
|
||||
|
||||
template <class T>
|
||||
void getVectorOfRefs(const AnyData &any,
|
||||
OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< void *> vec_ref;
|
||||
getVectorOfOCIRefs( any, vec_ref);
|
||||
|
||||
vect.clear();
|
||||
unsigned int size = vec_ref.size();
|
||||
vect.reserve( size );
|
||||
const Connection *sess = any.getConnection();
|
||||
|
||||
for (unsigned int i=0; i< size; i++)
|
||||
{
|
||||
if (vec_ref[i] == (OCIRef *)0)
|
||||
vect.push_back(Ref<T>()); // pushing a default-constructed Ref
|
||||
else
|
||||
vect.push_back(Ref<T>(sess, (OCIRef *)vec_ref[i], FALSE));
|
||||
}
|
||||
}
|
||||
|
||||
/*-----------------------setVectorOfRefs for Ref<T>--------------------------*/
|
||||
/*
|
||||
NAME
|
||||
setVectorOfRefs - overloaded function. sets the attribute in the current
|
||||
position of anydata with the vector elements.
|
||||
|
||||
PARAMETERS
|
||||
none.
|
||||
|
||||
DESCRIPTION
|
||||
sets the attribute in the current position in anydata with the
|
||||
vector elements.
|
||||
The attribute in the current position of anydata should be a
|
||||
collection type. If the collection type is a varray, the input vector
|
||||
size should be equal to the size of the varray. Also the SQL type of
|
||||
the collection's elements should be compatible with PObject.
|
||||
|
||||
RETURNS
|
||||
nothing.
|
||||
|
||||
NOTES
|
||||
compatible SQL types : SQLT_NTY (user defined types).
|
||||
*/
|
||||
|
||||
template <class T>
|
||||
void setVectorOfRefs(AnyData &any,
|
||||
const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect)
|
||||
|
||||
{
|
||||
OCCI_STD_NAMESPACE::vector< void *> vec_ref;
|
||||
OCCI_STD_NAMESPACE::vector<OCIInd> vec_ind;
|
||||
|
||||
unsigned int size= vect.size();
|
||||
vec_ref.reserve( size );
|
||||
vec_ind.reserve( size );
|
||||
for( unsigned int i=0; i< size; i++)
|
||||
{
|
||||
vec_ref.push_back( vect[i].getRef() );
|
||||
vec_ind.push_back(vect[i].isNull() ? OCI_IND_NULL : OCI_IND_NOTNULL);
|
||||
}
|
||||
setVectorOfOCIRefs( any, vec_ref, vec_ind);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
INTERNAL FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
} /* end of namespace occi */
|
||||
} /* end of namespace oracle */
|
||||
#endif /* OCCIOBJECTS_ORACLE */
|
||||
|
||||
#endif /* _olint */
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,182 @@
|
||||
|
||||
/* Copyright (c) 1997, 2005, Oracle. All rights reserved. */
|
||||
|
||||
/* NOTE: See 'header_template.doc' in the 'doc' dve under the 'forms'
|
||||
directory for the header file template that includes instructions.
|
||||
*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
oci1.h - Cartridge Service definitions
|
||||
|
||||
DESCRIPTION
|
||||
<short description of component this file declares/defines>
|
||||
|
||||
RELATED DOCUMENTS
|
||||
|
||||
INSPECTION STATUS
|
||||
Inspection date:
|
||||
Inspection status:
|
||||
Estimated increasing cost defects per page:
|
||||
Rule sets:
|
||||
|
||||
ACCEPTANCE REVIEW STATUS
|
||||
Review date:
|
||||
Review status:
|
||||
Reviewers:
|
||||
|
||||
PUBLIC FUNCTION(S)
|
||||
<list of external functions declared/defined - with one-line descriptions>
|
||||
|
||||
PRIVATE FUNCTION(S)
|
||||
<list of static functions defined in .c file - with one-line descriptions>
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
<other useful comments, qualifications, etc.>
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
mbastawa 09/16/05 - dbhygiene
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
nramakri 01/16/98 - remove #ifdef NEVER clause
|
||||
ewaugh 12/18/97 - Turn type wrappers into functions.
|
||||
skabraha 12/02/97 - Adding data structures & constants for OCIFile
|
||||
rhwu 12/02/97 - OCI Thread
|
||||
nramakri 12/15/97 - move to core4
|
||||
ewaugh 12/11/97 - add OCIFormat package constants
|
||||
ssamu 12/10/97 - do not include s.h
|
||||
nramakri 11/19/97 - add OCIExtract definitions
|
||||
ssamu 11/14/97 - creation
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OCI1_ORACLE
|
||||
# define OCI1_ORACLE
|
||||
|
||||
# ifndef ORATYPES
|
||||
# include <oratypes.h>
|
||||
# endif
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
/* Constants required by the OCIFormat package. */
|
||||
|
||||
#define OCIFormatUb1(variable) OCIFormatTUb1(), &(variable)
|
||||
#define OCIFormatUb2(variable) OCIFormatTUb2(), &(variable)
|
||||
#define OCIFormatUb4(variable) OCIFormatTUb4(), &(variable)
|
||||
#define OCIFormatUword(variable) OCIFormatTUword(), &(variable)
|
||||
#define OCIFormatUbig_ora(variable) OCIFormatTUbig_ora(), &(variable)
|
||||
#define OCIFormatSb1(variable) OCIFormatTSb1(), &(variable)
|
||||
#define OCIFormatSb2(variable) OCIFormatTSb2(), &(variable)
|
||||
#define OCIFormatSb4(variable) OCIFormatTSb4(), &(variable)
|
||||
#define OCIFormatSword(variable) OCIFormatTSword(), &(variable)
|
||||
#define OCIFormatSbig_ora(variable) OCIFormatTSbig_ora(), &(variable)
|
||||
#define OCIFormatEb1(variable) OCIFormatTEb1(), &(variable)
|
||||
#define OCIFormatEb2(variable) OCIFormatTEb2(), &(variable)
|
||||
#define OCIFormatEb4(variable) OCIFormatTEb4(), &(variable)
|
||||
#define OCIFormatEword(variable) OCIFormatTEword(), &(variable)
|
||||
#define OCIFormatChar(variable) OCIFormatTChar(), &(variable)
|
||||
#define OCIFormatText(variable) OCIFormatTText(), (variable)
|
||||
#define OCIFormatDouble(variable) OCIFormatTDouble(), &(variable)
|
||||
#define OCIFormatDvoid(variable) OCIFormatTDvoid(), (variable)
|
||||
#define OCIFormatEnd OCIFormatTEnd()
|
||||
|
||||
#define OCIFormatDP 6
|
||||
|
||||
|
||||
/*----------------- Public Constants for OCIFile -------------------------*/
|
||||
|
||||
/* flags for open.*/
|
||||
/* flags for mode */
|
||||
#define OCI_FILE_READ_ONLY 1 /* open for read only */
|
||||
#define OCI_FILE_WRITE_ONLY 2 /* open for write only */
|
||||
#define OCI_FILE_READ_WRITE 3 /* open for read & write */
|
||||
/* flags for create */
|
||||
#define OCI_FILE_EXIST 0 /* the file should exist */
|
||||
#define OCI_FILE_CREATE 1 /* create if the file doesn't exist */
|
||||
#define OCI_FILE_EXCL 2 /* the file should not exist */
|
||||
#define OCI_FILE_TRUNCATE 4 /* create if the file doesn't exist,
|
||||
else truncate file the file to 0 */
|
||||
#define OCI_FILE_APPEND 8 /* open the file in append mode */
|
||||
|
||||
/* flags for seek */
|
||||
#define OCI_FILE_SEEK_BEGINNING 1 /* seek from the beginning of the file */
|
||||
#define OCI_FILE_SEEK_CURRENT 2 /* seek from the current position */
|
||||
#define OCI_FILE_SEEK_END 3 /* seek from the end of the file */
|
||||
|
||||
#define OCI_FILE_FORWARD 1 /* seek forward */
|
||||
#define OCI_FILE_BACKWARD 2 /* seek backward */
|
||||
|
||||
/* file type */
|
||||
#define OCI_FILE_BIN 0 /* binary file */
|
||||
#define OCI_FILE_TEXT 1 /* text file */
|
||||
#define OCI_FILE_STDIN 2 /* standard i/p */
|
||||
#define OCI_FILE_STDOUT 3 /* standard o/p */
|
||||
#define OCI_FILE_STDERR 4 /* standard error */
|
||||
|
||||
/* Represents an open file */
|
||||
typedef struct OCIFileObject OCIFileObject;
|
||||
|
||||
|
||||
/*--------------------- OCI Thread Object Definitions------------------------*/
|
||||
|
||||
/* OCIThread Context */
|
||||
typedef struct OCIThreadContext OCIThreadContext;
|
||||
|
||||
/* OCIThread Mutual Exclusion Lock */
|
||||
typedef struct OCIThreadMutex OCIThreadMutex;
|
||||
|
||||
/* OCIThread Key for Thread-Specific Data */
|
||||
typedef struct OCIThreadKey OCIThreadKey;
|
||||
|
||||
/* OCIThread Thread ID */
|
||||
typedef struct OCIThreadId OCIThreadId;
|
||||
|
||||
/* OCIThread Thread Handle */
|
||||
typedef struct OCIThreadHandle OCIThreadHandle;
|
||||
|
||||
|
||||
/*-------------------- OCI Thread Callback Function Pointers ----------------*/
|
||||
|
||||
/* OCIThread Key Destructor Function Type */
|
||||
typedef void (*OCIThreadKeyDestFunc)( void * );
|
||||
|
||||
|
||||
/* Flags passed into OCIExtractFromXXX routines to direct processing */
|
||||
#define OCI_EXTRACT_CASE_SENSITIVE 0x1 /* matching is case sensitive */
|
||||
#define OCI_EXTRACT_UNIQUE_ABBREVS 0x2 /* unique abbreviations for keys
|
||||
are allowed */
|
||||
#define OCI_EXTRACT_APPEND_VALUES 0x4 /* if multiple values for a key
|
||||
exist, this determines if the
|
||||
new value should be appended
|
||||
to (or replace) the current
|
||||
list of values */
|
||||
|
||||
/* Constants passed into OCIExtractSetKey routine */
|
||||
#define OCI_EXTRACT_MULTIPLE 0x8 /* key can accept multiple values */
|
||||
#define OCI_EXTRACT_TYPE_BOOLEAN 1 /* key type is boolean */
|
||||
#define OCI_EXTRACT_TYPE_STRING 2 /* key type is string */
|
||||
#define OCI_EXTRACT_TYPE_INTEGER 3 /* key type is integer */
|
||||
#define OCI_EXTRACT_TYPE_OCINUM 4 /* key type is ocinum */
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#endif /* OCI1_ORACLE */
|
@ -0,0 +1,317 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
/* Copyright (c) 1998, 2005, Oracle. All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
oci8dp.h - OCI: Direct Path API interface prototypes.
|
||||
|
||||
DESCRIPTION
|
||||
Public types, constants, and interfaces to the direct path API.
|
||||
|
||||
RELATED DOCUMENTS
|
||||
|
||||
NOTES
|
||||
This file is not directly included by the application, this file
|
||||
is included by "oci.h", which the application should include.
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
rphillip 02/27/04 - Add OCI_DIRPATH_COL_ERROR
|
||||
srseshad 03/12/03 - convert oci public api to ansi
|
||||
msakayed 10/28/02 - Bug #2643907: add OCI_ATTR_DIRPATH_SKIPINDEX_METHOD
|
||||
cmlim 04/13/01 - remove OCIDirPathStreamToStream - not used by dpapi
|
||||
cmlim 04/02/01 - OCI_DIRPATH_EXPR_OPQ_SQL_FN to OCI_DIRPATH_EXPR_SQL
|
||||
ebatbout 01/22/01 - PARTIAL value for OCIDirPathDataSave action parameter
|
||||
cmlim 07/20/00 - support opaques/sql strings in 8.2 dpapi
|
||||
cmlim 08/14/00 - support refs in 8.2 dpapi
|
||||
cmlim 04/17/00 - add defines for OCIDirPathFuncCtx handle & OCI_ATTR_D
|
||||
whe 09/01/99 - 976457:check __cplusplus for C++ code
|
||||
abrumm 04/16/99 - dpapi: more attributes
|
||||
abrumm 02/26/99 - add defines for DataSave action
|
||||
abrumm 10/04/98 - clen must be a ub4
|
||||
abrumm 05/27/98 - add column array flag values
|
||||
abrumm 05/12/98 - direct path api support
|
||||
abrumm 03/31/98 - OCI direct path interface support
|
||||
abrumm 03/18/98 - Creation
|
||||
|
||||
*/
|
||||
|
||||
#ifndef OCI8DP_ORACLE
|
||||
# define OCI8DP_ORACLE
|
||||
|
||||
#ifndef ORATYPES
|
||||
#include <oratypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCIDFN
|
||||
#include <ocidfn.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCI_ORACLE
|
||||
#include <oci.h>
|
||||
#endif
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
/*----- Handles and descriptors for direct path operations (OCIDirPath*) ----*/
|
||||
|
||||
typedef struct OCIDirPathCtx OCIDirPathCtx; /* context */
|
||||
typedef struct OCIDirPathFuncCtx OCIDirPathFuncCtx; /* function context */
|
||||
typedef struct OCIDirPathColArray OCIDirPathColArray; /* column array */
|
||||
typedef struct OCIDirPathStream OCIDirPathStream; /* stream */
|
||||
typedef struct OCIDirPathDesc OCIDirPathDesc; /* direct path descriptor */
|
||||
|
||||
/*----- Defines for Direct Path Options -----*/
|
||||
|
||||
/* values for OCI_ATTR_DIRPATH_MODE attribute */
|
||||
#define OCI_DIRPATH_LOAD 1 /* direct path load operation */
|
||||
#define OCI_DIRPATH_UNLOAD 2 /* direct path unload operation */
|
||||
#define OCI_DIRPATH_CONVERT 3 /* direct path convert only operation */
|
||||
|
||||
/*----- values for OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD attribute -----*/
|
||||
#define OCI_DIRPATH_INDEX_MAINT_SINGLE_ROW 1
|
||||
|
||||
/* Note that there are two attributes dealing with index maintenance -
|
||||
* OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD and OCI_ATTR_DIRPATH_SKIPINDEX_METHOD.
|
||||
* OCI_ATTR_DIRPATH_SKIPINDEX_METHOD exists to isolate the behavior for
|
||||
* skipping index maintenance since maintenance of unusable indexes is
|
||||
* orthogonal to that of single row insertion.
|
||||
* For backwards compatibility we still allow users to specify skip
|
||||
* methods in OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD so make sure the
|
||||
* enumerations for the two attributes are distinct.
|
||||
*/
|
||||
/*----- values for OCI_ATTR_DIRPATH_SKIPINDEX_METHOD attribute -----*/
|
||||
#define OCI_DIRPATH_INDEX_MAINT_SKIP_UNUSABLE 2
|
||||
#define OCI_DIRPATH_INDEX_MAINT_DONT_SKIP_UNUSABLE 3
|
||||
#define OCI_DIRPATH_INDEX_MAINT_SKIP_ALL 4
|
||||
|
||||
/* values for OCI_ATTR_STATE attribute of OCIDirPathCtx */
|
||||
#define OCI_DIRPATH_NORMAL 1 /* can accept rows, last row complete */
|
||||
#define OCI_DIRPATH_PARTIAL 2 /* last row was partial */
|
||||
#define OCI_DIRPATH_NOT_PREPARED 3 /* direct path context is not prepared */
|
||||
|
||||
/*----- values for cflg argument to OCIDirpathColArrayEntrySet -----*/
|
||||
#define OCI_DIRPATH_COL_COMPLETE 0 /* column data is complete */
|
||||
#define OCI_DIRPATH_COL_NULL 1 /* column is null */
|
||||
#define OCI_DIRPATH_COL_PARTIAL 2 /* column data is partial */
|
||||
#define OCI_DIRPATH_COL_ERROR 3 /* column error, ignore row */
|
||||
/*----- values for action parameter to OCIDirPathDataSave -----*/
|
||||
#define OCI_DIRPATH_DATASAVE_SAVEONLY 0 /* data save point only */
|
||||
#define OCI_DIRPATH_DATASAVE_FINISH 1 /* execute finishing logic */
|
||||
/* save portion of input data (before space error occurred) and finish */
|
||||
#define OCI_DIRPATH_DATASAVE_PARTIAL 2
|
||||
|
||||
/*- OCI_ATTR_DIRPATH_EXPR_TYPE values (describes OCI_ATTR_NAME expr type) -*/
|
||||
#define OCI_DIRPATH_EXPR_OBJ_CONSTR 1 /* NAME is an object constructor */
|
||||
#define OCI_DIRPATH_EXPR_SQL 2 /* NAME is an opaque or sql function */
|
||||
#define OCI_DIRPATH_EXPR_REF_TBLNAME 3 /* NAME is table name if ref is scoped*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
/*------------------------ OCIDirPathCtx Operations -------------------------*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathAbort - OCI: Abort a direct path operation.
|
||||
|
||||
DESCRIPTION
|
||||
Aborts a direct path operation. Upon successful completion
|
||||
the direct path context is no longer valid.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathAbort( OCIDirPathCtx *dpctx, OCIError *errhp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathDataSave - OCI: Execute a data save point.
|
||||
|
||||
DESCRIPTION
|
||||
Successful return of this function indicates that a data save
|
||||
point has been executed.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathDataSave( OCIDirPathCtx *dpctx, OCIError *errhp, ub4 action );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathFinish - OCI: Finish a direct path operation.
|
||||
|
||||
DESCRIPTION
|
||||
Finishes a direct path operation.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathFinish( OCIDirPathCtx *dpctx, OCIError *errhp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathFlushRow - OCI: Flush a partial row from the server.
|
||||
|
||||
DESCRIPTION
|
||||
Flushes a partially loaded row from the server.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathFlushRow( OCIDirPathCtx *dpctx, OCIError *errhp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathPrepare - OCI: Prepare a direct path operation.
|
||||
|
||||
DESCRIPTION
|
||||
Prepares a table/partition for a direct path operation.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathPrepare( OCIDirPathCtx *dpctx, OCISvcCtx *svchp,
|
||||
OCIError *errhp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathLoadStream - OCI: Load a direct path stream.
|
||||
|
||||
DESCRIPTION
|
||||
Load a direct path stream to the object associated with
|
||||
the direct path context.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathLoadStream( OCIDirPathCtx *dpctx, OCIDirPathStream *dpstr,
|
||||
OCIError *errhp );
|
||||
|
||||
|
||||
/*---------------------- OCIDirPathColArray Operations ----------------------*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathColArrayEntryGet - OCI: Get column array entry.
|
||||
|
||||
DESCRIPTION
|
||||
Column array function which is used to get a specified entry in
|
||||
a column array.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathColArrayEntryGet( OCIDirPathColArray *dpca, OCIError *errhp,
|
||||
ub4 rownum, ub2 colIdx, ub1 **cvalpp, ub4 *clenp,
|
||||
ub1 *cflgp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathColArrayEntrySet - OCI: Set column array entry.
|
||||
|
||||
DESCRIPTION
|
||||
Column array function which is used to set a specified entry in
|
||||
a column array.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathColArrayEntrySet( OCIDirPathColArray *dpca, OCIError *errhp,
|
||||
ub4 rownum, ub2 colIdx, ub1 *cvalp, ub4 clen,
|
||||
ub1 cflg );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathColArrayRowGet - OCI: Get column array row pointers.
|
||||
|
||||
DESCRIPTION
|
||||
Column array function which is used to get the base row pointers
|
||||
for a specified row in a column array.
|
||||
To be used in lieu of OCIDirPathColArrayEntryGet() and
|
||||
OCIDirPathColArrayEntrySet().
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathColArrayRowGet( OCIDirPathColArray *dpca, OCIError *errhp,
|
||||
ub4 rownum, ub1 ***cvalppp, ub4 **clenpp,
|
||||
ub1 **cflgpp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathColArrayReset - OCI: Reset Column Array State
|
||||
|
||||
DESCRIPTION
|
||||
Function which resets the column array state.
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
Resetting the column array state is necessary when piecing in a large
|
||||
column and an error occurs in the middle of loading the column.
|
||||
*/
|
||||
sword
|
||||
OCIDirPathColArrayReset( OCIDirPathColArray *dpca, OCIError *errhp );
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathColArrayToStream - OCI: Convert Column Array to Stream Format.
|
||||
|
||||
DESCRIPTION
|
||||
Convert from column array format to stream format which is suitable
|
||||
for loading via OCIDirPathLoadStream().
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathColArrayToStream( OCIDirPathColArray *dpca, OCIDirPathCtx *dpctx,
|
||||
OCIDirPathStream *dpstr, OCIError *errhp,
|
||||
ub4 rowcnt, ub4 rowoff );
|
||||
|
||||
|
||||
|
||||
/*----------------------- OCIDirPathStream Operations -----------------------*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCIDirPathStreamReset - OCI:
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
RETURNS
|
||||
An OCI error code, Oracle errors are returned via the error handle.
|
||||
NOTES
|
||||
*/
|
||||
sword
|
||||
OCIDirPathStreamReset( OCIDirPathStream *dpstr, OCIError *errhp );
|
||||
|
||||
#endif /* OCI8DP_ORACLE */
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,155 @@
|
||||
/* Copyright (c) 1991, 2005, Oracle. All rights reserved. */
|
||||
/*
|
||||
NAME
|
||||
ociapr.h
|
||||
MODIFIED (MM/DD/YY)
|
||||
mbastawa 09/16/05 - dbhygiene
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
dsaha 05/19/00 - Fix lint
|
||||
sgollapu 05/19/98 - Change text to OraText
|
||||
dchatter 11/10/95 - add ognfd() - get native fd
|
||||
lchidamb 04/06/95 - drop maxdsz from obindps/odefinps
|
||||
slari 04/07/95 - add opinit
|
||||
dchatter 03/08/95 - osetpi and ogetpi
|
||||
lchidamb 12/09/94 - add obindps() and odefinps()
|
||||
dchatter 03/06/95 - merge changes from branch 1.1.720.2
|
||||
dchatter 11/14/94 - merge changes from branch 1.1.720.1
|
||||
dchatter 02/08/95 - olog call; drop onblon
|
||||
dchatter 10/31/94 - new functions for non-blocking oci
|
||||
rkooi2 11/27/92 - Changing datatypes to agree with ocidef.h
|
||||
rkooi2 10/26/92 - More portability mods
|
||||
rkooi2 10/18/92 - Changed to agree with oci.c
|
||||
sjain 03/16/92 - Creation
|
||||
*/
|
||||
/*
|
||||
* Declare the OCI functions.
|
||||
* Prototype information is included.
|
||||
* Use this header for ANSI C compilers.
|
||||
*/
|
||||
|
||||
#ifndef OCIAPR
|
||||
#define OCIAPR
|
||||
|
||||
#ifndef ORATYPES
|
||||
#include <oratypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCIDFN
|
||||
#include <ocidfn.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Oci BIND (Piecewise or with Skips)
|
||||
*/
|
||||
sword obindps(struct cda_def *cursor, ub1 opcode, OraText *sqlvar,
|
||||
sb4 sqlvl, ub1 *pvctx, sb4 progvl,
|
||||
sword ftype, sword scale,
|
||||
sb2 *indp, ub2 *alen, ub2 *arcode,
|
||||
sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip,
|
||||
ub4 maxsiz, ub4 *cursiz,
|
||||
OraText *fmt, sb4 fmtl, sword fmtt);
|
||||
sword obreak(struct cda_def *lda);
|
||||
sword ocan (struct cda_def *cursor);
|
||||
sword oclose(struct cda_def *cursor);
|
||||
sword ocof (struct cda_def *lda);
|
||||
sword ocom (struct cda_def *lda);
|
||||
sword ocon (struct cda_def *lda);
|
||||
|
||||
|
||||
/*
|
||||
* Oci DEFINe (Piecewise or with Skips)
|
||||
*/
|
||||
sword odefinps(struct cda_def *cursor, ub1 opcode, sword pos,ub1 *bufctx,
|
||||
sb4 bufl, sword ftype, sword scale,
|
||||
sb2 *indp, OraText *fmt, sb4 fmtl, sword fmtt,
|
||||
ub2 *rlen, ub2 *rcode,
|
||||
sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip);
|
||||
sword odessp(struct cda_def *cursor, OraText *objnam, size_t onlen,
|
||||
ub1 *rsv1, size_t rsv1ln, ub1 *rsv2, size_t rsv2ln,
|
||||
ub2 *ovrld, ub2 *pos, ub2 *level, OraText **argnam,
|
||||
ub2 *arnlen, ub2 *dtype, ub1 *defsup, ub1* mode,
|
||||
ub4 *dtsiz, sb2 *prec, sb2 *scale, ub1 *radix,
|
||||
ub4 *spare, ub4 *arrsiz);
|
||||
sword odescr(struct cda_def *cursor, sword pos, sb4 *dbsize,
|
||||
sb2 *dbtype, sb1 *cbuf, sb4 *cbufl, sb4 *dsize,
|
||||
sb2 *prec, sb2 *scale, sb2 *nullok);
|
||||
sword oerhms (struct cda_def *lda, sb2 rcode, OraText *buf,
|
||||
sword bufsiz);
|
||||
sword oermsg (sb2 rcode, OraText *buf);
|
||||
sword oexec (struct cda_def *cursor);
|
||||
sword oexfet (struct cda_def *cursor, ub4 nrows,
|
||||
sword cancel, sword exact);
|
||||
sword oexn (struct cda_def *cursor, sword iters, sword rowoff);
|
||||
sword ofen (struct cda_def *cursor, sword nrows);
|
||||
sword ofetch (struct cda_def *cursor);
|
||||
sword oflng (struct cda_def *cursor, sword pos, ub1 *buf,
|
||||
sb4 bufl, sword dtype, ub4 *retl, sb4 offset);
|
||||
sword ogetpi (struct cda_def *cursor, ub1 *piecep, void **ctxpp,
|
||||
ub4 *iterp, ub4 *indexp);
|
||||
sword oopt (struct cda_def *cursor, sword rbopt, sword waitopt);
|
||||
sword opinit (ub4 mode);
|
||||
sword olog (struct cda_def *lda, ub1* hda,
|
||||
OraText *uid, sword uidl,
|
||||
OraText *pswd, sword pswdl,
|
||||
OraText *conn, sword connl,
|
||||
ub4 mode);
|
||||
sword ologof (struct cda_def *lda);
|
||||
sword oopen (struct cda_def *cursor, struct cda_def *lda,
|
||||
OraText *dbn, sword dbnl, sword arsize,
|
||||
OraText *uid, sword uidl);
|
||||
sword oparse (struct cda_def *cursor, OraText *sqlstm, sb4 sqllen,
|
||||
sword defflg, ub4 lngflg);
|
||||
sword orol (struct cda_def *lda);
|
||||
sword osetpi (struct cda_def *cursor, ub1 piece, void *bufp, ub4 *lenp);
|
||||
|
||||
void sqlld2 (struct cda_def *lda, OraText *cname, sb4 *cnlen);
|
||||
void sqllda (struct cda_def *lda);
|
||||
|
||||
/* non-blocking functions */
|
||||
sword onbset (struct cda_def *lda );
|
||||
sword onbtst (struct cda_def *lda );
|
||||
sword onbclr (struct cda_def *lda );
|
||||
sword ognfd (struct cda_def *lda, void *fdp);
|
||||
|
||||
|
||||
/*
|
||||
* OBSOLETE CALLS
|
||||
*/
|
||||
|
||||
/*
|
||||
* OBSOLETE BIND CALLS
|
||||
*/
|
||||
sword obndra(struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
sb2 *indp, ub2 *alen, ub2 *arcode, ub4 maxsiz,
|
||||
ub4 *cursiz, OraText *fmt, sword fmtl, sword fmtt);
|
||||
sword obndrn(struct cda_def *cursor, sword sqlvn, ub1 *progv,
|
||||
sword progvl, sword ftype, sword scale, sb2 *indp,
|
||||
OraText *fmt, sword fmtl, sword fmtt);
|
||||
sword obndrv(struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
sb2 *indp, OraText *fmt, sword fmtl, sword fmtt);
|
||||
|
||||
/*
|
||||
* OBSOLETE DEFINE CALLS
|
||||
*/
|
||||
sword odefin(struct cda_def *cursor, sword pos, ub1 *buf,
|
||||
sword bufl, sword ftype, sword scale, sb2 *indp,
|
||||
OraText *fmt, sword fmtl, sword fmtt, ub2 *rlen, ub2 *rcode);
|
||||
|
||||
/* older calls ; preferred equivalent calls above */
|
||||
|
||||
sword oname (struct cda_def *cursor, sword pos, sb1 *tbuf,
|
||||
sb2 *tbufl, sb1 *buf, sb2 *bufl);
|
||||
sword orlon (struct cda_def *lda, ub1 *hda,
|
||||
OraText *uid, sword uidl,
|
||||
OraText *pswd, sword pswdl,
|
||||
sword audit);
|
||||
sword olon (struct cda_def *lda, OraText *uid, sword uidl,
|
||||
OraText *pswd, sword pswdl, sword audit);
|
||||
sword osql3 (struct cda_def *cda, OraText *sqlstm, sword sqllen);
|
||||
sword odsc (struct cda_def *cursor, sword pos, sb2 *dbsize,
|
||||
sb2 *fsize, sb2 *rcode, sb2 *dtype, sb1 *buf,
|
||||
sb2 *bufl, sb2 *dsize);
|
||||
|
||||
#endif /* OCIAPR */
|
@ -0,0 +1,886 @@
|
||||
/* Copyright (c) 1981, 2005, Oracle. All rights reserved. */
|
||||
/* Copyright (c) 1984, 2005, Oracle. All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
ocidef
|
||||
CONTENTS
|
||||
Oracle Call Interface cursor area and LDA definitions
|
||||
NOTES
|
||||
none
|
||||
OWNER
|
||||
Oates
|
||||
DATE
|
||||
09/07/82
|
||||
MODIFIED
|
||||
mbastawa 09/16/05 - dbhygiene
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
srseshad 03/25/03 - convert oci public api to ansi
|
||||
csteinba 11/05/02 - bug 2521931: redefine OTYACL
|
||||
aahluwal 06/03/02 - bug 2360115
|
||||
bpalaval 02/08/01 - Change text to oratext.
|
||||
chliang 02/01/01 - fix olint error.
|
||||
bpalaval 11/16/00 - Bug 1244685 : Fix ALTER CLUSTER issue..
|
||||
slari 11/08/00 - remove functions duplicated in ociapr.h
|
||||
whe 09/01/99 - 976457:check __cplusplus for C++ code
|
||||
skmishra 04/23/97 - Provide C++ compatibility
|
||||
lchidamb 06/26/96 - put upidef.h, riddef.h within #ifndef
|
||||
slari 06/12/96 - add ocigft_getFcnType
|
||||
dchatter 11/10/95 - ocignfd - oci get native file descriptor
|
||||
slari 05/11/95 - change OCIEVDEF/OCIEVTSF to UPIEVDEF/UPIEVTSF
|
||||
dchatter 04/06/95 - add ifdef flags around OCI_flags
|
||||
lchidamb 04/06/95 - drop maxdsz from ocibndps/ocidfnps
|
||||
slari 04/07/95 - rename opinit to ocipin
|
||||
slari 03/13/95 - thread safety changes
|
||||
dchatter 03/08/95 - piece definitions OCI_*_PIECE
|
||||
lchidamb 12/06/94 - add support for binding/defining with skips
|
||||
dchatter 03/06/95 - merge changes from branch 1.12.720.1
|
||||
dchatter 02/06/95 - add defines for login mode parameters
|
||||
dchatter 07/06/94 - Deleting CRSCHK, with refcursor, no way to set this
|
||||
dchatter 06/13/94 - add a new LDA flag LDANBL
|
||||
rkooi 11/18/92 - update ocidpr interface
|
||||
mmoore 10/31/92 - add ocidpr
|
||||
gpongrac 11/17/92 - fix oexfet prototype
|
||||
sjain 01/03/92 - Add ocibra
|
||||
rjenkins 11/04/91 - adding prototypes for oparse and oexfet
|
||||
sjain 04/15/91 - Change ocistf proto
|
||||
sjain 04/01/91 - Rearrange oty codes. Add new ones
|
||||
Jain 12/03/90 - Add #define for new describe call
|
||||
Jain 11/29/90 - Add new function code for the new oci calls
|
||||
Mendels 01/20/89 - fix 19170: make ocitbl CONST_DATA
|
||||
Kabcene 01/27/88 - change interfaces to match V5
|
||||
Navab 12/09/87 - add a parameter to ocierr call
|
||||
Navab 11/30/87 - add ocierr, rename ocioer
|
||||
Navab 10/08/87 - add prototypes for procedure declarations
|
||||
Howard 09/07/87 - endif blah
|
||||
Howard 05/11/87 - Add OTY types
|
||||
Howard 04/27/87 - move ocldef defines here
|
||||
Oates 10/15/85 - Add OCANCEL
|
||||
Oates 09/30/85 - Implement ORA*Net
|
||||
Oates 06/27/85 - Make datatype compatible with upidef.h
|
||||
Andy 05/07/85 - delete CSRFBPIC
|
||||
*/
|
||||
|
||||
#ifndef UPIDEF
|
||||
#include <upidef.h>
|
||||
#endif
|
||||
|
||||
#ifndef RIDDEF
|
||||
#include <riddef.h>
|
||||
#endif
|
||||
|
||||
#include <ociapr.h>
|
||||
|
||||
#ifndef OCIDEF
|
||||
#define OCIDEF
|
||||
|
||||
|
||||
#define CSRCHECK 172 /* csrdef is a cursor */
|
||||
#define LDACHECK 202 /* csrdef is a login data area */
|
||||
struct csrdef
|
||||
{
|
||||
sb2 csrrc; /* return code: v2 codes, v4 codes negative */
|
||||
ub2 csrft; /* function type */
|
||||
ub4 csrrpc; /* rows processed count */
|
||||
ub2 csrpeo; /* parse error offset */
|
||||
ub1 csrfc; /* function code */
|
||||
ub1 csrlfl; /* lda flag to indicate type of login */
|
||||
ub2 csrarc; /* actual untranslated return code */
|
||||
ub1 csrwrn; /* warning flags */
|
||||
ub1 csrflg; /* error action */
|
||||
sword csrcn; /* cursor number */
|
||||
riddef csrrid; /* rowid structure */
|
||||
sword csrose; /* os dependent error code */
|
||||
ub1 csrchk; /* check byte = CSRCHECK - in cursor */
|
||||
/* check byte = LDACHECK - in LDA */
|
||||
struct hstdef *csrhst; /* pointer to the hst */
|
||||
};
|
||||
typedef struct csrdef csrdef;
|
||||
typedef struct csrdef ldadef; /* lda is the same as a csr */
|
||||
|
||||
|
||||
/* values for csrlfl */
|
||||
#define LDAFLG 1 /* ...via ologon */
|
||||
#define LDAFLO 2 /* ...via olon or orlon */
|
||||
#define LDANBL 3 /* ...nb logon in progress */
|
||||
|
||||
/* valuses for crsfc */
|
||||
#define csrfpa 2 /* ...OSQL */
|
||||
#define csrfex 4 /* ...OEXEC */
|
||||
#define csrfbi 6 /* ...OBIND */
|
||||
#define csrfdb 8 /* ...ODFINN */
|
||||
#define csrfdi 10 /* ...ODSRBN */
|
||||
#define csrffe 12 /* ...OFETCH */
|
||||
#define csrfop 14 /* ...OOPEN */
|
||||
#define csrfcl 16 /* ...OCLOSE */
|
||||
#define csrfds 22 /* ...ODSC */
|
||||
#define csrfnm 24 /* ...ONAME */
|
||||
#define csrfp3 26 /* ...OSQL3 */
|
||||
#define csrfbr 28 /* ...OBNDRV */
|
||||
#define csrfbx 30 /* ...OBNDRN */
|
||||
/*#defe csrfdf 32*/ /* ???? */
|
||||
#define csrfso 34 /* ...OOPT */
|
||||
#define csrfre 36 /* ...ORESUM */
|
||||
#define csrfbn 50 /* ...OBINDN */
|
||||
#define csrfca 52 /* ..OCANCEL */
|
||||
#define csrfsd 54 /* ..OSQLD */
|
||||
#define csrfef 56 /* ..OEXFEN */
|
||||
#define csrfln 58 /* ..OFLNG */
|
||||
#define csrfdp 60 /* ..ODSCSP */
|
||||
#define csrfba 62 /* ..OBNDRA */
|
||||
#define csrfbps 63 /*..OBINDPS */
|
||||
#define csrfdps 64 /*..ODEFINPS */
|
||||
#define csrfgpi 65 /* ...OGETPI */
|
||||
#define csrfspi 66 /* ...OSETPI */
|
||||
|
||||
/* values for csrwrn */
|
||||
#define CSRWANY 0x01 /* there is a warning flag set */
|
||||
#define CSRWTRUN 0x02 /* a data item was truncated */
|
||||
#define CSRWNVIC 0x04 /* NULL values were used in an aggregate function */
|
||||
#define CSRWITCE 0x08 /* column count not equal to into list count */
|
||||
#define CSRWUDNW 0x10 /* update or delete without where clause */
|
||||
#define CSRWRSV0 0x20
|
||||
#define CSRWROLL 0x40 /* rollback required */
|
||||
#define CSRWRCHG 0x80 /* change after query start on select for update */
|
||||
|
||||
/* values fro csrflg */
|
||||
#define CSRFSPND 0x01 /* current operation suspended */
|
||||
#define CSRFATAL 0x02 /* fatal operation: transaction rolled back */
|
||||
#define CSRFBROW 0x04 /* current row backed out */
|
||||
#define CSRFREFC 0x08 /* ref cursor type CRSCHK disabled for this cursor */
|
||||
#define CSRFNOAR 0x10 /* ref cursor type binds, so no array bind/execute */
|
||||
|
||||
/* define function codes; in order of octdef.h */
|
||||
#define OTYCTB 1 /* CREATE TABLE */
|
||||
#define OTYSER 2 /* set role */
|
||||
#define OTYINS 3 /* INSERT */
|
||||
#define OTYSEL 4 /* SELECT */
|
||||
#define OTYUPD 5 /* UPDATE */
|
||||
#define OTYDRO 6 /* drop role */
|
||||
#define OTYDVW 7 /* DROP VIEW */
|
||||
/* once was validate index */
|
||||
/* once was create partition */
|
||||
/* once was alter partition */
|
||||
#define OTYDTB 8 /* DROP TABLE */
|
||||
/* once was alter space */
|
||||
/* once was drop space */
|
||||
#define OTYDEL 9 /* DELETE */
|
||||
#define OTYCVW 10 /* create view */
|
||||
#define OTYDUS 11 /* drop user */
|
||||
#define OTYCRO 12 /* create role */
|
||||
#define OTYCSQ 13 /* create sequence */
|
||||
#define OTYASQ 14 /* alter sequence */
|
||||
#define OTYACL 15 /* alter cluster */
|
||||
#define OTYDSQ 16 /* drop sequence */
|
||||
#define OTYCSC 17 /* create schema */
|
||||
#define OTYCCL 18 /* CREATE CLUSTER */
|
||||
/* once was alter cluster */
|
||||
#define OTYCUS 19 /* create user */
|
||||
#define OTYCIX 20 /* CREATE INDEX */
|
||||
#define OTYDIX 21 /* DROP INDEX */
|
||||
#define OTYDCL 22 /* DROP CLUSTER */
|
||||
#define OTYVIX 23 /* validate index */
|
||||
#define OTYCPR 24 /* create procedure */
|
||||
#define OTYAPR 25 /* alter procedure */
|
||||
#define OTYATB 26 /* alter table */
|
||||
/* once was evaluate */
|
||||
#define OTYXPL 27 /* explain */
|
||||
#define OTYGRA 28 /* grant */
|
||||
#define OTYREV 29 /* revoke */
|
||||
#define OTYCSY 30 /* create synonym */
|
||||
#define OTYDSY 31 /* drop synonym */
|
||||
#define OTYASY 32 /* alter system switch log */
|
||||
#define OTYSET 33 /* set transaction */
|
||||
#define OTYPLS 34 /* pl/sql execute */
|
||||
#define OTYLTB 35 /* lock */
|
||||
#define OTYNOP 36 /* noop */
|
||||
#define OTYRNM 37 /* rename */
|
||||
#define OTYCMT 38 /* comment */
|
||||
#define OTYAUD 39 /* audit */
|
||||
#define OTYNOA 40 /* no audit */
|
||||
#define OTYAIX 41 /* ALTER INDEX */
|
||||
#define OTYCED 42 /* create external database */
|
||||
#define OTYDED 43 /* drop external database */
|
||||
#define OTYCDB 44 /* create database */
|
||||
#define OTYADB 45 /* alter database */
|
||||
#define OTYCRS 46 /* create rollback segment */
|
||||
#define OTYARS 47 /* alter rollback segment */
|
||||
#define OTYDRS 48 /* drop rollback segment */
|
||||
#define OTYCTS 49 /* create tablespace */
|
||||
#define OTYATS 50 /* alter tablespace */
|
||||
#define OTYDTS 51 /* drop tablespace */
|
||||
#define OTYASE 52 /* alter session */
|
||||
#define OTYAUR 53 /* alter user */
|
||||
#define OTYCWK 54 /* commit (work) */
|
||||
#define OTYROL 55 /* rollback */
|
||||
#define OTYSPT 56 /* savepoint */
|
||||
|
||||
/* For number greater than 56 the the type is the same as defined in
|
||||
** octdef.h for that number. So for completion look at octdef.h
|
||||
*/
|
||||
|
||||
#define OTYDEV OTYCVW /* old DEFINE VIEW = create view */
|
||||
|
||||
/* FUNCTION CODES */
|
||||
#define OCLFPA 2 /* parse - OSQL */
|
||||
#define OCLFEX 4 /* execute - OEXEC */
|
||||
#define OCLFBI 6 /* BIND by name - OBIND */
|
||||
#define OCLFDB 8 /* define buffer - ODEFIN */
|
||||
#define OCLFDI 10 /* describe item - ODSC */
|
||||
#define OCLFFE 12 /* fetch - OFETCH */
|
||||
#define OCLFOC 14 /* open cursor - OOPEN */
|
||||
# define OCLFLI OCLFOC /* old name for open cursor - OOPEN */
|
||||
#define OCLFCC 16 /* close cursor - OCLOSE */
|
||||
# define OCLFLO OCLFCC /* old name for close cursor - OCLOSE */
|
||||
#define OCLFDS 22 /* describe - ODSC */
|
||||
#define OCLFON 24 /* get table and column names - ONAME */
|
||||
#define OCLFP3 26 /* parse - OSQL3 */
|
||||
#define OCLFBR 28 /* bind reference by name - OBNDRV */
|
||||
#define OCLFBX 30 /* bind referecne numeric - OBNDRN */
|
||||
#define OCLFSO 34 /* special function - OOPT */
|
||||
#define OCLFRE 36 /* resume - ORESUM */
|
||||
#define OCLFBN 50 /* bindn */
|
||||
#define OCLFMX 52 /* maximum function number */
|
||||
|
||||
#ifdef NEVER /* unused codes */
|
||||
# define OCLFLK 18 /* open for kernel operations */
|
||||
# define OCLFEK 20 /* execute kernel operations */
|
||||
# define OCLFOK 22 /* kernel close */
|
||||
# define OCLFIN 28 /* logon to oracle */
|
||||
# define OCLFOF 30 /* logoff from oracle */
|
||||
# define OCLFAX 32 /* allocate a context area */
|
||||
# define OCLFPI 34 /* page in context area */
|
||||
# define OCLFIS 36 /* special system logon */
|
||||
# define OCLFCO 38 /* cancel the current operation */
|
||||
# define OCLFGI 40 /* get database id */
|
||||
# define OCLFJN 42 /* journal operation */
|
||||
# define OCLFCL 44 /* cleanup prior execute operation */
|
||||
# define OCLFMC 46 /* map a cursor area */
|
||||
# define OCLFUC 48 /* unmap cursor and restore user maping */
|
||||
#endif /*NEVER *//* obsolete codes */
|
||||
|
||||
|
||||
/* values for ocimode in ocipin call */
|
||||
|
||||
#define OCIEVDEF UPIEVDEF /* default : non-thread safe enivronment */
|
||||
#define OCIEVTSF UPIEVTSF /* thread-safe environment */
|
||||
|
||||
|
||||
/* OCIL* flags used to determine the mode of login, using ocilog().
|
||||
** Currently defined only for non-blocking and thread-safe logins.
|
||||
*/
|
||||
|
||||
#define OCILMDEF UPILMDEF /* default, regular login */
|
||||
#define OCILMNBL UPILMNBL /* non-blocking logon */
|
||||
#define OCILMESY UPILMESY /* thread safe but external sync */
|
||||
#define OCILMISY UPILMISY /* internal sync, we do it */
|
||||
#define OCILMTRY UPILMTRY /* try to, but do not block on mutex */
|
||||
|
||||
|
||||
/*
|
||||
* since sqllib uses both ocidef and ocidfn the following defines
|
||||
* need to be guarded
|
||||
*/
|
||||
#ifndef OCI_FLAGS
|
||||
#define OCI_FLAGS
|
||||
|
||||
/* OCI_*_PIECE defines the piece types that are returned or set
|
||||
*/
|
||||
|
||||
#define OCI_ONE_PIECE UPI_ONE_PIECE /* there or this is the only piece */
|
||||
#define OCI_FIRST_PIECE UPI_FIRST_PIECE /* the first of many pieces */
|
||||
#define OCI_NEXT_PIECE UPI_NEXT_PIECE /* the next of many pieces */
|
||||
#define OCI_LAST_PIECE UPI_LAST_PIECE /* the last piece of this column */
|
||||
#endif
|
||||
|
||||
/*
|
||||
** OCITAB: define return code pairs for version 2 to 3 conversions
|
||||
*/
|
||||
struct ocitab
|
||||
{
|
||||
sb2 ocitv3; /* Version 3/4 return code */
|
||||
sb2 ocitv2; /* Version 2 equivalent return code */
|
||||
};
|
||||
typedef struct ocitab ocitab;
|
||||
|
||||
externref const ocitab ocitbl[];
|
||||
|
||||
/* macros to check cursors and LDA's. */
|
||||
/* macros to set error codes */
|
||||
|
||||
# define CRSCHK(c) if ((c->csrchk != CSRCHECK)\
|
||||
&& !bit(c->csrflg, CSRFREFC))\
|
||||
return(ocir32(c, OER(1001)))
|
||||
# define ldaerr(l, e) ( l->csrrc = (sb2)(-( l->csrarc = (ub2)(e)) ) )
|
||||
# define LDACHK(l) if (l->csrchk != LDACHECK) \
|
||||
return(ldaerr(l, OER(1001)))
|
||||
|
||||
|
||||
/************************************************/
|
||||
/* OCI PROCEDURE DECLARATIONS */
|
||||
/************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
/*****************************/
|
||||
/* Database logon/logout */
|
||||
/*****************************/
|
||||
sword ocilog( ldadef *lda, struct hstdef *hst, oratext *uid, sword uidl,
|
||||
oratext *psw, sword pswl, oratext* conn, sword connl,
|
||||
ub4 mode );
|
||||
sword ocilon( ldadef *lda, oratext *uid, sword uidl, oratext *psw,
|
||||
sword pswl, sword audit );
|
||||
sword ocilgi( ldadef *lda, sb2 areacount );
|
||||
sword ocirlo( ldadef *lda, struct hstdef *hst, oratext *uid, sword uidl,
|
||||
oratext *psw, sword pswl, sword audit );
|
||||
/* ocilon - logon to oracle
|
||||
** ocilgi - version 2 compatible ORACLE logon call.
|
||||
** no login to ORACLE is performed: the LDA is initialized
|
||||
** ocirlo - version 5 compatible ORACLE Remote Login call,
|
||||
** oracle login is executed.
|
||||
** lda - pointer to ldadef
|
||||
** uid - user id [USER[/PASSWORD]]
|
||||
** uidl - length of uid, if -1 strlen(uid) is used
|
||||
** psw - password string; ignored if specified in uid
|
||||
** pswl - length of psw, if -1 strlen(psw) is used
|
||||
** audit - is not supported; the only permissible value is 0
|
||||
** areacount - unused
|
||||
*/
|
||||
|
||||
sword ocilof( ldadef *lda );
|
||||
/*
|
||||
** ocilof - disconnect from ORACLE
|
||||
** lda - pointer to ldadef
|
||||
*/
|
||||
|
||||
|
||||
/*********************/
|
||||
/* Error Messages */
|
||||
/*********************/
|
||||
sword ocierr( ldadef *lda, sb2 rcode, oratext *buffer, sword bufl );
|
||||
sword ocidhe( sb2 rcode, oratext *buffer );
|
||||
/*
|
||||
** Move the text explanation for an ORACLE error to a user defined buffer
|
||||
** ocierr - will return the message associated with the hstdef stored
|
||||
** in the lda.
|
||||
** ocidhe - will return the message associated with the default host.
|
||||
** lda - lda associated with the login session
|
||||
** rcode - error code as returned by V3 call interface
|
||||
** buffer - address of a user buffer of at least 132 characters
|
||||
*/
|
||||
|
||||
|
||||
/***********************/
|
||||
/* Cursor Open/Close */
|
||||
/***********************/
|
||||
sword ociope( struct csrdef *cursor, ldadef *lda, oratext *dbn, sword dbnl,
|
||||
sword areasize, oratext *uid, sword uidl );
|
||||
|
||||
sword ociclo( struct csrdef *cursor );
|
||||
/*
|
||||
** open or close a cursor.
|
||||
** cursor - pointer to csrdef
|
||||
** ldadef - pointer to ldadef
|
||||
** dbn - unused
|
||||
** dbnl - unused
|
||||
** areasize - if (areasize == -1) areasize <- system default initial size
|
||||
** else if (areasize IN [1..256]) areasize <- areasize * 1024;
|
||||
** most applications should use the default size since context
|
||||
** areas are extended as needed until memory is exhausted.
|
||||
** uid - user id
|
||||
** uidl - userid length
|
||||
*/
|
||||
|
||||
/***********************************/
|
||||
/* CONTROL AND OPTIONS */
|
||||
/***********************************/
|
||||
sword ocibre( ldadef *lda );
|
||||
/*
|
||||
** ocibrk - Oracle Call Interface send BReaK Sends a break to
|
||||
** oracle. If oracle is active, the current operation is
|
||||
** cancelled. May be called asynchronously. DOES NOT SET
|
||||
** OERRCD in the hst. This is because ocibrk may be called
|
||||
** asynchronously. Callers must test the return code.
|
||||
** lda - pointer to a ldadef
|
||||
*/
|
||||
|
||||
sword ocican( struct csrdef *cursor );
|
||||
/*
|
||||
** cancel the operation on the cursor, no additional OFETCH calls
|
||||
** will be issued for the existing cursor without an intervening
|
||||
** OEXEC call.
|
||||
** cursor - pointer to csrdef
|
||||
*/
|
||||
|
||||
sword ocisfe( struct csrdef *cursor, sword erropt, sword waitopt );
|
||||
/*
|
||||
** ocisfe - user interface set error options
|
||||
** set the error and cursor options.
|
||||
** allows user to set the options for dealing with fatal dml errors
|
||||
** and other cursor related options
|
||||
** see oerdef for valid settings
|
||||
** cursor - pointer to csrdef
|
||||
** erropt - error optionsn
|
||||
** waitopr - wait options
|
||||
*/
|
||||
|
||||
|
||||
/***************************************/
|
||||
/* COMMIT/ROLLBACK/AUTOCOMMIT */
|
||||
/***************************************/
|
||||
sword ocicom( ldadef *lda );
|
||||
sword ocirol( ldadef *lda );
|
||||
/*
|
||||
** ocicom - commit the current transaction
|
||||
** ocirol - roll back the current transaction
|
||||
*/
|
||||
|
||||
sword ocicon( ldadef *lda );
|
||||
sword ocicof( ldadef *lda );
|
||||
/*
|
||||
** ocicon - auto Commit ON
|
||||
** ocicof - auto Commit OFf
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/************************/
|
||||
/* parsing */
|
||||
/************************/
|
||||
sword ocisq3(struct csrdef *cursor, oratext * /* sqlstm */, sword sqllen);
|
||||
/*
|
||||
** ocisq3 - user interface parse sql statement
|
||||
** cursor - pointer to csrdef
|
||||
** sqlstm - pointer to SQL statement
|
||||
** sqllen - length of SQL statement. if -1, strlen(sqlstm) is used
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/***************************/
|
||||
/* BINDING */
|
||||
/***************************/
|
||||
/* these are for the opcode in ocibndps, ocidfnps */
|
||||
#define OCI_PCWS 0
|
||||
#define OCI_SKIP 1
|
||||
|
||||
sword ocibin( struct csrdef *cursor, oratext *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
oratext *fmt, sword fmtl, sword fmtt );
|
||||
sword ocibrv( struct csrdef *cursor, oratext *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale, sb2 *indp,
|
||||
oratext *fmt, sword fmtl, sword fmtt );
|
||||
sword ocibra( struct csrdef *cursor, oratext *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
sb2 *indp, ub2 *aln, ub2 *rcp, ub4 mal, ub4 *cal,
|
||||
oratext *fmt, sword fmtl, sword fmtt );
|
||||
sword ocibndps( struct csrdef *cursor, ub1 opcode, oratext *sqlvar,
|
||||
sb4 sqlvl, ub1 *progv, sb4 progvl, sword ftype,
|
||||
sword scale, sb2 *indp, ub2 *aln, ub2 *rcp, sb4 pv_skip,
|
||||
sb4 ind_skip, sb4 len_skip, sb4 rc_skip, ub4 mal,
|
||||
ub4 *cal, oratext *fmt, sb4 fmtl, sword fmtt );
|
||||
sword ocibnn ( struct csrdef *cursor, ub2 sqlvn, ub1 *progv, sword progvl,
|
||||
sword ftype, sword scale, oratext *fmt, sword fmtl,
|
||||
sword fmtt );
|
||||
sword ocibrn( struct csrdef *cursor, sword sqlvn, ub1 *progv, sword progvl,
|
||||
sword ftype, sword scale, sb2 *indp, oratext *fmt, sword fmtl,
|
||||
sword fmtt );
|
||||
/*
|
||||
** ocibin - bind by value by name
|
||||
** ocibrv - bind by reference by name
|
||||
** ocibra - bind by reference by name (array)
|
||||
** ocibndps - bind by reference by name (array) piecewise or with skips
|
||||
** ocibnn - bind by value numeric
|
||||
** ocibrn - bind by reference numeric
|
||||
**
|
||||
** the contents of storage specified in bind-by-value calls are
|
||||
** evaluated immediately.
|
||||
** the addresses of storage specified in bind-by-reference calls are
|
||||
** remembered, and the contents are examined at every execute.
|
||||
**
|
||||
** cursor - pointer to csrdef
|
||||
** sqlvn - the number represented by the name of the bind variables
|
||||
** for variables of the form :n or &n for n in [1..256)
|
||||
** (i.e. &1, :234). unnecessarily using larger numbers
|
||||
** in the range wastes space.
|
||||
** sqlvar - the name of the bind variable (:name or &name)
|
||||
** sqlval - the length of the name;
|
||||
** in bindif -1, strlen(bvname) is used
|
||||
** progv - pointer to the object to bind.
|
||||
** progvl - length of object to bind.
|
||||
** in bind-by-value if specified as -1 then strlen(bfa) is
|
||||
** used (really only makes sends with character types)
|
||||
** in bind-by-value, if specified as -1 then UB2MAXVAL
|
||||
** is used. Again this really makes sense only with
|
||||
** SQLT_STR.
|
||||
** ftype - datatype of object
|
||||
** indp - pointer to indicator variable.
|
||||
** -1 means to ignore bfa/bfl and bind NULL;
|
||||
** not -1 means to bind the contents of bfa/bfl
|
||||
** bind the contents pointed to by bfa
|
||||
** aln - Alternate length pointer
|
||||
** rcp - Return code pointer
|
||||
** mal - Maximum array length
|
||||
** cal - Current array length pointer
|
||||
** fmt - format string
|
||||
** fmtl - length of format string; if -1, strlen(fmt) is used
|
||||
** fmtt - desired output type after applying forat mask. Not
|
||||
** really yet implemented
|
||||
** scale - number of decimal digits in a cobol packed decimal (type 7)
|
||||
**
|
||||
** Note that the length of bfa when bound as SQLT_STR is reduced
|
||||
** to strlen(bfa).
|
||||
** Note that trailing blanks are stripped of storage of SQLT_STR.
|
||||
*/
|
||||
|
||||
/***************************/
|
||||
/* DESCRIBING */
|
||||
/***************************/
|
||||
sword ocidsc ( struct csrdef *cursor, sword pos, sb2 *dbsize, sb2 *fsize,
|
||||
sb2 *rcode, sb2 *dtype, sb1 *buf, sb2 *bufl, sb2 *dsize );
|
||||
sword ocidsr( struct csrdef *cursor, sword pos, sb2 *dbsize, sb2 *dtype,
|
||||
sb2 *fsize );
|
||||
sword ocinam( struct csrdef *cursor, sword pos, sb1 *tbuf, sb2 *tbufl,
|
||||
sb1 *buf, sb2 *bufl );
|
||||
/*
|
||||
** ocidsc, ocidsr: Obtain information about a column
|
||||
** ocinam : get the name of a column
|
||||
** cursor - pointer to csrdef
|
||||
** pos - position in select list from [1..N]
|
||||
** dbsize - place to store the database size
|
||||
** fsize - place to store the fetched size
|
||||
** rcode - place to store the fetched column returned code
|
||||
** dtype - place to store the data type
|
||||
** buf - array to store the column name
|
||||
** bufl - place to store the column name length
|
||||
** dsize - maximum display size
|
||||
** tbuf - place to store the table name
|
||||
** tbufl - place to store the table name length
|
||||
*/
|
||||
|
||||
sword ocidsp ( struct csrdef *cursor, sword pos, sb4 *dbsize, sb2 *dbtype,
|
||||
sb1 *cbuf, sb4 *cbufl, sb4 *dsize, sb2 *pre, sb2 *scl,
|
||||
sb2 *nul );
|
||||
|
||||
sword ocidpr( ldadef *lda, oratext *object_name, size_t object_length,
|
||||
void * reserved1, size_t reserved1_length, void * reserved2,
|
||||
size_t reserved2_length, ub2 *overload, ub2 *position,
|
||||
ub2 *level, oratext **argument_name, ub2 *argument_length,
|
||||
ub2 *datatype, ub1 *default_supplied, ub1 *in_out,
|
||||
ub4 *length, sb2 *precision, sb2 *scale, ub1 *radix,
|
||||
ub4 *spare, ub4 *total_elements );
|
||||
/*
|
||||
** OCIDPR - User Program Interface: Describe Stored Procedure
|
||||
**
|
||||
** This routine is used to obtain information about the calling
|
||||
** arguments of a stored procedure. The client provides the
|
||||
** name of the procedure using "object_name" and "database_name"
|
||||
** (database name is optional). The client also supplies the
|
||||
** arrays for OCIDPR to return the values and indicates the
|
||||
** length of array via the "total_elements" parameter. Upon return
|
||||
** the number of elements used in the arrays is returned in the
|
||||
** "total_elements" parameter. If the array is too small then
|
||||
** an error will be returned and the contents of the return arrays
|
||||
** are invalid.
|
||||
**
|
||||
**
|
||||
** EXAMPLE :
|
||||
**
|
||||
** Client provides -
|
||||
**
|
||||
** object_name - SCOTT.ACCOUNT_UPDATE@BOSTON
|
||||
** total_elements - 100
|
||||
**
|
||||
**
|
||||
** ACCOUNT_UPDATE is an overloaded function with specification :
|
||||
**
|
||||
** type number_table is table of number index by binary_integer;
|
||||
** table account (account_no number, person_id number,
|
||||
** balance number(7,2))
|
||||
** table person (person_id number(4), person_nm varchar2(10))
|
||||
**
|
||||
** function ACCOUNT_UPDATE (account number,
|
||||
** person person%rowtype, amounts number_table,
|
||||
** trans_date date) return accounts.balance%type;
|
||||
**
|
||||
** function ACCOUNT_UPDATE (account number,
|
||||
** person person%rowtype, amounts number_table,
|
||||
** trans_no number) return accounts.balance%type;
|
||||
**
|
||||
**
|
||||
** Values returned -
|
||||
**
|
||||
** overload position argument level datatype length prec scale rad
|
||||
** -------------------------------------------------------------------
|
||||
** 0 0 0 NUMBER 22 7 2 10
|
||||
** 0 1 ACCOUNT 0 NUMBER 22 0 0 0
|
||||
** 0 2 PERSON 0 RECORD 0 0 0 0
|
||||
** 0 2 PERSON_ID 1 NUMBER 22 4 0 10
|
||||
** 0 2 PERSON_NM 1 VARCHAR2 10 0 0 0
|
||||
** 0 3 AMOUNTS 0 TABLE 0 0 0 0
|
||||
** 0 3 1 NUMBER 22 0 0 0
|
||||
** 0 4 TRANS_NO 0 NUMBER 22 0 0 0
|
||||
**
|
||||
** 1 0 0 NUMBER 22 7 2 10
|
||||
** 1 1 ACCOUNT 0 NUMBER 22 0 0 0
|
||||
** 1 2 PERSON 0 RECORD 0 0 0 0
|
||||
** 1 2 PERSON_ID 1 NUMBER 22 4 0 10
|
||||
** 1 2 PERSON_NM 1 VARCHAR2 10 0 0 0
|
||||
** 1 3 AMOUNTS 0 TABLE 0 0 0 0
|
||||
** 1 3 1 NUMBER 22 0 0 0
|
||||
** 1 4 TRANS_DATE 0 NUMBER 22 0 0 0
|
||||
**
|
||||
**
|
||||
** OCIDPR Argument Descriptions -
|
||||
**
|
||||
** ldadef - pointer to ldadef
|
||||
** object_name - object name, synonyms are also accepted and will
|
||||
** be translate, currently only procedure and function
|
||||
** names are accepted, also NLS names are accepted.
|
||||
** Currently, the accepted format of a name is
|
||||
** [[part1.]part2.]part3[@dblink] (required)
|
||||
** object_length - object name length (required)
|
||||
** reserved1 - reserved for future use
|
||||
** reserved1_length - reserved for future use
|
||||
** reserved2 - reserved for future use
|
||||
** reserved2_length - reserved for future use
|
||||
** overload - array indicating overloaded procedure # (returned)
|
||||
** position - array of argument positions, position 0 is a
|
||||
** function return argument (returned)
|
||||
** level - array of argument type levels, used to describe
|
||||
** sub-datatypes of data structures like records
|
||||
** and arrays (returned)
|
||||
** argument_name - array of argument names, only returns first
|
||||
** 30 characters of argument names, note storage
|
||||
** for 30 characters is allocated by client (returned)
|
||||
** argument_length - array of argument name lengths (returned)
|
||||
** datatype - array of oracle datatypes (returned)
|
||||
** default_supplied - array indicating parameter has default (returned)
|
||||
** 0 = no default, 1 = default supplied
|
||||
** in_out - array indicating if argument is IN or OUT (returned
|
||||
** 0 = IN param, 1 = OUT param, 2 = IN/OUT param
|
||||
** length - array of argument lengths (returned)
|
||||
** precision - array of precisions (if number type)(returned)
|
||||
** scale - array of scales (if number type)(returned)
|
||||
** radix - array of radix (if number type)(returned)
|
||||
** spare - array of spares.
|
||||
** total_elements - size of arrays supplied by client (required),
|
||||
** total number of elements filled (returned)
|
||||
*/
|
||||
|
||||
/*************************************/
|
||||
/* DEFINING */
|
||||
/*************************************/
|
||||
sword ocidfi( struct csrdef *cursor, sword pos, ub1 *buf, sword bufl,
|
||||
sword ftype, sb2 *rc, sword scale );
|
||||
sword ocidfn( struct csrdef *cursor, sword pos, ub1 *buf, sword bufl,
|
||||
sword ftype, sword scale, sb2 *indp, oratext *fmt, sword fmtl,
|
||||
sword fmtt, ub2 *rl, ub2 *rc );
|
||||
sword ocidfnps( struct csrdef *cursor, ub1 opcode, sword pos, ub1 *buf,
|
||||
sb4 bufl, sword ftype, sword scale,
|
||||
sb2 *indp, oratext *fmt, sb4 fmtl,
|
||||
sword fmtt, ub2 *rl, ub2 *rc,
|
||||
sb4 pv_skip, sb4 ind_skip, sb4 len_skip,
|
||||
sb4 rc_skip );
|
||||
|
||||
|
||||
/* Define a user data buffer using upidfn
|
||||
** cursor - pointer to csrdef
|
||||
** pos - position of a field or exp in the select list of a query
|
||||
** bfa/bfl - address and length of client-supplied storage
|
||||
to receive data
|
||||
** ftype - user datatype
|
||||
** scale - number of fractional digits for cobol packed decimals
|
||||
** indp - place to store the length of the returned value. If returned
|
||||
** value is:
|
||||
** negative, the field fetched was NULL
|
||||
** zero , the field fetched was same length or shorter than
|
||||
** the buffer provided
|
||||
** positive, the field fetched was truncated
|
||||
** fmt - format string
|
||||
** fmtl - length of format string, if -1 strlent(fmt) used
|
||||
** rl - place to store column length after each fetch
|
||||
** rc - place to store column error code after each fetch
|
||||
** fmtt - fomat type
|
||||
*/
|
||||
|
||||
/********************************/
|
||||
/* PIECE INFORMATION GET/SET */
|
||||
/********************************/
|
||||
sword ocigetpi( struct csrdef *cursor, ub1 *piecep,
|
||||
void **ctxpp, ub4 *iterp, ub4 *indexp );
|
||||
sword ocisetpi( struct csrdef *cursor, ub1 piece,
|
||||
void *bufp, ub4 *lenp );
|
||||
|
||||
|
||||
/********************************/
|
||||
/* EXECUTE */
|
||||
/********************************/
|
||||
sword ociexe( struct csrdef *cursor );
|
||||
sword ociexn( struct csrdef *cursor, sword iters, sword roff );
|
||||
sword ociefn( struct csrdef *cursor, ub4 nrows, sword can, sword exact );
|
||||
/*
|
||||
** ociexe - execute a cursor
|
||||
** ociexn - execute a cursosr N times
|
||||
** cursor - pointer to a csrdef
|
||||
** iters - number of times to execute cursor
|
||||
** roff - offset within the bind variable array at which to begin
|
||||
** operations.
|
||||
*/
|
||||
|
||||
|
||||
/*********************************/
|
||||
/* FETCHING */
|
||||
/*********************************/
|
||||
sword ocifet( struct csrdef *cursor );
|
||||
sword ocifen( struct csrdef *cursor, sword nrows );
|
||||
/* ocifet - fetch the next row
|
||||
** ocifen - fetch n rows
|
||||
** cursor - pointer to csrdef
|
||||
** nrows - number of rows to be fetched
|
||||
*/
|
||||
|
||||
sword ocilng( struct csrdef *cursor, sword posit, ub1 *bfa, sb4 bfl,
|
||||
sword dty, ub4 *rln, sb4 off );
|
||||
|
||||
/*********************************/
|
||||
/* CONVERSION */
|
||||
/*********************************/
|
||||
sword ocic32( struct csrdef *cursor );
|
||||
/*
|
||||
** Convert selected version 3 return codes to the equivalent
|
||||
** version 2 code.
|
||||
** csrdef->csrrc is set to the converted code
|
||||
** csrdef->csrft is set to v2 oracle statment type
|
||||
** csrdef->csrrpc is set to the rows processed count
|
||||
** csrdef->csrpeo is set to error postion
|
||||
**
|
||||
** cursor - pointer to csrdef
|
||||
*/
|
||||
|
||||
|
||||
sword ocir32( struct csrdef *cursor, sword retcode );
|
||||
/*
|
||||
** Convert selected version 3 return codes to the equivalent version 2
|
||||
** code.
|
||||
**
|
||||
** cursor - pointer to csrdef
|
||||
** retcode - place to store the return code
|
||||
*/
|
||||
|
||||
|
||||
void ociscn( sword **arglst, char *mask_addr, sword **newlst );
|
||||
/*
|
||||
** Convert call-by-ref to call-by-value:
|
||||
** takes an arg list and a mask address, determines which args need
|
||||
** conversion to a value, and creates a new list begging at the address
|
||||
** of newlst.
|
||||
**
|
||||
** arglst - list of arguments
|
||||
** mast_addr _ mask address determines args needing conversion
|
||||
** newlst - new list of args
|
||||
*/
|
||||
|
||||
sword ocistf ( sword typ, sword bufl, sword rdig, oratext *fmt,
|
||||
struct csrdef *cursor, sword *err );
|
||||
/* Convert a packed decimal buffer length (bytes) and scale to a format
|
||||
** string of the form mm.+/-nn, where mm is the number of packed
|
||||
** decimal digits, and nn is the scaling factor. A positive scale name
|
||||
** nn digits to the rights of the decimal; a negative scale means nn zeros
|
||||
** should be supplied to the left of the decimal.
|
||||
** bufl - length of the packed decimal buffer
|
||||
** rdig - number of fractional digits
|
||||
** fmt - pointer to a string holding the conversion format
|
||||
** cursor - pointer to csrdef
|
||||
** err - pointer to word storing error code
|
||||
*/
|
||||
|
||||
|
||||
/******************************************/
|
||||
/* Non-blocking operations */
|
||||
/******************************************/
|
||||
sword ocinbs( ldadef *lda ); /* set a connection to non-blocking */
|
||||
sword ocinbt( ldadef *lda ); /* test if connection is non-blocking */
|
||||
sword ocinbc( ldadef *lda ); /* clear a connection to blocking */
|
||||
sword ocinlo( ldadef *lda, struct hstdef *hst, oratext *conn,
|
||||
sword connl, oratext *uid, sword uidl,
|
||||
oratext *psw, sword pswl, sword audit );
|
||||
/* logon in non-blocking fashion */
|
||||
/* ocinlo allows an application to logon in non-blocking fashion.
|
||||
** lda - pointer to ldadef
|
||||
** hst - pointer to a 256 byte area, must be cleared to zero before call
|
||||
** conn - the database link (if specified @LINK in uid will be ignored)
|
||||
** connl - length of conn; if -1 strlen(conn) is used
|
||||
** uid - user id [USER[/PASSWORD][@LINK]]
|
||||
** uidl - length of uid, if -1 strlen(uid) is used
|
||||
** psw - password string; ignored if specified in uid
|
||||
** pswl - length of psw, if -1 strlen(psw) is used
|
||||
** audit - is not supported; the only permissible value is 0
|
||||
*/
|
||||
|
||||
/***************************************************/
|
||||
/* Procedure Declaration for Pro*C */
|
||||
/***************************************************/
|
||||
/* Note: The following routines are used in Pro*C and have the
|
||||
same interface as their couterpart in OCI.
|
||||
Althought the interface follows for more details please refer
|
||||
to the above routines */
|
||||
|
||||
/******************************************/
|
||||
/* initialization/logon/logof */
|
||||
/******************************************/
|
||||
sword ocipin( ub4 mode );
|
||||
|
||||
sword ologin( ldadef *lda, sb2 areacount );
|
||||
sword ologon( ldadef *lda, sb2 areacount );
|
||||
|
||||
/*****************************************/
|
||||
/* Open/Close/Parse Cursor */
|
||||
/*****************************************/
|
||||
|
||||
/*
|
||||
** ocisqd - oci delayed parse (Should be used only with deferred upi/oci)
|
||||
** FUNCTION: Call upidpr to delay the parse of the sql statement till the
|
||||
** time that a call needs to be made to the kernel (execution or
|
||||
** describe time )
|
||||
** RETURNS: Oracle return code.
|
||||
*/
|
||||
sword ocisq7( struct csrdef *cursor, oratext * /* sqlstm */, sb4 sqllen,
|
||||
sword defflg, ub4 sqlt );
|
||||
|
||||
/*****************************************/
|
||||
/* Bind */
|
||||
/*****************************************/
|
||||
sword obind( struct csrdef *cursor, oratext *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
oratext *fmt, sword fmtl, sword fmtt );
|
||||
sword obindn( struct csrdef *cursor, ub2 sqlvn, ub1 *progv, sword progvl,
|
||||
sword ftype, sword scale, oratext *fmt, sword fmtl,
|
||||
sword fmtt );
|
||||
|
||||
/**********************************************/
|
||||
/* Define */
|
||||
/**********************************************/
|
||||
sword odfinn( struct csrdef *cursor, sword pos, ub1 *buf, sword bufl,
|
||||
sword ftype, sb2 *rc, sword scale );
|
||||
|
||||
/**********************************************/
|
||||
/* Describe */
|
||||
/**********************************************/
|
||||
sword odsrbn( struct csrdef *cursor, sword pos, sb2 *dbsize, sb2 *dtype,
|
||||
sb2 *fsize );
|
||||
|
||||
|
||||
/******************************************/
|
||||
/* Non-blocking operations */
|
||||
/******************************************/
|
||||
sword onblon( ldadef *lda, struct hstdef *hst, oratext *conn,
|
||||
sword connl, oratext *uid, sword uidl,
|
||||
oratext *psw, sword pswl, sword audit );
|
||||
/* logon in non-blocking fashion */
|
||||
sword ocignfd( ldadef *lda, void *nfdp ); /* get native fd */
|
||||
|
||||
ub2 ocigft_getFcnType( ub2 oertyp ); /* get sql function code */
|
||||
|
||||
#endif
|
@ -0,0 +1,113 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
/* Copyright (c) 1991, 2005, Oracle. All rights reserved. */
|
||||
/* Copyright (c) 1991, 2005, Oracle. All rights reserved. */
|
||||
/*
|
||||
NAME
|
||||
ocidem.h - OCI demo header
|
||||
MODIFIED (MM/DD/YY)
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
whe 04/07/99 - bug#810071
|
||||
whe 03/19/99 - lrg 32079 etc.: putting static back for oci_func_tab
|
||||
nmacnaug 02/02/99 - static declarations should not be in header files
|
||||
mygopala 09/22/97 - Fix for bug 550351
|
||||
surman 03/14/97 - Merge 413362 to 8.0.3
|
||||
surman 11/08/96 - 413362: Add SS_64BIT_SERVER macro
|
||||
emendez 04/07/94 - merge changes from branch 1.6.710.1
|
||||
emendez 02/02/94 - Fix for bug 157576
|
||||
jnlee 01/05/93 - include oratypes.h once, make oci_func_tab static
|
||||
rkooi2 10/26/92 - More portability mods
|
||||
rkooi2 10/22/92 - Change text back to char to avoid casts
|
||||
rkooi2 10/20/92 - Changes to make it portable
|
||||
sjain 03/16/92 - Creation
|
||||
*/
|
||||
|
||||
/*
|
||||
* ocidem.h
|
||||
*
|
||||
* Declares additional functions and data structures
|
||||
* used in the OCI C sample programs.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef ORATYPES
|
||||
#include <oratypes.h>
|
||||
#endif /* ORATYPES */
|
||||
|
||||
#ifndef OCIDFN
|
||||
#include <ocidfn.h>
|
||||
#endif /* OCIDFN */
|
||||
|
||||
#ifndef OCIDEM
|
||||
#define OCIDEM
|
||||
|
||||
|
||||
/* internal/external datatype codes */
|
||||
#define VARCHAR2_TYPE 1
|
||||
#define NUMBER_TYPE 2
|
||||
#define INT_TYPE 3
|
||||
#define FLOAT_TYPE 4
|
||||
#define STRING_TYPE 5
|
||||
#define ROWID_TYPE 11
|
||||
#define DATE_TYPE 12
|
||||
|
||||
/* ORACLE error codes used in demonstration programs */
|
||||
#define VAR_NOT_IN_LIST 1007
|
||||
#ifndef NO_DATA_FOUND
|
||||
# define NO_DATA_FOUND 1403
|
||||
#endif
|
||||
#define NULL_VALUE_RETURNED 1405
|
||||
|
||||
/* some SQL and OCI function codes */
|
||||
#define FT_INSERT 3
|
||||
#define FT_SELECT 4
|
||||
#define FT_UPDATE 5
|
||||
#define FT_DELETE 9
|
||||
|
||||
#define FC_OOPEN 14
|
||||
|
||||
/*
|
||||
* OCI function code labels,
|
||||
* corresponding to the fc numbers
|
||||
* in the cursor data area.
|
||||
*/
|
||||
static const text *oci_func_tab[] = {(text *) "not used",
|
||||
/* 1-2 */ (text *) "not used", (text *) "OSQL",
|
||||
/* 3-4 */ (text *) "not used", (text *) "OEXEC, OEXN",
|
||||
/* 5-6 */ (text *) "not used", (text *) "OBIND",
|
||||
/* 7-8 */ (text *) "not used", (text *) "ODEFIN",
|
||||
/* 9-10 */ (text *) "not used", (text *) "ODSRBN",
|
||||
/* 11-12 */ (text *) "not used", (text *) "OFETCH, OFEN",
|
||||
/* 13-14 */ (text *) "not used", (text *) "OOPEN",
|
||||
/* 15-16 */ (text *) "not used", (text *) "OCLOSE",
|
||||
/* 17-18 */ (text *) "not used", (text *) "not used",
|
||||
/* 19-20 */ (text *) "not used", (text *) "not used",
|
||||
/* 21-22 */ (text *) "not used", (text *) "ODSC",
|
||||
/* 23-24 */ (text *) "not used", (text *) "ONAME",
|
||||
/* 25-26 */ (text *) "not used", (text *) "OSQL3",
|
||||
/* 27-28 */ (text *) "not used", (text *) "OBNDRV",
|
||||
/* 29-30 */ (text *) "not used", (text *) "OBNDRN",
|
||||
/* 31-32 */ (text *) "not used", (text *) "not used",
|
||||
/* 33-34 */ (text *) "not used", (text *) "OOPT",
|
||||
/* 35-36 */ (text *) "not used", (text *) "not used",
|
||||
/* 37-38 */ (text *) "not used", (text *) "not used",
|
||||
/* 39-40 */ (text *) "not used", (text *) "not used",
|
||||
/* 41-42 */ (text *) "not used", (text *) "not used",
|
||||
/* 43-44 */ (text *) "not used", (text *) "not used",
|
||||
/* 45-46 */ (text *) "not used", (text *) "not used",
|
||||
/* 47-48 */ (text *) "not used", (text *) "not used",
|
||||
/* 49-50 */ (text *) "not used", (text *) "not used",
|
||||
/* 51-52 */ (text *) "not used", (text *) "OCAN",
|
||||
/* 53-54 */ (text *) "not used", (text *) "OPARSE",
|
||||
/* 55-56 */ (text *) "not used", (text *) "OEXFET",
|
||||
/* 57-58 */ (text *) "not used", (text *) "OFLNG",
|
||||
/* 59-60 */ (text *) "not used", (text *) "ODESCR",
|
||||
/* 61-62 */ (text *) "not used", (text *) "OBNDRA",
|
||||
/* 63-64 */ (text *) "OBINDPS", (text *) "ODEFINPS",
|
||||
/* 65-66 */ (text *) "OGETPI", (text *) "OSETPI"
|
||||
};
|
||||
|
||||
#endif /* OCIDEM */
|
||||
|
@ -0,0 +1,262 @@
|
||||
/* Copyright (c) 1991, 2012, Oracle and/or its affiliates.
|
||||
All rights reserved. */
|
||||
/*
|
||||
NAME
|
||||
ocidfn.h - OCI Definations
|
||||
NOTES
|
||||
Shipped to users.
|
||||
MODIFIED (MM/DD/YY)
|
||||
kkverma 12/19/12 - define host area type
|
||||
sagrawal 12/03/10 - Boolean Binds
|
||||
mbastawa 09/16/05 - dbhygiene
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
srseshad 11/25/02 - change binary float/double codes
|
||||
srseshad 11/14/02 - Add SQLT_IBFLOAT, SQLT_IBDOUBLE
|
||||
mxyang 09/17/02 - grabtrans 'mmorsi_obj_float'
|
||||
srseshad 09/06/02 - Add binary float/double
|
||||
aahluwal 06/04/02 - bug 2360115
|
||||
kmuthukk 05/02/00 - add SQLT_PNTY
|
||||
amangal 07/30/99 - Merge into 8.1.6 : Bug 879031
|
||||
tnbui 07/28/99 - Remove SQLT_TIMESTAMP_ITZ
|
||||
tnbui 07/21/99 - SQLT_TIMESTAMP_LTZ
|
||||
tnbui 06/16/99 - TIMESTAMP WITH IMPLICIT TIME ZONE
|
||||
whe 04/07/99 - bug#810075
|
||||
whe 03/19/99 - lrg 32079 etc.: move HDA def from ocidem.h to ocidfn.
|
||||
skmishra 05/10/98 -
|
||||
vyanaman 04/16/98 - update sql92 datatypes
|
||||
khnguyen 01/16/98 -
|
||||
khnguyen 12/23/97 - SQLT* for datetimes and intervals
|
||||
tanguyen 08/19/97 -
|
||||
dchatter 03/18/97 - porting exception 390897
|
||||
dchatter 05/02/97 - merge porting exception
|
||||
dalpern 12/04/96 - SQLCS_LIT_NULL added
|
||||
cxcheng 11/14/96 - add SQLT_BFILE/SQLT_CFILE to fix compile prob
|
||||
cxcheng 11/12/96 - add SQLT_NCO for named collection
|
||||
lchidamb 10/17/96 - add SQLT_VST and SQLT_ODT
|
||||
sgollapu 10/14/96 - Mutual exclusion of ocidfn and sqldef
|
||||
sgollapu 10/07/96 - OCI Simplification
|
||||
aroy 09/09/96 - add SQLCS* definitions
|
||||
slari 08/07/96 - add SQLT_RDD, rowid descriptor
|
||||
slari 06/12/96 - remove SQLT_TTBL
|
||||
dchatter 04/21/96 - prepare for merge into main
|
||||
slari 08/24/95 - b299432, define CDA_SIZE
|
||||
zwalcott 02/28/96 - add SQLT_BFILEE and SQLT_CFILEE.
|
||||
lchidamb 02/22/96 - make dtys consistent with dtydef.h
|
||||
lchidamb 02/16/96 - add SQLT_BFILEE and SQLT_CFILEE
|
||||
lchidamb 01/30/96 - rename new datatypes for v8
|
||||
lchidamb 09/06/95 - add new datatypes
|
||||
slari 05/11/95 - add OCI_EV_DEF and OCI_EV_TSF
|
||||
dchatter 04/06/95 - add ifdef flags around OCI_flags
|
||||
dchatter 03/08/95 - piece values
|
||||
dchatter 03/06/95 - merge changes from branch 1.2.720.3
|
||||
jfbrown 02/17/95 - merge changes from branch 1.2.720.2
|
||||
dchatter 02/08/95 - olog call modes
|
||||
jfbrown 02/03/95 - remove non-printable characters
|
||||
lchidamb 12/06/94 - merge changes from branch 1.2.720.1
|
||||
lchidamb 10/04/94 - added field chk to cda_head, cda_def
|
||||
dchatter 07/05/94 - SQLT_CUR added
|
||||
rkooi2 11/27/92 - Changing e* datatypes to s*
|
||||
rkooi2 10/26/92 - More portability mods
|
||||
rkooi2 10/22/92 - Added #ifndef ORATYPES ...
|
||||
rkooi2 10/18/92 - Changes to make it portable.
|
||||
sjain 03/16/92 - Creation
|
||||
*/
|
||||
|
||||
/*
|
||||
* ocidfn.h
|
||||
*
|
||||
* Common header file for OCI C sample programs.
|
||||
* This header declares the cursor and logon data area structure.
|
||||
* The types used are defined in <oratypes.h>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef OCIDFN
|
||||
#define OCIDFN
|
||||
|
||||
#include <oratypes.h>
|
||||
|
||||
/* The cda_head struct is strictly PRIVATE. It is used
|
||||
internally only. Do not use this struct in OCI programs. */
|
||||
|
||||
struct cda_head {
|
||||
sb2 v2_rc;
|
||||
ub2 ft;
|
||||
ub4 rpc;
|
||||
ub2 peo;
|
||||
ub1 fc;
|
||||
ub1 rcs1;
|
||||
ub2 rc;
|
||||
ub1 wrn;
|
||||
ub1 rcs2;
|
||||
sword rcs3;
|
||||
struct {
|
||||
struct {
|
||||
ub4 rcs4;
|
||||
ub2 rcs5;
|
||||
ub1 rcs6;
|
||||
} rd;
|
||||
ub4 rcs7;
|
||||
ub2 rcs8;
|
||||
} rid;
|
||||
sword ose;
|
||||
ub1 chk;
|
||||
void *rcsp;
|
||||
};
|
||||
|
||||
/*
|
||||
** Size of HDA area:
|
||||
** 512 for 64 bit arquitectures
|
||||
** 256 for 32 bit arquitectures
|
||||
*/
|
||||
|
||||
#if defined(SS_64BIT_SERVER) || defined(__64BIT__)
|
||||
# define HDA_SIZE 512
|
||||
#else
|
||||
# define HDA_SIZE 256
|
||||
#endif
|
||||
|
||||
#if defined(SS_64BIT_SERVER) || defined(__64BIT__)
|
||||
#define CDA_SIZE 88
|
||||
#else
|
||||
# define CDA_SIZE 64
|
||||
#endif
|
||||
|
||||
/* the real CDA, padded to CDA_SIZE bytes in size */
|
||||
struct cda_def {
|
||||
sb2 v2_rc; /* V2 return code */
|
||||
ub2 ft; /* SQL function type */
|
||||
ub4 rpc; /* rows processed count */
|
||||
ub2 peo; /* parse error offset */
|
||||
ub1 fc; /* OCI function code */
|
||||
ub1 rcs1; /* filler area */
|
||||
ub2 rc; /* V7 return code */
|
||||
ub1 wrn; /* warning flags */
|
||||
ub1 rcs2; /* reserved */
|
||||
sword rcs3; /* reserved */
|
||||
struct { /* rowid structure */
|
||||
struct {
|
||||
ub4 rcs4;
|
||||
ub2 rcs5;
|
||||
ub1 rcs6;
|
||||
} rd;
|
||||
ub4 rcs7;
|
||||
ub2 rcs8;
|
||||
} rid;
|
||||
sword ose; /* OSD dependent error */
|
||||
ub1 chk;
|
||||
void *rcsp; /* pointer to reserved area */
|
||||
ub1 rcs9[CDA_SIZE - sizeof (struct cda_head)]; /* filler */
|
||||
};
|
||||
|
||||
typedef struct cda_def Cda_Def;
|
||||
|
||||
/* the logon data area (LDA)
|
||||
is the same shape as the CDA */
|
||||
typedef struct cda_def Lda_Def;
|
||||
|
||||
/* define host area type */
|
||||
typedef ub8 Hda_AlignType;
|
||||
typedef Hda_AlignType Hda_Def[HDA_SIZE/sizeof(Hda_AlignType)];
|
||||
|
||||
/* OCI Environment Modes for opinit call */
|
||||
#define OCI_EV_DEF 0 /* default single-threaded environment */
|
||||
#define OCI_EV_TSF 1 /* thread-safe environment */
|
||||
|
||||
/* OCI Logon Modes for olog call */
|
||||
#define OCI_LM_DEF 0 /* default login */
|
||||
#define OCI_LM_NBL 1 /* non-blocking logon */
|
||||
|
||||
/*
|
||||
* since sqllib uses both ocidef and ocidfn the following defines
|
||||
* need to be guarded
|
||||
*/
|
||||
#ifndef OCI_FLAGS
|
||||
#define OCI_FLAGS
|
||||
|
||||
/* OCI_*_PIECE defines the piece types that are returned or set
|
||||
*/
|
||||
#define OCI_ONE_PIECE 0 /* there or this is the only piece */
|
||||
#define OCI_FIRST_PIECE 1 /* the first of many pieces */
|
||||
#define OCI_NEXT_PIECE 2 /* the next of many pieces */
|
||||
#define OCI_LAST_PIECE 3 /* the last piece of this column */
|
||||
#endif
|
||||
|
||||
#ifndef SQLDEF
|
||||
|
||||
/* input data types */
|
||||
#define SQLT_CHR 1 /* (ORANET TYPE) character string */
|
||||
#define SQLT_NUM 2 /* (ORANET TYPE) oracle numeric */
|
||||
#define SQLT_INT 3 /* (ORANET TYPE) integer */
|
||||
#define SQLT_FLT 4 /* (ORANET TYPE) Floating point number */
|
||||
#define SQLT_STR 5 /* zero terminated string */
|
||||
#define SQLT_VNU 6 /* NUM with preceding length byte */
|
||||
#define SQLT_PDN 7 /* (ORANET TYPE) Packed Decimal Numeric */
|
||||
#define SQLT_LNG 8 /* long */
|
||||
#define SQLT_VCS 9 /* Variable character string */
|
||||
#define SQLT_NON 10 /* Null/empty PCC Descriptor entry */
|
||||
#define SQLT_RID 11 /* rowid */
|
||||
#define SQLT_DAT 12 /* date in oracle format */
|
||||
#define SQLT_VBI 15 /* binary in VCS format */
|
||||
#define SQLT_BFLOAT 21 /* Native Binary float*/
|
||||
#define SQLT_BDOUBLE 22 /* NAtive binary double */
|
||||
#define SQLT_BIN 23 /* binary data(DTYBIN) */
|
||||
#define SQLT_LBI 24 /* long binary */
|
||||
#define SQLT_UIN 68 /* unsigned integer */
|
||||
#define SQLT_SLS 91 /* Display sign leading separate */
|
||||
#define SQLT_LVC 94 /* Longer longs (char) */
|
||||
#define SQLT_LVB 95 /* Longer long binary */
|
||||
#define SQLT_AFC 96 /* Ansi fixed char */
|
||||
#define SQLT_AVC 97 /* Ansi Var char */
|
||||
#define SQLT_IBFLOAT 100 /* binary float canonical */
|
||||
#define SQLT_IBDOUBLE 101 /* binary double canonical */
|
||||
#define SQLT_CUR 102 /* cursor type */
|
||||
#define SQLT_RDD 104 /* rowid descriptor */
|
||||
#define SQLT_LAB 105 /* label type */
|
||||
#define SQLT_OSL 106 /* oslabel type */
|
||||
|
||||
#define SQLT_NTY 108 /* named object type */
|
||||
#define SQLT_REF 110 /* ref type */
|
||||
#define SQLT_CLOB 112 /* character lob */
|
||||
#define SQLT_BLOB 113 /* binary lob */
|
||||
#define SQLT_BFILEE 114 /* binary file lob */
|
||||
#define SQLT_CFILEE 115 /* character file lob */
|
||||
#define SQLT_RSET 116 /* result set type */
|
||||
#define SQLT_NCO 122 /* named collection type (varray or nested table) */
|
||||
#define SQLT_VST 155 /* OCIString type */
|
||||
#define SQLT_ODT 156 /* OCIDate type */
|
||||
|
||||
/* datetimes and intervals */
|
||||
#define SQLT_DATE 184 /* ANSI Date */
|
||||
#define SQLT_TIME 185 /* TIME */
|
||||
#define SQLT_TIME_TZ 186 /* TIME WITH TIME ZONE */
|
||||
#define SQLT_TIMESTAMP 187 /* TIMESTAMP */
|
||||
#define SQLT_TIMESTAMP_TZ 188 /* TIMESTAMP WITH TIME ZONE */
|
||||
#define SQLT_INTERVAL_YM 189 /* INTERVAL YEAR TO MONTH */
|
||||
#define SQLT_INTERVAL_DS 190 /* INTERVAL DAY TO SECOND */
|
||||
#define SQLT_TIMESTAMP_LTZ 232 /* TIMESTAMP WITH LOCAL TZ */
|
||||
|
||||
|
||||
|
||||
#define SQLT_PNTY 241 /* pl/sql representation of named types */
|
||||
|
||||
/* some pl/sql specific types */
|
||||
#define SQLT_REC 250 /* pl/sql 'record' (or %rowtype) */
|
||||
#define SQLT_TAB 251 /* pl/sql 'indexed table' */
|
||||
#define SQLT_BOL 252 /* pl/sql 'boolean' */
|
||||
|
||||
/* cxcheng: this has been added for backward compatibility -
|
||||
it needs to be here because ocidfn.h can get included ahead of sqldef.h */
|
||||
#define SQLT_FILE SQLT_BFILEE /* binary file lob */
|
||||
#define SQLT_CFILE SQLT_CFILEE
|
||||
#define SQLT_BFILE SQLT_BFILEE
|
||||
|
||||
/* CHAR/NCHAR/VARCHAR2/NVARCHAR2/CLOB/NCLOB char set "form" information */
|
||||
#define SQLCS_IMPLICIT 1 /* for CHAR, VARCHAR2, CLOB w/o a specified set */
|
||||
#define SQLCS_NCHAR 2 /* for NCHAR, NCHAR VARYING, NCLOB */
|
||||
#define SQLCS_EXPLICIT 3 /* for CHAR, etc, with "CHARACTER SET ..." syntax */
|
||||
#define SQLCS_FLEXIBLE 4 /* for PL/SQL "flexible" parameters */
|
||||
#define SQLCS_LIT_NULL 5 /* for typecheck of NULL and empty_clob() lits */
|
||||
|
||||
#endif /* SQLDEF */
|
||||
#endif /* OCIDFN */
|
@ -0,0 +1,282 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
/* Copyright (c) 1996, 2005, Oracle. All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
ociextp.h - Interface Definitions for PL/SQL External Procedures
|
||||
|
||||
DESCRIPTION
|
||||
This header file contains C language callable interface from
|
||||
PL/SQL External Procedures.
|
||||
|
||||
PUBLIC FUNCTION(S)
|
||||
OCIExtProcAllocCallMemory - Allocate Call memory
|
||||
OCIExtProcRaiseExcp - Raise Exception
|
||||
OCIExtProcRaiseExcpWithMsg - Raise Exception with message
|
||||
OCIExtProcGetEnv - Get OCI Environment
|
||||
|
||||
PRIVATE FUNCTION(S)
|
||||
<list of static functions defined in .c file - with one-line descriptions>
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
<other useful comments, qualifications, etc.>
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
srseshad 03/12/03 - convert oci public api to ansi
|
||||
rdecker 01/10/02 - change 32k to MAX_OEN for error numbers
|
||||
sagrawal 07/20/01 - Statement Handle to safe cal outs
|
||||
abrumm 04/19/01 - move include of oci.h after defines/typedef
|
||||
rdecker 02/22/01 - lint fix
|
||||
bpalaval 02/08/01 - Change text to oratext.
|
||||
sagrawal 06/16/00 - ref cursor in callouts
|
||||
whe 09/01/99 - 976457:check __cplusplus for C++ code
|
||||
asethi 04/15/99 - Created (by moving ociextp.h from /vobs/plsql/public)
|
||||
rhari 03/25/97 - Use ifndef
|
||||
rhari 12/18/96 - Include oratypes.h
|
||||
rhari 12/11/96 - #416977, Flip values of return codes
|
||||
rhari 12/02/96 - Define Return Code Macros
|
||||
rhari 11/18/96 - Error number is int
|
||||
rhari 10/30/96 - Fix OCIExtProcRaiseExcpWithMsg
|
||||
rhari 10/30/96 - Get rid of warnings
|
||||
rhari 10/04/96 - Fix OCIExtProcRaiseExcpWithMsg
|
||||
rhari 09/23/96 - Creation
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OCIEXTP_ORACLE
|
||||
# define OCIEXTP_ORACLE
|
||||
|
||||
# ifndef ORATYPES
|
||||
# include <oratypes.h>
|
||||
# endif
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/* ----------------------------- Return Codes ----------------------------- */
|
||||
/* Success and Error return codes for certain external procedure interface
|
||||
* functions. If a particular interface function returns OCIEXTPROC_SUCCESS
|
||||
* or OCIEXTPROC_ERROR, then applications must use these macros to check
|
||||
* for return values.
|
||||
*
|
||||
* OCIEXTPROC_SUCCESS -- External Procedure Success Return Code
|
||||
* OCIEXTPROC_ERROR -- External Procedure Failure Return Code
|
||||
*/
|
||||
#define OCIEXTPROC_SUCCESS 0
|
||||
#define OCIEXTPROC_ERROR 1
|
||||
|
||||
|
||||
/* --------------------------- With-Context Type --------------------------- */
|
||||
/*
|
||||
* The C callable interface to PL/SQL External Procedures require the
|
||||
* With-Context parameter to be passed. The type of this structure is
|
||||
* OCIExtProcContext is is opaque to the user.
|
||||
*
|
||||
* The user can declare the With-Context parameter in the application as
|
||||
*
|
||||
* OCIExtProcContext *with_context;
|
||||
*/
|
||||
typedef struct OCIExtProcContext OCIExtProcContext;
|
||||
|
||||
/* NOTE: OCIExtProcContext must be visible prior to including <oci.h> */
|
||||
|
||||
# ifndef OCI_ORACLE
|
||||
# include <oci.h>
|
||||
# endif
|
||||
|
||||
|
||||
/* ----------------------- OCIExtProcAllocCallMemory ----------------------- */
|
||||
/* OCIExtProcAllocCallMemory
|
||||
* Allocate N bytes of memory for the duration of the External Procedure.
|
||||
*
|
||||
* Memory thus allocated will be freed by PL/SQL upon return from the
|
||||
* External Procedure. You must not use any kind of 'free' function on
|
||||
* memory allocated by OCIExtProcAllocCallMemory.
|
||||
* Use this function to allocate memory for function returns.
|
||||
*
|
||||
* PARAMETERS
|
||||
* Input :
|
||||
* with_context - The with_context pointer that is passed to the C
|
||||
* External Procedure.
|
||||
* Type of with_context : OCIExtProcContext *
|
||||
* amount - The number of bytes to allocate.
|
||||
* Type of amount : size_t
|
||||
*
|
||||
* Output :
|
||||
* Nothing
|
||||
*
|
||||
* Return :
|
||||
* An untyped (opaque) Pointer to the allocated memory.
|
||||
*
|
||||
* Errors :
|
||||
* A 0 return value should be treated as an error
|
||||
*
|
||||
* EXAMPLE
|
||||
* text *ptr = (text *)OCIExtProcAllocCallMemory(wctx, 1024)
|
||||
*
|
||||
*/
|
||||
#define OCIExtProcAllocCallMemory(with_context, amount) \
|
||||
ociepacm(with_context, (size_t)amount)
|
||||
|
||||
|
||||
|
||||
|
||||
/* -------------------------- OCIExtProcRaiseExcp -------------------------- */
|
||||
/* OCIExtProcRaiseExcp
|
||||
* Raise an Exception to PL/SQL.
|
||||
*
|
||||
* Calling this function signalls an exception back to PL/SQL. After a
|
||||
* successful return from this function, the External Procedure must start
|
||||
* its exit handling and return back to PL/SQL. Once an exception is
|
||||
* signalled to PL/SQL, INOUT and OUT arguments, if any, are not processed
|
||||
* at all.
|
||||
*
|
||||
* PARAMETERS
|
||||
* Input :
|
||||
* with_context - The with_context pointer that is passed to the C
|
||||
* External Procedure.
|
||||
* Type of with_context : OCIExtProcContext *
|
||||
* errnum - Oracle Error number to signal to PL/SQL. errnum
|
||||
* must be a positive number and in the range 1 to MAX_OEN
|
||||
* Type of errnum : int
|
||||
* Output :
|
||||
* Nothing
|
||||
*
|
||||
* Return :
|
||||
* OCIEXTPROC_SUCCESS - If the call was successful.
|
||||
* OCIEXTPROC_ERROR - If the call failed.
|
||||
*
|
||||
*/
|
||||
#define OCIExtProcRaiseExcp(with_context, errnum) \
|
||||
ocieperr(with_context, (int)errnum)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ---------------------- OCIExtProcRaiseExcpWithMsg ---------------------- */
|
||||
/* OCIExtProcRaiseExcpWithMsg
|
||||
* Raise an exception to PL/SQL. In addition, substitute the
|
||||
* following error message string within the standard Oracle error
|
||||
* message string. See note for OCIExtProcRaiseExcp
|
||||
*
|
||||
* PARAMETERS
|
||||
* Input :
|
||||
* with_context - The with_context pointer that is passed to the C
|
||||
* External Procedure.
|
||||
* Type of with_context : OCIExtProcContext *
|
||||
* errnum - Oracle Error number to signal to PL/SQL. errnum
|
||||
* must be a positive number and in the range 1 to MAX_OEN
|
||||
* Type of errnum : int
|
||||
* errmsg - The error message associated with the errnum.
|
||||
* Type of errmsg : char *
|
||||
* len - The length of the error message. 0 if errmsg is
|
||||
* null terminated string.
|
||||
* Type of len : size_t
|
||||
* Output :
|
||||
* Nothing
|
||||
*
|
||||
* Return :
|
||||
* OCIEXTPROC_SUCCESS - If the call was successful.
|
||||
* OCIEXTPROC_ERROR - If the call failed.
|
||||
*
|
||||
*/
|
||||
#define OCIExtProcRaiseExcpWithMsg(with_context, errnum, errmsg, msglen) \
|
||||
ociepmsg(with_context, (int)errnum, errmsg, (size_t)msglen)
|
||||
|
||||
|
||||
|
||||
/* --------------------------- OCIExtProcGetEnv --------------------------- */
|
||||
/* OCIExtProcGetEnv
|
||||
* Get OCI Environment
|
||||
*
|
||||
* PARAMETERS
|
||||
* Input :
|
||||
* with_context - The with_context pointer that is passed to the C
|
||||
* External Procedure.
|
||||
*
|
||||
* Output :
|
||||
* envh - The OCI Environment handle.
|
||||
* svch - The OCI Service handle.
|
||||
* errh - The OCI Error handle.
|
||||
*
|
||||
* Return :
|
||||
* OCI_SUCCESS - Successful completion of the function.
|
||||
* OCI_ERROR - Error.
|
||||
*
|
||||
*/
|
||||
#define OCIExtProcGetEnv(with_context, envh, svch, errh) \
|
||||
ociepgoe(with_context, envh, svch, errh)
|
||||
|
||||
|
||||
|
||||
/* ------------------------ OCIInitializeStatementHandle ------------------- */
|
||||
/* OCIreateStatementHandle
|
||||
* Initialize Statement Handle
|
||||
*
|
||||
* PARAMETERS
|
||||
* Input :
|
||||
* wctx - The
|
||||
* cursorno - The cursor number for which we need to initialize
|
||||
* the statement handle
|
||||
* svch - The OCI Service handle.
|
||||
*
|
||||
* Output :
|
||||
* stmthp - The OCI Statement handle.
|
||||
* errh - The OCI Error handle.
|
||||
*
|
||||
* Return :
|
||||
* OCI_SUCCESS - Successful completion of the function.
|
||||
* OCI_ERROR - Error.
|
||||
*
|
||||
*/
|
||||
#define OCIInitializeStatementHandle(wctx, cursorno, svch, stmthp, errh) \
|
||||
ociepish(wctx, cursor, svch, stmthp, errh)
|
||||
|
||||
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
void *ociepacm(OCIExtProcContext *with_context, size_t amount);
|
||||
|
||||
|
||||
|
||||
size_t ocieperr(OCIExtProcContext *with_context, int error_number);
|
||||
|
||||
|
||||
|
||||
size_t ociepmsg(OCIExtProcContext *with_context, int error_number,
|
||||
oratext *error_message, size_t len );
|
||||
|
||||
|
||||
|
||||
sword ociepgoe(OCIExtProcContext *with_context, OCIEnv **envh,
|
||||
OCISvcCtx **svch, OCIError **errh);
|
||||
|
||||
|
||||
#endif /* OCIEXTP_ORACLE */
|
@ -0,0 +1,165 @@
|
||||
/* Copyright (c) 1991, 2005, Oracle. All rights reserved. */
|
||||
/*
|
||||
NAME
|
||||
ocikpr.h - header of K & R compilers
|
||||
MODIFIED (MM/DD/YY)
|
||||
mbastawa 09/16/05 - dbhygiene
|
||||
porangas 12/04/00 - Forward merge bug#974710 to 9i
|
||||
sgollapu 05/19/98 - Change text to OraText
|
||||
dchatter 04/21/96 -
|
||||
dchatter 11/10/95 - add ognfd() - get native fd
|
||||
lchidamb 04/06/95 - drop maxdsz from obindps/odefinps
|
||||
slari 04/07/95 - add opinit
|
||||
dchatter 03/08/95 - osetpi and ogetpi
|
||||
lchidamb 12/09/94 - add obindps() and odefinps()
|
||||
dchatter 03/06/95 - merge changes from branch 1.1.720.2
|
||||
dchatter 11/14/94 - merge changes from branch 1.1.720.1
|
||||
dchatter 02/08/95 - olog call; drop onblon
|
||||
dchatter 10/31/94 - new functions for non-blocking oci
|
||||
rkooi2 11/27/92 - Changing datatypes (in comments) and return types
|
||||
rkooi2 10/26/92 - More portability mods
|
||||
rkooi2 10/18/92 - Changed to agree with oci.c
|
||||
sjain 03/16/92 - Creation
|
||||
*/
|
||||
|
||||
/*
|
||||
* Declare the OCI functions.
|
||||
* Prototype information is commented out.
|
||||
* Use this header for non-ANSI C compilers.
|
||||
* Note that you will need to include ocidfn.h in the .c files
|
||||
* to get the definition for cda_def.
|
||||
*/
|
||||
|
||||
#ifndef OCIKPR
|
||||
#define OCIKPR
|
||||
|
||||
#include <oratypes.h>
|
||||
|
||||
/*
|
||||
* Oci BIND (Piecewise or with Skips)
|
||||
*/
|
||||
sword obindps( struct cda_def *cursor, ub1 opcode, OraText *sqlvar,
|
||||
sb4 sqlvl, ub1 *pvctx, sb4 progvl,
|
||||
sword ftype, sword scale,
|
||||
sb2 *indp, ub2 *alen, ub2 *arcode,
|
||||
sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip,
|
||||
ub4 maxsiz, ub4 *cursiz,
|
||||
OraText *fmt, sb4 fmtl, sword fmtt );
|
||||
sword obreak( struct cda_def *lda );
|
||||
sword ocan ( struct cda_def *cursor );
|
||||
sword oclose( struct cda_def *cursor );
|
||||
sword ocof ( struct cda_def *lda );
|
||||
sword ocom ( struct cda_def *lda );
|
||||
sword ocon ( struct cda_def *lda );
|
||||
|
||||
|
||||
/*
|
||||
* Oci DEFINe (Piecewise or with Skips)
|
||||
*/
|
||||
sword odefinps( struct cda_def *cursor, ub1 opcode, sword pos,ub1 *bufctx,
|
||||
sb4 bufl, sword ftype, sword scale,
|
||||
sb2 *indp, OraText *fmt, sb4 fmtl, sword fmtt,
|
||||
ub2 *rlen, ub2 *rcode,
|
||||
sb4 pv_skip, sb4 ind_skip, sb4 alen_skip, sb4 rc_skip );
|
||||
sword odescr( struct cda_def *cursor, sword pos, sb4 *dbsize,
|
||||
sb2 *dbtype, sb1 *cbuf, sb4 *cbufl, sb4 *dsize,
|
||||
sb2 *prec, sb2 *scale, sb2 *nullok );
|
||||
sword odessp( struct cda_def *cursor, OraText *objnam, size_t onlen,
|
||||
ub1 *rsv1, size_t rsv1ln, ub1 *rsv2, size_t rsv2ln,
|
||||
ub2 *ovrld, ub2 *pos, ub2 *level, OraText **argnam,
|
||||
ub2 *arnlen, ub2 *dtype, ub1 *defsup, ub1* mode,
|
||||
ub4 *dtsiz, sb2 *prec, sb2 *scale, ub1 *radix,
|
||||
ub4 *spare, ub4 *arrsiz );
|
||||
sword oerhms( struct cda_def *lda, sb2 rcode, OraText *buf,
|
||||
sword bufsiz );
|
||||
sword oermsg( sb2 rcode, OraText *buf );
|
||||
sword oexec ( struct cda_def *cursor );
|
||||
sword oexfet( struct cda_def *cursor, ub4 nrows,
|
||||
sword cancel, sword exact );
|
||||
sword oexn ( struct cda_def *cursor, sword iters, sword rowoff );
|
||||
sword ofen ( struct cda_def *cursor, sword nrows );
|
||||
sword ofetch( struct cda_def *cursor );
|
||||
sword oflng ( struct cda_def *cursor, sword pos, ub1 *buf,
|
||||
sb4 bufl, sword dtype, ub4 *retl, sb4 offset );
|
||||
sword ogetpi( struct cda_def *cursor, ub1 *piecep, void **ctxpp,
|
||||
ub4 *iterp, ub4 *indexp );
|
||||
sword opinit( ub4 mode );
|
||||
sword olog ( struct cda_def *lda, ub1 *hst,
|
||||
OraText *uid, sword uidl,
|
||||
OraText *psw, sword pswl,
|
||||
OraText *conn, sword connl,
|
||||
ub4 mode );
|
||||
sword ologof( struct cda_def *lda );
|
||||
sword oopen ( struct cda_def *cursor, struct cda_def *lda,
|
||||
OraText *dbn, sword dbnl, sword arsize,
|
||||
OraText *uid, sword uidl );
|
||||
sword oopt ( struct cda_def *cursor, sword rbopt, sword waitopt );
|
||||
sword oparse( struct cda_def *cursor, OraText *sqlstm, sb4 sqllen,
|
||||
sword defflg, ub4 lngflg );
|
||||
sword orol ( struct cda_def *lda );
|
||||
sword osetpi( struct cda_def *cursor, ub1 piece, void *bufp,
|
||||
ub4 *lenp );
|
||||
void sqlld2 ( struct cda_def *lda, OraText *cname, sb4 *cnlen );
|
||||
void sqllda ( struct cda_def *lda );
|
||||
|
||||
/* non-blocking functions */
|
||||
sword onbset( struct cda_def *lda );
|
||||
sword onbtst( struct cda_def *lda );
|
||||
sword onbclr( struct cda_def *lda );
|
||||
sword ognfd ( struct cda_def *lda, void *fdp );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* OBSOLETE FUNCTIONS
|
||||
*/
|
||||
|
||||
/*
|
||||
* OBSOLETE BIND CALLS-- use obindps()
|
||||
*/
|
||||
sword obndra( struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
sb2 *indp, ub2 *alen, ub2 *arcode, ub4 maxsiz,
|
||||
ub4 *cursiz, OraText *fmt, sword fmtl, sword fmtt );
|
||||
sword obndrn( struct cda_def *cursor, sword sqlvn, ub1 *progv,
|
||||
sword progvl, sword ftype, sword scale, sb2 *indp,
|
||||
OraText *fmt, sword fmtl, sword fmtt );
|
||||
sword obndrv( struct cda_def *cursor, OraText *sqlvar, sword sqlvl,
|
||||
ub1 *progv, sword progvl, sword ftype, sword scale,
|
||||
sb2 *indp, OraText *fmt, sword fmtl, sword fmtt );
|
||||
|
||||
/*
|
||||
* OBSOLETE DEFINE CALLS-- use odefinps()
|
||||
*/
|
||||
sword odefin( struct cda_def *cursor, sword pos, ub1 *buf,
|
||||
sword bufl, sword ftype, sword scale, sb2 *indp,
|
||||
OraText *fmt, sword fmtl, sword fmtt, ub2 *rlen,
|
||||
ub2 *rcode );
|
||||
|
||||
|
||||
/* older calls ; preferred equivalent calls above */
|
||||
sword odsc ( struct cda_def *cursor, sword pos, sb2 *dbsize,
|
||||
sb2 *fsize, sb2 *rcode, sb2 *dtype, sb1 *buf,
|
||||
sb2 *bufl, sb2 *dsize );
|
||||
sword oname ( struct cda_def *cursor, sword pos, sb1 *tbuf,
|
||||
sb2 *tbufl, sb1 *buf, sb2 *bufl );
|
||||
sword olon ( struct cda_def *lda, OraText *uid, sword uidl,
|
||||
OraText *pswd, sword pswdl, sword audit );
|
||||
sword orlon ( struct cda_def *lda, ub1 *hda, OraText *uid,
|
||||
sword uidl, OraText *pswd, sword pswdl, sword audit );
|
||||
sword osql3 ( struct cda_def *cda, OraText *sqlstm, sword sqllen );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* OCIKPR */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,7 @@
|
||||
#ifndef OCIVER_ORACLE
|
||||
#define OCIVER_ORACLE
|
||||
|
||||
#define OCI_MAJOR_VERSION 19 /* Feature release version */
|
||||
#define OCI_MINOR_VERSION 3 /* Release update version */
|
||||
|
||||
#endif
|
@ -0,0 +1,193 @@
|
||||
/* Copyright (c) 2003, 2016, Oracle and/or its affiliates.
|
||||
All rights reserved.*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
ocixml.h - OCIXMLType functions
|
||||
|
||||
DESCRIPTION
|
||||
This file contains all OCIXMLType functions defined in ocixml.c
|
||||
|
||||
|
||||
****************************IMPORTANT***********************************
|
||||
*** If you change the signatures of any fucntions in this file, make sure
|
||||
*** to make same changes to Windows OSD file ociclnt.c. Otherwise, users
|
||||
*** of OCI instant client like ODP.NET will have build issues or crashes
|
||||
****************************IMPORTANT***********************************
|
||||
|
||||
PUBLIC FUNCTION(S)
|
||||
OCIXMLTypeNew()
|
||||
OCIXMLTypeCreateFromSrc()
|
||||
OCIXMLTypeCreateFromSrcWithSchema()
|
||||
OCIXMLTypeTransform()
|
||||
OCIXMLTypeExtract()
|
||||
OCIXMLTypeIsSchemaBased()
|
||||
OCIXMLTypeValidate()
|
||||
OCIXMLTypeExists()
|
||||
OCIXMLTypeGetDOM()
|
||||
OCIXMLTypeGetFromDOM()
|
||||
OCIDOMFree()
|
||||
OCIXMLSEMutexAcq()
|
||||
OCIXMLSEMutexRel()
|
||||
OCIXMLUpdateNodeValues()
|
||||
|
||||
INTERNAL FUNCTION(S)
|
||||
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
joalvizo 09/06/16 - add OCIXMLTypeIsBinXml.
|
||||
yinlu 07/26/12 - remove xml0.h, a private header
|
||||
spetride 03/02/09 - add isdoc to OCIXMLTypeCreateFromSrc*
|
||||
bsthanik 01/17/07 - 5753599: wrappers for service mutex acq/rel
|
||||
bkhaladk 05/10/06 - add setpicklepref
|
||||
nitgupta 01/30/06 - add signatures for OCIBinXMl*
|
||||
dmukhin 06/16/05 - ANSI prototypes; miscellaneous cleanup
|
||||
dmukhin 06/14/05 - ANSI prototypes; miscellaneous cleanup
|
||||
ataracha 12/04/03 - convert public oci api to ansi
|
||||
ataracha 01/21/03 - ataracha_uni_capi_cleanup
|
||||
ataracha 01/08/03 - Creation
|
||||
|
||||
*/
|
||||
#ifndef OCI_ORACLE
|
||||
# include <oci.h>
|
||||
#endif
|
||||
|
||||
#ifndef XML_ORACLE
|
||||
#include <xml.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCIXML_ORACLE
|
||||
# define OCIXML_ORACLE
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
/* parameters for OCIXMLUpdateNodeValues */
|
||||
struct OCIXMLunv
|
||||
{
|
||||
void * xpth_OCIXMLunv; /* xpath expression */
|
||||
void * val_OCIXMLunv; /* value - string literal or xmltype */
|
||||
ub4 xpthL_OCIXMLunv; /* length of xpath expression string */
|
||||
ub4 valL_OCIXMLunv; /* length of value string */
|
||||
ub1 tp_OCIXMLunv; /* type of value - xmltype of string */
|
||||
|
||||
#define OCIXMLUNV_XTP 0x00 /* param is xmltype */
|
||||
#define OCIXMLUNV_STP 0x01 /* param is string literal */
|
||||
#define OCIXMLUNV_STM 0x02 /* param is a stream (kghsstream *) */
|
||||
#define OCIXMLUNV_CLOB 0x03 /* param is a CLOB locator (kolblc *) */
|
||||
#define OCIXMLUNV_BLOB 0x04 /* param is a BLOB locator (kolblc *) */
|
||||
};
|
||||
typedef struct OCIXMLunv OCIXMLunv;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
EXPORT FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
sword OCIXMLTypeNew(OCISvcCtx *svchp, OCIError *errhp, OCIDuration dur,
|
||||
OraText *elname, ub4 elname_Len,
|
||||
OraText *schemaURL, ub4 schemaURL_Len,
|
||||
OCIXMLType **retInstance);
|
||||
|
||||
sword OCIXMLTypeCreateFromSrc(OCISvcCtx *svchp, OCIError *errhp,
|
||||
OCIDuration dur, ub1 src_type, void *src_ptr,
|
||||
sb4 ind, OCIXMLType **retInstance, ub4 csid);
|
||||
sword OCIXMLTypeCreateFromSrcInt(OCISvcCtx *svchp, OCIError *errhp,
|
||||
OCIDuration dur, ub1 src_type, void *src_ptr,
|
||||
sb4 ind, OCIXMLType **retInstance, ub4 csid,
|
||||
boolean isdoc);
|
||||
|
||||
sword OCIXMLTypeCreateFromSrcWithSchema(OCISvcCtx *svchp, OCIError *errhp,
|
||||
OCIDuration dur, ub1 src_type, void *src_ptr,
|
||||
sb4 ind, OraText *schemaURL, ub4 schemaURL_Len,
|
||||
boolean wellformed, boolean valid,
|
||||
OCIXMLType **retInstance, ub4 csid);
|
||||
sword OCIXMLTypeCreateFromSrcWithSchemaInt(OCISvcCtx *svchp, OCIError *errhp,
|
||||
OCIDuration dur, ub1 src_type, void *src_ptr,
|
||||
sb4 ind, OraText *schemaURL, ub4 schemaURL_Len,
|
||||
boolean wellformed, boolean valid,
|
||||
OCIXMLType **retInstance, ub4 csid,
|
||||
boolean isdoc);
|
||||
|
||||
sword OCIXMLTypeExtract(OCIError *errhp,
|
||||
OCIXMLType *doc, OCIDuration dur,
|
||||
OraText *xpathexpr, ub4 xpathexpr_Len,
|
||||
OraText *nsmap, ub4 nsmap_Len,
|
||||
OCIXMLType **retDoc);
|
||||
|
||||
sword OCIXMLTypeTransform(OCIError *errhp, OCIDuration dur,
|
||||
OCIXMLType *doc, OCIXMLType *xsldoc,
|
||||
OCIXMLType **retDoc);
|
||||
|
||||
/* Note: xpathexpr is case sensitive */
|
||||
sword OCIXMLTypeExists(OCIError *errhp, OCIXMLType *doc,
|
||||
OraText *xpathexpr, ub4 xpathexpr_Len,
|
||||
OraText *nsmap, ub4 nsmap_Len,
|
||||
boolean *retval);
|
||||
|
||||
sword OCIXMLTypeIsSchemaBased(OCIError *errhp,
|
||||
OCIXMLType *doc, boolean *retval);
|
||||
|
||||
sword OCIXMLTypeIsFragment(OCIError *errhp, OCIXMLType *doc, boolean *retval);
|
||||
|
||||
sword OCIXMLTypeGetSchema(OCIError *errhp, OCIXMLType *doc,
|
||||
OCIXMLType **schemadoc,
|
||||
OraText **schemaURL, ub4 *schemaURL_Len,
|
||||
OraText **rootelem, ub4 *rootelem_Len);
|
||||
|
||||
sword OCIXMLTypeValidate(OCIError *errhp, OCIXMLType *doc,
|
||||
OraText *schemaURL, ub4 schemaURL_Len, boolean *retval);
|
||||
|
||||
sword OCIXMLTypeGetDOM(OCIError *errhp, OCIXMLType *doc, OCIDuration dur,
|
||||
OCIDOMDocument **retDom);
|
||||
|
||||
sword OCIXMLTypeGetFromDOM(OCIError *errhp, OCIDOMDocument *domdoc,
|
||||
OCIXMLType **retXMLType);
|
||||
|
||||
sword OCIXMLTypeGetNS(OCIError *errhp, OCIXMLType *domdoc,
|
||||
OraText **ns, ub4 *ns_len);
|
||||
|
||||
sword OCIDOMFree(OCIError *errhp, OCIDOMDocument *domdoc);
|
||||
|
||||
sword OCIBinXmlCreateReposCtxFromConn(OCIEnv *env, OCISvcCtx *svcctx,
|
||||
OCIError *err, OCIBinXmlReposCtx **ctx);
|
||||
sword OCIBinXmlCreateReposCtxFromCPool(OCIEnv *env, OCICPool *cpool,
|
||||
OCIError *err, OCIBinXmlReposCtx **ctx);
|
||||
sword OCIBinXmlSetReposCtxForConn(OCISvcCtx *dataconn,
|
||||
OCIBinXmlReposCtx *reposctx);
|
||||
|
||||
sword OCIXMLTypeIsBinXml(OCIError *errhp,
|
||||
OCIXMLType *doc, boolean *retval);
|
||||
|
||||
#define OCIXML_FORMATTYPE_TEXT 0
|
||||
#define OCIXML_FORMATTYPE_BINXML 1
|
||||
|
||||
sword OCIBinXmlSetFormatPref(xmldocnode *doc, ub4 format);
|
||||
|
||||
/* OCI Wrapper to acquire mutex associated with service handle and
|
||||
* env handle
|
||||
*/
|
||||
sword OCIXMLSEMutexAcq(OCISvcCtx *svchp, OCIError *errhp);
|
||||
|
||||
/* release wrapper corresponding to OCIXMLSEMutexAcq */
|
||||
sword OCIXMLSEMutexRel(OCISvcCtx *svchp, OCIError *errhp);
|
||||
|
||||
/* acquires OCI svc and env mutexes, updates values of nodes pointed to by
|
||||
* given XPATH locations, and releases mutexes.
|
||||
*/
|
||||
sword OCIXMLUpdateNodeValues(OCISvcCtx *svchp, OCIError *errhp, OCIXMLType
|
||||
**docp, struct OCIXMLunv *values, ub4 numvalues, oratext *nsmap,
|
||||
ub4 nsmapl);
|
||||
/*---------------------------------------------------------------------------
|
||||
INTERNAL FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#endif /* OCIXML_ORACLE */
|
@ -0,0 +1,228 @@
|
||||
/* Copyright (c) 2003, 2014, Oracle and/or its affiliates.
|
||||
All rights reserved.*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
ocixmldb.h - XDB public functions
|
||||
|
||||
DESCRIPTION
|
||||
This file contains XDB specific public functions required for DOM C-API.
|
||||
|
||||
RELATED DOCUMENTS
|
||||
|
||||
|
||||
EXPORT FUNCTION(S)
|
||||
struct xmlctx *OCIXmlDbInitXmlCtx(OCIEnv *, OCISvcCtx *, OCIError *,
|
||||
ocixmldbparam *params, int num_params);
|
||||
|
||||
void OCIXmlDbFreeXmlCtx(struct xmlctx *xctx);
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
EXAMPLES
|
||||
|
||||
NOTES
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
stirmizi 06/05/14 - OCI properties for client side binary XML processing
|
||||
alejgarc 05/29/14 - 18857660 - added OCIXmlGetDiffBndVersion.
|
||||
tojhuan 07/10/13 - Update OCIXmlDr_DEF revision
|
||||
tojhuan 06/05/13 - 16318092: add csform and csid to OCIXmlDiffBnd
|
||||
tojhuan 12/17/12 - fwd merge 15980280 expose table alias parameters of
|
||||
qmudxRewriteXMLDiffRaw for OCIXmlDbRewriteXMLDiff
|
||||
srirkris 06/15/11 - Add OCIXmlDr_DEF
|
||||
srirkris 03/01/11 - OCIXmlDbRewriteXMLDiff definition change
|
||||
vmedi 01/14/11 - OCIXmlDbGetFullyQualifiedSchemaUrl
|
||||
sipatel 03/08/10 - add lob arg to OCIXmlDbRewriteXMLDiff
|
||||
samane 01/20/10 - Bug 9302227
|
||||
yifeng 11/05/09 - add OCIXmlDbRewriteXMLDiff
|
||||
samane 08/05/09 - Bug 8661204
|
||||
ataracha 12/11/03 - remove redundant definitions
|
||||
ataracha 05/28/03 - change names
|
||||
ataracha 02/18/03 - add oratypes, remove XMLERR_*
|
||||
imacky 02/01/03 - remove xml.h; xdbs fix
|
||||
ataracha 01/24/03 - use "struct xmlctx" instead of xmlctx
|
||||
imacky 01/28/03 - fix XMLERR defs
|
||||
ataracha 01/21/03 - ataracha_uni_capi_cleanup
|
||||
ataracha 01/09/03 - Creation
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ORATYPES
|
||||
#include <oratypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCI_ORACLE
|
||||
# include <oci.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCIXMLDB_ORACLE
|
||||
# define OCIXMLDB_ORACLE
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PUBLIC TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef XMLCTX_DEFINED
|
||||
# define XMLCTX_DEFINED
|
||||
/* DATATYPE xmlctx - XML top-level context
|
||||
*/
|
||||
struct xmlctx; typedef struct xmlctx xmlctx;
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct OCIXmlDiffBnd {
|
||||
oratext *bndnmp;
|
||||
ub1 bndnml;
|
||||
ub2 bndpos;
|
||||
ub2 bndnum;
|
||||
ub2 bnddty;
|
||||
void *bndvalp;
|
||||
ub4 bndvallen;
|
||||
ub2 bndcsid;
|
||||
ub1 bndcsform;
|
||||
|
||||
} OCIXmlDiffBnd;
|
||||
|
||||
struct xmldrctx; typedef struct xmldrctx xmldrctx;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
XCTXINIT_OCIDUR = 1,
|
||||
XCTXINIT_ERRHDL = 2
|
||||
} ocixmldbpname;
|
||||
|
||||
typedef struct ocixmldbparam
|
||||
{
|
||||
ocixmldbpname name_ocixmldbparam;
|
||||
void *value_ocixmldbparam;
|
||||
} ocixmldbparam;
|
||||
|
||||
#define NUM_OCIXMLDBPARAMS 2
|
||||
|
||||
#define OCIXMLDB_BINDBYNAME 1
|
||||
#define OCIXMLDB_BINDBYNUM 2
|
||||
|
||||
#define OCIMAXXQUBNDLMT 1000
|
||||
|
||||
#define OCIXmlDr_DEF 2
|
||||
|
||||
/* property names for client-side encoding/decoding of binary XML */
|
||||
#define OCIXMLDB_ENCODE "XML_ENCODE_ON"
|
||||
#define OCIXMLDB_DECODEL 13
|
||||
#define OCIXMLDB_DECODE "XML_DECODE_ON"
|
||||
#define OCIXMLDB_DECODEL 13
|
||||
|
||||
/*
|
||||
* At version 2, OCIXmlDiffBnd has attributes bndcsid, bndcsform
|
||||
*/
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
PRIVATE TYPES AND CONSTANTS
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
EXPORT FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
/*****************************************************************************
|
||||
DESCRIPTION
|
||||
|
||||
-----------------------------OCIXmlDbInitXmlCtx---------------------------------
|
||||
Name
|
||||
OCIXmlDbInitXmlCtx
|
||||
Purpose
|
||||
To get a xmlctx structure initialized with error-handler and XDB callbacks.
|
||||
Syntax
|
||||
struct xmlctx *OCIXmlDbInitXmlCtx (OCIEnv *envhp,
|
||||
OCISvcCtx *svchp,
|
||||
OCIError *err,
|
||||
params_ocixmldb *params,
|
||||
int num_params);
|
||||
Parameters
|
||||
envhp (IN) - The OCI environment handle
|
||||
svchp (IN) - The OCI service handle
|
||||
errhp (IN) - The OCI error handle
|
||||
params (IN)- This contains the following optional parameters :
|
||||
(a) OCIDuration dur (IN - The OCI Duration (Default: OCI_DURATION_SESSION)
|
||||
(b) void (*err_handler) (sword, (const oratext *) (IN) -
|
||||
Pointer to the error handling function (Default: null)
|
||||
num_params (IN) - Number of parameters to be read from parameter params.
|
||||
If the value of num_params exceeds the size of array
|
||||
"params", unexpected behavior will result.
|
||||
|
||||
Returns
|
||||
A pointer to xmlctx structure, with xdb context, error handler and callbacks
|
||||
populated with appropriate values. This is later used for all API calls. NULL
|
||||
if no database connection available.
|
||||
|
||||
-----------------------------OCIXmlDbFreeXmlCtx----------------------------
|
||||
Name
|
||||
OCIXmlDbFreeXmlCtx
|
||||
Pupose
|
||||
To free any allocations done during OCIXmlDbInitXmlCtx.
|
||||
Syntax
|
||||
void OCIXmlDbFreeXmlCtx (struct xmlctx *xctx)
|
||||
Parameters
|
||||
xctx (IN) - The xmlctx to terminate
|
||||
Returns
|
||||
-
|
||||
------------------------OCIXmlDbOrastreamFromLob---------------------------
|
||||
Name
|
||||
OCIXmlDbOrastreamFromLob
|
||||
Pupose
|
||||
To create an orastream from a lob. This orastream can be used by functions like XMLLoadDom().
|
||||
Syntax
|
||||
sword OCIXmlDbOrastreamFromLob(OCIError *errhp, xmlctx *xctx,
|
||||
void **stream, OCILobLocator *lobloc)
|
||||
Parameters
|
||||
envhp (IN) - The OCI environment handle
|
||||
xctx (IN) - XML context
|
||||
stream (IN/OUT) - A pointer to orastream
|
||||
lobloc (IN) - The OCI lob locator
|
||||
Returns
|
||||
The orastream created on top of the lob is returned in the parameter 'stream'.
|
||||
******************************************************************************/
|
||||
|
||||
struct xmlctx *OCIXmlDbInitXmlCtx(OCIEnv *, OCISvcCtx *, OCIError *,
|
||||
ocixmldbparam *, int);
|
||||
|
||||
void OCIXmlDbFreeXmlCtx(struct xmlctx *xctx);
|
||||
sword OCIXmlDbStreamFromXMLType(OCIError *errhp, void **stream,
|
||||
OCIXMLType *doc, ub4 mode);
|
||||
sword OCIXmlDbOrastreamFromLob(OCIError *errhp, xmlctx *xctx,
|
||||
void **stream, OCILobLocator *lobloc);
|
||||
sword OCIXmlDbStreamRead(OCIError *errhp, void *stream,
|
||||
void *bufp, sb8 *len, ub4 mode);
|
||||
sword OCIXmlDbStreamClose(OCIError *errhp, void *stream);
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
INTERNAL FUNCTIONS
|
||||
---------------------------------------------------------------------------*/
|
||||
/* This function is for internal usage only */
|
||||
sword OCIXmlDbRewriteXMLDiff(OCIEnv *envhp, OCIError *errhp, OCISvcCtx *svchp,
|
||||
xmldrctx *xctx , oratext* colname, ub4 colnamelen,
|
||||
const void* xmldiff, ub4 xmldifflen,
|
||||
OCILobLocator *xdiff_locator, oratext** updstmt,
|
||||
ub2 binditerator, ub2 *colvalbndcount,
|
||||
OCIXmlDiffBnd **bindlist,
|
||||
oratext *obj_tab_prefix, ub2 obj_tab_prefix_len);
|
||||
|
||||
struct xmldrctx *OCIXmlInitDRCtx(OCIEnv *env, OCISvcCtx *svc, OCIError *err,
|
||||
ub1 bindtyp);
|
||||
|
||||
void OCIXmlFreeDRCtx(xmldrctx *xctx);
|
||||
|
||||
ub1 OCIXmlGetDiffBndVersion();
|
||||
|
||||
sword OCIXmlDbGetFullyQualifiedSchemaUrl(OCIError *errhp,
|
||||
oratext *schema_url,
|
||||
ub2 schema_url_len,
|
||||
oratext *schema_owner,
|
||||
ub2 schema_owner_len,
|
||||
oratext **fq_schema_url,
|
||||
ub4 *fs_schema_url_len);
|
||||
|
||||
void *OCIXmlDbMemCallback(void *ctx, size_t size);
|
||||
|
||||
#endif /* OCIXMLDB_ORACLE */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,326 @@
|
||||
/*
|
||||
Copyright (c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Header: oracore3/public/oratypes.h /nt/23 2018/05/21 00:47:57 skchauha Exp $
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef ORATYPES
|
||||
# define ORATYPES
|
||||
# define SX_ORACLE
|
||||
# define SX3_ORACLE
|
||||
|
||||
|
||||
#ifndef ORASTDDEF
|
||||
# include <stddef.h>
|
||||
# define ORASTDDEF
|
||||
#endif
|
||||
|
||||
#ifndef ORALIMITS
|
||||
# include <limits.h>
|
||||
# define ORALIMITS
|
||||
#endif
|
||||
|
||||
#ifndef ORASTDARG
|
||||
# include <stdarg.h>
|
||||
# define ORASTDARG
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
# define TRUE 1
|
||||
# define FALSE 0
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef lint
|
||||
typedef unsigned char ub1;
|
||||
typedef signed char sb1;
|
||||
#else
|
||||
#define ub1 unsigned char
|
||||
#define sb1 signed char
|
||||
#endif
|
||||
|
||||
#define UB1MAXVAL ((ub1)UCHAR_MAX)
|
||||
#define UB1MINVAL ((ub1) 0)
|
||||
#define SB1MAXVAL ((sb1)SCHAR_MAX)
|
||||
#define SB1MINVAL ((sb1)SCHAR_MIN)
|
||||
#define MINUB1MAXVAL ((ub1) 255)
|
||||
#define MAXUB1MINVAL ((ub1) 0)
|
||||
#define MINSB1MAXVAL ((sb1) 127)
|
||||
#define MAXSB1MINVAL ((sb1) -127)
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef lint
|
||||
typedef unsigned short ub2;
|
||||
typedef signed short sb2;
|
||||
#else
|
||||
#define ub2 unsigned short
|
||||
#define sb2 signed short
|
||||
#endif
|
||||
|
||||
#define UB2MAXVAL ((ub2)USHRT_MAX)
|
||||
#define UB2MINVAL ((ub2) 0)
|
||||
#define SB2MAXVAL ((sb2) SHRT_MAX)
|
||||
#define SB2MINVAL ((sb2) SHRT_MIN)
|
||||
#define MINUB2MAXVAL ((ub2) 65535)
|
||||
#define MAXUB2MINVAL ((ub2) 0)
|
||||
#define MINSB2MAXVAL ((sb2) 32767)
|
||||
#define MAXSB2MINVAL ((sb2)-32767)
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef lint
|
||||
typedef unsigned int ub4;
|
||||
typedef signed int sb4;
|
||||
#else
|
||||
#define eb4 int
|
||||
#define ub4 unsigned int
|
||||
#define sb4 signed int
|
||||
#endif
|
||||
|
||||
#define UB4MAXVAL ((ub4)UINT_MAX)
|
||||
#define UB4MINVAL ((ub4) 0)
|
||||
#define SB4MAXVAL ((sb4) INT_MAX)
|
||||
#define SB4MINVAL ((sb4) INT_MIN)
|
||||
#define MINUB4MAXVAL ((ub4) 4294967295)
|
||||
#define MAXUB4MINVAL ((ub4) 0)
|
||||
#define MINSB4MAXVAL ((sb4) 2147483647)
|
||||
#define MAXSB4MINVAL ((sb4)-2147483647)
|
||||
|
||||
|
||||
/* --- Signed/Unsigned eight-byte scalar (orasb8/oraub8) --- */
|
||||
|
||||
#define ORAXB8_DEFINED
|
||||
#ifndef lint
|
||||
#ifndef __GNUC__
|
||||
#ifdef __BORLANDC__
|
||||
typedef unsigned __int64 oraub8;
|
||||
typedef signed __int64 orasb8;
|
||||
#else
|
||||
typedef unsigned _int64 oraub8;
|
||||
typedef signed _int64 orasb8;
|
||||
#endif /* __BORLANDC__ */
|
||||
#else
|
||||
typedef unsigned long long oraub8;
|
||||
typedef signed long long orasb8;
|
||||
#endif
|
||||
typedef oraub8 ub8;
|
||||
typedef orasb8 sb8;
|
||||
#else
|
||||
# define ub8 oraub8
|
||||
# define sb8 orasb8
|
||||
# define oraub8 unsigned _int64
|
||||
# define orasb8 signed _int64
|
||||
#endif /* !lint */
|
||||
|
||||
#define ORAUB8MINVAL ((oraub8)0)
|
||||
#define ORAUB8MAXVAL ((oraub8)18446744073709551615)
|
||||
#define ORASB8MINVAL ((orasb8)-9223372036854775808)
|
||||
#define ORASB8MAXVAL ((orasb8) 9223372036854775807)
|
||||
|
||||
#define MAXORAUB8MINVAL ((oraub8)0)
|
||||
#define MINORAUB8MAXVAL ((oraub8)18446744073709551615)
|
||||
#define MAXORASB8MINVAL ((orasb8)-9223372036854775807)
|
||||
#define MINORASB8MAXVAL ((orasb8) 9223372036854775807)
|
||||
|
||||
|
||||
#define UB1BITS CHAR_BIT
|
||||
#define UB1MASK ((1 << ((uword)CHAR_BIT)) - 1)
|
||||
|
||||
|
||||
#ifdef lint
|
||||
# define oratext unsigned char
|
||||
#else
|
||||
typedef unsigned char oratext;
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef lint
|
||||
typedef char eb1;
|
||||
typedef short eb2;
|
||||
typedef int eb4;
|
||||
#else
|
||||
# define eb1 char
|
||||
# define eb2 short
|
||||
# define eb4 int
|
||||
#endif
|
||||
|
||||
#define EB1MAXVAL ((eb1)SCHAR_MAX)
|
||||
#define EB1MINVAL ((eb1) 0)
|
||||
#define MINEB1MAXVAL ((eb1) 127)
|
||||
#define MAXEB1MINVAL ((eb1) 0)
|
||||
#define EB2MAXVAL ((eb2) SHRT_MAX)
|
||||
#define EB2MINVAL ((eb2) 0)
|
||||
#define MINEB2MAXVAL ((eb2) 32767)
|
||||
#define MAXEB2MINVAL ((eb2) 0)
|
||||
#define EB4MAXVAL ((eb4) INT_MAX)
|
||||
#define EB4MINVAL ((eb4) 0)
|
||||
#define MINEB4MAXVAL ((eb4) 2147483647)
|
||||
#define MAXEB4MINVAL ((eb4) 0)
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef lint
|
||||
typedef sb1 b1;
|
||||
#else
|
||||
#define b1 sb1
|
||||
#endif
|
||||
#define B1MAXVAL SB1MAXVAL
|
||||
#define B1MINVAL SB1MINVAL
|
||||
|
||||
#ifndef lint
|
||||
typedef sb2 b2;
|
||||
#else
|
||||
#define b2 sb2
|
||||
#endif
|
||||
#define B2MAXVAL SB2MAXVAL
|
||||
#define B2MINVAL SB2MINVAL
|
||||
|
||||
#ifndef lint
|
||||
typedef sb4 b4;
|
||||
#else
|
||||
#define b4 sb4
|
||||
#endif
|
||||
# define B4MAXVAL SB4MAXVAL
|
||||
# define B4MINVAL SB4MINVAL
|
||||
|
||||
|
||||
#if !defined(LUSEMFC)
|
||||
# ifdef lint
|
||||
# define text unsigned char
|
||||
# else
|
||||
typedef oratext text;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef lint
|
||||
# define OraText unsigned char
|
||||
#else
|
||||
typedef oratext OraText;
|
||||
#endif
|
||||
|
||||
#ifndef lint
|
||||
typedef int eword;
|
||||
typedef unsigned int uword;
|
||||
typedef signed int sword;
|
||||
#else
|
||||
#define eword int
|
||||
#define uword unsigned int
|
||||
#define sword signed int
|
||||
#endif
|
||||
|
||||
#define EWORDMAXVAL ((eword) INT_MAX)
|
||||
#define EWORDMINVAL ((eword) 0)
|
||||
#define UWORDMAXVAL ((uword)UINT_MAX)
|
||||
#define UWORDMINVAL ((uword) 0)
|
||||
#define SWORDMAXVAL ((sword) INT_MAX)
|
||||
#define SWORDMINVAL ((sword) INT_MIN)
|
||||
#define MINEWORDMAXVAL ((eword) 2147483647)
|
||||
#define MAXEWORDMINVAL ((eword) 0)
|
||||
#define MINUWORDMAXVAL ((uword) 4294967295)
|
||||
#define MAXUWORDMINVAL ((uword) 0)
|
||||
#define MINSWORDMAXVAL ((sword) 2147483647)
|
||||
#define MAXSWORDMINVAL ((sword) -2147483647)
|
||||
|
||||
|
||||
#ifdef _WIN64
|
||||
|
||||
#ifndef lint
|
||||
#if defined(__BORLANDC__) || defined(__MINGW64__)
|
||||
typedef unsigned __int64 ubig_ora;
|
||||
typedef signed __int64 sbig_ora;
|
||||
#else
|
||||
typedef unsigned _int64 ubig_ora;
|
||||
typedef signed _int64 sbig_ora;
|
||||
#endif /* End of __BORLANDC__ */
|
||||
#else
|
||||
#define ubig_ora unsigned _int64
|
||||
#define sbig_ora signed _int64
|
||||
#endif /* End of lint */
|
||||
|
||||
#define UBIG_ORAMAXVAL ((ubig_ora)_UI64_MAX)
|
||||
#define UBIG_ORAMINVAL ((ubig_ora) 0)
|
||||
#define SBIG_ORAMAXVAL ((sbig_ora) _I64_MAX)
|
||||
#define SBIG_ORAMINVAL ((sbig_ora) _I64_MIN)
|
||||
#define MINUBIG_ORAMAXVAL ((ubig_ora) 4294967295)
|
||||
#define MAXUBIG_ORAMINVAL ((ubig_ora) 0)
|
||||
#define MINSBIG_ORAMAXVAL ((sbig_ora) 2147483647)
|
||||
#define MAXSBIG_ORAMINVAL ((sbig_ora)-2147483647)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef lint
|
||||
typedef unsigned long ubig_ora;
|
||||
typedef signed long sbig_ora;
|
||||
#else
|
||||
#define ubig_ora unsigned long
|
||||
#define sbig_ora signed long
|
||||
#endif
|
||||
|
||||
#define UBIG_ORAMAXVAL ((ubig_ora)ULONG_MAX)
|
||||
#define UBIG_ORAMINVAL ((ubig_ora) 0)
|
||||
#define SBIG_ORAMAXVAL ((sbig_ora) LONG_MAX)
|
||||
#define SBIG_ORAMINVAL ((sbig_ora) LONG_MIN)
|
||||
#define MINUBIG_ORAMAXVAL ((ubig_ora) 4294967295)
|
||||
#define MAXUBIG_ORAMINVAL ((ubig_ora) 0)
|
||||
#define MINSBIG_ORAMAXVAL ((sbig_ora) 2147483647)
|
||||
#define MAXSBIG_ORAMINVAL ((sbig_ora)-2147483647)
|
||||
|
||||
#endif /* _WIN64 */
|
||||
|
||||
#define UBIGORABITS (UB1BITS * sizeof(ubig_ora))
|
||||
|
||||
|
||||
#undef CONST
|
||||
#define CONST const
|
||||
|
||||
|
||||
#define dvoid void
|
||||
|
||||
|
||||
typedef void (*lgenfp_t)( void );
|
||||
|
||||
|
||||
|
||||
#ifndef ORASYS_TYPES
|
||||
# include <sys/types.h>
|
||||
# define ORASYS_TYPES
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef boolean
|
||||
# define boolean int
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef sparc
|
||||
# define SIZE_TMAXVAL SB4MAXVAL
|
||||
#else
|
||||
# define SIZE_TMAXVAL UB4MAXVAL
|
||||
#endif
|
||||
|
||||
#define MINSIZE_TMAXVAL (size_t)4294967295
|
||||
|
||||
|
||||
#if !defined(MOTIF) && !defined(LISPL) && !defined(__cplusplus) && !defined(LUSEMFC)
|
||||
typedef oratext *string;
|
||||
#endif
|
||||
|
||||
#ifndef lint
|
||||
typedef unsigned short utext;
|
||||
#else
|
||||
#define utext unsigned short
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,373 @@
|
||||
/* Copyright (c) 1994, 2006, Oracle. All rights reserved. */
|
||||
|
||||
/*
|
||||
Author: Tin Nguyen
|
||||
Date: 02/07/94
|
||||
Source documents: "Functional Specification for C Object Interface, Object
|
||||
Management Subsystem", "Oracle C Coding Standards
|
||||
version 2.2", and the header file template
|
||||
Rule sets: the generic and .h file rule sets
|
||||
Quality status: not exited
|
||||
Identification tag: [ one or more letters to identify the .h file ]
|
||||
Revision code: [ date of the last revision of the .h file ]
|
||||
|
||||
Note to the user of this header file:
|
||||
|
||||
Anything in this header file that is marked private is not supported and
|
||||
must not be used. Private sections are included in the header file to
|
||||
improve internal maintenance.
|
||||
|
||||
NAME
|
||||
|
||||
ORID - Oracle Object Interface for Dynamic Data Access
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
This file contains declarations for C object interface functions including
|
||||
the dynamic object data access operations that allow callers to dynamically
|
||||
access and manipulate objects; these operations include getting and setting
|
||||
attributes of an object. These dynamic object operations are for accessing
|
||||
and manipulation objects whose types are not known at compile-time.
|
||||
|
||||
RELATED DOCUMENTS
|
||||
|
||||
Functional Specification for C Object Interface / Object Management System
|
||||
|
||||
PUBLIC FUNCTIONS
|
||||
|
||||
OCIObjectSetAttr - ORID SET attribute value
|
||||
OCIObjectGetAttr - ORID GET attribute value
|
||||
|
||||
PRIVATE FUNCTIONS
|
||||
|
||||
None
|
||||
|
||||
EXAMPLES
|
||||
|
||||
EXAMPLE 1
|
||||
|
||||
/o
|
||||
o This example illustrates how an interative program can use the dynamic
|
||||
o attribute access to display and modify attributes of an ADT instance.
|
||||
o The interactive program does not know the type of the object at
|
||||
o compile time.
|
||||
o/
|
||||
|
||||
void display(adt_ref, object, null_struct, names, names_count,
|
||||
names_length, indexes, indexes_count)
|
||||
{
|
||||
/o Pin the ADT o/
|
||||
if (OCIObjectPin(env, &adt_ref, OROOPOCUR, OROOPDTRA, OROOLMNON, &adt)
|
||||
!= OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o
|
||||
o Call the type manager to obtain all the attributes in the object.
|
||||
o Display the content of each attribute in the ADT instance. If the
|
||||
o attribute is an array, display each element of the array. If the
|
||||
o attribute is an ADT instance, recursively call this routine to
|
||||
o display the embedded ADT instance.
|
||||
o/
|
||||
numAttrs = OCITypeAttrs(env, adt);
|
||||
for (i= 1; i <= numAttrs; i++)
|
||||
{
|
||||
/o get attribute descriptor o/
|
||||
if (ortgabp(env, adt, i, &ado_ref, &ado) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o get attribute name o/
|
||||
names[names_count] = OCITypeElemName(env, ado,
|
||||
&names_length[names_count]);
|
||||
|
||||
/o dynamically get the attr o/
|
||||
if (OCIObjectGetAttr(env, object, null_struct, 0, adt_ref, names,
|
||||
names_length, names_count+1, indexes, indexes_count, 0,
|
||||
&null, &null_info, &attr) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o check if attribute is null o/
|
||||
if (null) continue;
|
||||
|
||||
/o get typecode of attribute o/
|
||||
typecode = OCITypeElemTypeCode(env, ado);
|
||||
|
||||
/o if attribute is a varray, display each element in varray o/
|
||||
if (typecode == OCI_TYPECODE_VARRAY)
|
||||
{
|
||||
/o get the reference to the type of the element of the array o/
|
||||
if (OCITypeElemParameterizedTyper(env, ado, &attr_type_ref)
|
||||
!= OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o get the size of array o/
|
||||
if (orlasiz(env, &attr_type_ref, (orlva *)attr,
|
||||
&numElm) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o get the typecode of the element of the array o/
|
||||
if (ortty2r(env, attr_type_ref, &typecode) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o iterate the array o/
|
||||
for (j=0; j < numElm; j++)
|
||||
{
|
||||
/o get an element in the array o/
|
||||
if (OCIObjectGetAttr(env, attr, null_info, j+1, attr_type_ref,
|
||||
names, names_length, 0, indexes, 0, 0, &null, &null_info,
|
||||
&element) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o check if element is null o/
|
||||
if (null) continue;
|
||||
|
||||
/o if attr is an ADT instance, recursively call this routine o/
|
||||
if (typecode == OCI_TYPECODE_ADT || typecode ==
|
||||
OCI_TYPECODE_UNNAMEDADT)
|
||||
{
|
||||
/o display the element as an adt o/
|
||||
display(attr_type_ref, element, null_info, names, lengths,
|
||||
0, indexes, 0);
|
||||
}
|
||||
|
||||
/o if attribute is scalar, print the value to the screen o/
|
||||
else output_to_screen(element, typecode);
|
||||
}
|
||||
}
|
||||
|
||||
/o if attribute is an ADT instance, recursively call this routine o/
|
||||
else if (typecode == OCI_TYPECODE_ADT || typecode ==
|
||||
OCI_TYPECODE_UNNAMEDADT)
|
||||
{
|
||||
/o get the type ref of the attribute o/
|
||||
if (ortgarf(env, ado, &attr_type_ref) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
display(attr_type_ref, attr, null_info, 0, names, 0, names_length,
|
||||
indexes, 0);
|
||||
}
|
||||
|
||||
/o if attribute is scalar, print the value to the screen o/
|
||||
else output_to_screen(attr, typecode);
|
||||
}
|
||||
}
|
||||
|
||||
/o ******** main routine *********** o/
|
||||
....
|
||||
|
||||
/o
|
||||
o Allocate the arrays for storing the path expression
|
||||
o/
|
||||
|
||||
/o get the tdo of type 'long' o/
|
||||
if (orttypget(&env, con, "SYS", sizeof("SYS"), "SINT32", sizeof("SINT32"),
|
||||
OROOPDSES, &long_ref, &long_tdo) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o get the tdo of type 'varchar' o/
|
||||
if (orttypget(&env, con, "SYS", sizeof("SYS"), "SQL_VARCHAR2",
|
||||
sizeof("SQL_VARCHAR2"), OROOPDSES, &vchar_ref, &vchar_tdo)
|
||||
!= OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o allocate the varrays for the path expression o/
|
||||
if (orlalloc(env, &vchar_ref, MAX_ARR_SIZE, &attr_names) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
if (orlalloc(env, &long_ref, MAX_ARR_SIZE, &attr_name_lengths)
|
||||
!= OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
if (orlalloc(env, &long_ref, MAX_ARR_SIZE, &attr_name_indexes)
|
||||
!= OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o
|
||||
o Get an ADT instance. The ref to the ADT instance can be obtained
|
||||
o by through ORI or OSCI.
|
||||
o/
|
||||
if (OCIObjectPin(env, &obj_ref, OROOPOCUR, OROOPDTRA, OROOLMUPD, &object)
|
||||
!= OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o get the null structure of the ADT instance o/
|
||||
if (OCIObjectGetInd(gp, object, &null_struct) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o
|
||||
o Get the type of the ADT instance
|
||||
o/
|
||||
|
||||
/o find out the type of the ADT instance o/
|
||||
if (oriogto(env, object, &adt_ref) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
/o display the object o/
|
||||
display(adt_ref, object, null_struct, attr_names, 0, attr_names_lengths,
|
||||
attr_names_indexes, 0);
|
||||
|
||||
/o After the object is displayed, the program waits for the user to
|
||||
o respond. The user modifies the values of an attribute and the
|
||||
o program generates a path expression for the attribute and calls
|
||||
o OCIObjectSetAttr() to set the value.
|
||||
o/
|
||||
|
||||
if (OCIObjectSetAttr(env, object, null_struct, adt_ref,
|
||||
(text **)attr_names, (ub4 *)attr_name_lengths,
|
||||
attr_names_count, (ub4 *)attr_array_indexes,
|
||||
attr_array_indexes_count,
|
||||
(void *)0, FALSE, (void *)value) != OROSTASUC)
|
||||
/o error handling code o/
|
||||
|
||||
END OF EXAMPLE 1
|
||||
|
||||
NOTES
|
||||
|
||||
This file has been subsetted to contain only the routines that will
|
||||
be in the first release.
|
||||
|
||||
MODIFIED
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
srseshad 03/12/03 - convert oci public api to ansi
|
||||
aahluwal 06/03/02 - bug 2360115
|
||||
bpalaval 02/09/01 - Change text to oratext.
|
||||
whe 09/01/99 - 976457:check __cplusplus for C++ code
|
||||
sthakur 09/18/97 - collection indexing not supported
|
||||
cxcheng 08/05/97 - fix compile with short names
|
||||
skrishna 03/18/97 - fix ifdef for supporting ansi and k&r proto-types
|
||||
cxcheng 02/06/97 - take out short name support except with SLSHORTNAME
|
||||
cxcheng 10/17/96 - final renaming of functions
|
||||
jboonleu 10/07/96 - beautify with OCI long names
|
||||
cxcheng 10/07/96 - change short names to long names for readability
|
||||
jboonleu 09/27/96 - fix lint
|
||||
jwijaya 07/03/96 - add ANSI prototypes
|
||||
jboonleu 04/13/95 - new interface
|
||||
jwijaya 10/11/94 - fix the sccs header and add namespace
|
||||
tanguyen 08/22/94 - fix example
|
||||
tanguyen 08/09/94 - remove Sccsid declaration
|
||||
tanguyen 07/20/94 - fix OCIObjectSetAttr and OCIObjectGetAttr to
|
||||
use position descriptor
|
||||
tanguyen 07/18/94 - change 'object' type to become ptr to object
|
||||
tanguyen 06/30/94 - Fix the ORID_ORACLE ifdef
|
||||
tanguyen 06/27/94 - update to template format
|
||||
skotsovo 05/12/94 - replace ado with attribute position
|
||||
jweisz 05/11/94 - test new checkin facility
|
||||
jwijaya 05/05/94 - orienv/ref/typ -> oroenv/ref/typ
|
||||
jwijaya 02/07/94 - Creation
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ORATYPES
|
||||
#include <oratypes.h>
|
||||
#endif
|
||||
#ifndef ORO_ORACLE
|
||||
#include <oro.h>
|
||||
#endif
|
||||
#ifndef OCI_ORACLE
|
||||
#include <oci.h>
|
||||
#endif
|
||||
|
||||
#ifndef ORID_ORACLE
|
||||
#define ORID_ORACLE
|
||||
|
||||
#ifdef SLSHORTNAME
|
||||
|
||||
#define OCIObjectSetAttr oridset
|
||||
#define OCIObjectGetAttr oridget
|
||||
|
||||
#endif /* SLSHORTNAME */
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* PUBLIC FUNCTIONS */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/*-------------------------- OCIObjectSetAttr ----------------------------*/
|
||||
sword OCIObjectSetAttr( OCIEnv *env, OCIError *err, void *instance,
|
||||
void *null_struct, struct OCIType *tdo,
|
||||
const oratext **names, const ub4 *lengths,
|
||||
const ub4 name_count, const ub4 *indexes,
|
||||
const ub4 index_count, const OCIInd null_status,
|
||||
const void *attr_null_struct, const void *attr_value );
|
||||
/*
|
||||
NAME: OCIObjectSetAttr - ORID SET value
|
||||
PARAMETERS:
|
||||
env (IN) - OCI environment handle initialized in object mode
|
||||
err (IN) - error handle. If there is an error, it is
|
||||
recorded in 'err' and this function returns OCI_ERROR.
|
||||
The error recorded in 'err' can be retrieved by calling
|
||||
OCIErrorGet().
|
||||
instance (IN) - pointer to an ADT instance
|
||||
null_struct (IN) - the null structure of the ADT instance or array
|
||||
tdo (IN) - pointer to the TDO
|
||||
names (IN) - array of attribute names. This is used to specify
|
||||
the names of the attributes in the path expression.
|
||||
lengths (IN) - array of lengths of attribute names.
|
||||
name_count (IN) - number of element in the array 'names'.
|
||||
indexes (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4 *)0.
|
||||
index_count (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4)0.
|
||||
attr_null_status (IN) - the null status of the attribute if the type of
|
||||
attribute is primitive.
|
||||
attr_null_struct (IN) - the null structure of an ADT or collection
|
||||
attribute.
|
||||
attr_value (IN) - pointer to the attribute value.
|
||||
REQUIRES:
|
||||
DESCRIPTION:
|
||||
This function set the attribute of the given object with the given
|
||||
value. The position of the attribute is specified as a path
|
||||
expression which is an array of names and an array of indexes.
|
||||
RETURNS:
|
||||
one of OROSTA*
|
||||
EXAMPLES:
|
||||
For path expression stanford.cs.stu[5].addr, the arrays will look like
|
||||
names = {"stanford", "cs", "stu", "addr"}
|
||||
lengths = {8, 2, 3, 4}
|
||||
indexes = {5}
|
||||
|
||||
Also see the above example.
|
||||
*/
|
||||
|
||||
/*-------------------------- OCIObjectGetAttr ----------------------------*/
|
||||
sword OCIObjectGetAttr( OCIEnv *env, OCIError *err, void *instance,
|
||||
void *null_struct, struct OCIType *tdo,
|
||||
const oratext **names, const ub4 *lengths,
|
||||
const ub4 name_count, const ub4 *indexes,
|
||||
const ub4 index_count, OCIInd *attr_null_status,
|
||||
void **attr_null_struct, void **attr_value,
|
||||
struct OCIType **attr_tdo );
|
||||
/*
|
||||
NAME: OCIObjectGetAttr - ORID GET value
|
||||
PARAMETERS:
|
||||
env (IN) - OCI environment handle initialized in object mode
|
||||
err (IN) - error handle. If there is an error, it is
|
||||
recorded in 'err' and this function returns OCI_ERROR.
|
||||
The error recorded in 'err' can be retrieved by calling
|
||||
OCIErrorGet().
|
||||
instance (IN) - pointer to an ADT instance
|
||||
null_struct (IN) - the null structure of the ADT instance or array
|
||||
tdo (IN) - pointer to the TDO
|
||||
names (IN) - array of attribute names. This is used to specify
|
||||
the names of the attributes in the path expression.
|
||||
lengths (IN) - array of lengths of attribute names.
|
||||
name_count (IN) - number of element in the array 'names'.
|
||||
indexes (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4 *)0.
|
||||
index_count (IN) [OPTIONAL] - currently NOT SUPPORTED, pass (ub4)0.
|
||||
attr_null_status (OUT) - the null status of the attribute if the type
|
||||
of attribute is primitive.
|
||||
attr_null_struct (OUT) - the null structure of an ADT or collection
|
||||
attribute.
|
||||
attr_value (OUT) - pointer to the attribute value.
|
||||
attr_tdo (OUT) - pointer to the TDO of the attribute.
|
||||
REQUIRES:
|
||||
- a valid OCI environment handle must be given.
|
||||
DESCRIPTION:
|
||||
This function gets a value from an ADT instance or from an array.
|
||||
If the parameter 'instance' points to an ADT instance, then the path
|
||||
expression specifies the location of the attribute in the ADT.
|
||||
It is assumed that the object is pinned and that the value returned
|
||||
is valid until the object is unpinned.
|
||||
RETURNS:
|
||||
one of OROSTA*
|
||||
EXAMPLES:
|
||||
See example in OCIObjectSetAttr(). Also see the above example.
|
||||
*/
|
||||
|
||||
#endif /* ORID_ORACLE */
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,895 @@
|
||||
/* Copyright (c) 1994, 2014, Oracle and/or its affiliates.
|
||||
All rights reserved.*/
|
||||
|
||||
/*
|
||||
NAME
|
||||
OCI - Oracle Object Interface for External/Internal/Kernel Clients
|
||||
|
||||
DESCRIPTION
|
||||
This header file contains Oracle object interface definitions which
|
||||
can be included by external user applications, tools, as well as
|
||||
the kernel. It defines types and constants that are common to all
|
||||
object interface which is being defined in several other header files
|
||||
(e.g., ori.h, ort.h, and orl.h).
|
||||
|
||||
RELATED DOCUMENTS
|
||||
TBD
|
||||
|
||||
INSPECTION STATUS [[ deletable if no inspection ]]
|
||||
Inspection date: [[ date of the last logging meeting ]]
|
||||
Inspection status: [[ exited, not exited, or N/A if exit is not a goal ]]
|
||||
Estimated increasing cost defects per page:
|
||||
Rule sets: [[ rule sets inspected against or planned to be
|
||||
inspected against ]]
|
||||
|
||||
ACCEPTANCE REVIEW STATUS [[ deletable if no approval review ]]
|
||||
Review date: [[ date of the meeting where issues were logged and the
|
||||
approval status was decided ]]
|
||||
Review status: [[ current status: accepted, conditionally accepted,
|
||||
major revision required, rejected ]]
|
||||
Reviewers: [[ names of the members on the review team ]]
|
||||
|
||||
PUBLIC FUNCTIONS
|
||||
|
||||
EXAMPLES
|
||||
Examples are given in the description of each function or macro where
|
||||
relevant.
|
||||
|
||||
MODIFIED
|
||||
dpotapov 04/24/14 - Fix oci ind string raw
|
||||
dpotapov 03/06/14 - xtss merge
|
||||
mnanal 06/09/03 - backout of fix 2836388
|
||||
mnanal 05/14/03 - bug-2836388
|
||||
srseshad 11/27/02 - Change OCI_TYPECODE_BFLOAT/BDOUBLE codes
|
||||
rxgovind 10/09/02 - add OCI_TYPECODE_UROWID
|
||||
mxyang 09/17/02 - grabtrans 'mmorsi_obj_float'
|
||||
srseshad 09/11/02 -
|
||||
srseshad 09/01/02 -
|
||||
aahluwal 06/03/02 - bug 2360115
|
||||
celsbern 10/19/01 - merge LOG to MAIN
|
||||
rxgovind 10/16/01 - update typecodes
|
||||
rxgovind 09/19/01 - add typecodes
|
||||
rkasamse 08/15/01 - add OCI_DURATION_USER_CALLBACK
|
||||
jchai 09/24/01 - add type code for PLS_INTEGER
|
||||
porangas 08/22/01 - Fix bug#1776434
|
||||
schatter 04/09/01 - merge 1456235: define OCI_DURATION_INVALID
|
||||
rdani 10/12/00 - 1449943 NOCOPY and PIPELINE
|
||||
ciyer 05/26/00 - short names for abstract, overriding
|
||||
rkasamse 05/25/00 - OCCI enhancements
|
||||
smuralid 05/11/00 - OCITypeMethodFlags - add NOT INSTANTIABLE, OVERRIDING
|
||||
rxgovind 05/09/00 - add OCI_TYPECODE_NONE
|
||||
tnbui 07/28/99 - Remove OCI_TYPECODE_TIMESTAMP_ITZ
|
||||
tnbui 07/21/99 - TS LOCAL TZ
|
||||
thoang 06/21/99 - Add OCI_TYPECODE_TIMESTAMP_ITZ
|
||||
thoang 03/04/99 - Add datetime datatypes
|
||||
rkasamse 10/20/98 - add OCI_ATTR_CACHE_ARRAYFLUSH
|
||||
rkasamse 10/29/98 - add OCI_DURATION_CALLOUT
|
||||
rkasamse 04/28/98 - OCI_OBJECT_DETECTCHANGE -> OCI_ATTR_OBJECT_DETECTCHAN
|
||||
rkasamse 04/28/98 - OCI_OBJECT_NEWNOTNULL -> OCI_ATTR_OBJECT_NEWNOTNULL
|
||||
rkasamse 04/23/98 - add OCI_OBJECT_DETECTCHANGE
|
||||
rkasamse 04/03/98 - add OCI_OBJECT_NEWNOTNULL
|
||||
pmitra 04/01/98 - OCI_LOCK_X_NOWAIT added
|
||||
rxgovind 02/18/98 - add OCI_TYPECODE_OPAQUE
|
||||
rkasamse 02/13/98 - Add OCI_DURATION_PROCESS
|
||||
cxcheng 07/28/97 - fix compile with SLSHORTNAME
|
||||
skrishna 07/14/97 - add OCIObjectGetProperty
|
||||
cxcheng 04/30/97 - make OCITypeParamMode values consistent with PL/SQL
|
||||
skrishna 04/28/97 - undocument OCIObjectProperty & OCIObjectEvent
|
||||
cxcheng 03/29/97 - remove all remaining short names
|
||||
sthakur 03/20/97 - add casts to constants
|
||||
cxcheng 02/21/97 - temporarily put SLSHORTNAME for PL/SQL
|
||||
cxcheng 02/06/97 - take out short name support except with SLSHORTNAME
|
||||
lchidamb 01/20/97 - update OCIRef comments
|
||||
sgollapu 11/19/96 - Add OCI type codes for BOOL,REC,and TAB
|
||||
cxcheng 11/19/96 - more typecode changes
|
||||
cxcheng 11/13/96 - add #include for ocidfn.h
|
||||
cxcheng 11/13/96 - add OCI_TYPECODE_ADT for compatibility
|
||||
cxcheng 11/12/96 - add SQLT_NCO for named collection
|
||||
cxcheng 11/11/96 - more changes to typecodes
|
||||
cxcheng 11/07/96 - #define OCI_TYPECODE_MLSLABEL to SQLT_LAB
|
||||
cxcheng 11/06/96 - fix #define omission for OROTCNAT
|
||||
cxcheng 10/30/96 - move OCI_TYPECODE_* to ocidfn.h as SQLT_*
|
||||
cxcheng 10/28/96 - more beautification changes
|
||||
jboonleu 10/29/96 - add flags for freeing object
|
||||
dchatter 10/26/96 - delete redef of OCISvcCtx, OCIError, OCIEnv
|
||||
cxcheng 10/15/96 - more changes
|
||||
cxcheng 10/14/96 - more final fixes to constants
|
||||
mluong 10/11/96 -
|
||||
mluong 10/11/96 - KOCON and KONSP are in lowercase
|
||||
mluong 10/11/96 - add some define per Calvin
|
||||
cxcheng 10/09/96 - add #define for OROOCOSFN to OCI_COPY_NOREF
|
||||
jboonleu 10/08/96 - change OROOCOSFN to OCICopyFlag
|
||||
jboonleu 10/07/96 - use new OCI names for cache options
|
||||
cxcheng 10/07/96 - add OROTCS02 for KOTTCBRI and OROTCS03 as spare
|
||||
cxcheng 10/07/96 - more lint fixes
|
||||
cxcheng 10/02/96 - move oronsp to ko.h as konsp
|
||||
cxcheng 10/01/96 - add long names for readability
|
||||
cxcheng 10/01/96 - remove orotty and orotal
|
||||
rjenkins 09/28/96 - 2k char 4k varchar2
|
||||
jboonleu 09/27/96 - add macro used only in beta2
|
||||
cxcheng 09/27/96 - move oroenv to oroenv.h
|
||||
cxcheng 09/24/96 - remove unnecessary orotyp
|
||||
cxcheng 09/25/96 - add typecode OROTCS01 as placeholder for lob pointer
|
||||
cxcheng 09/20/96 - add TDO load option orotgo
|
||||
jboonleu 09/18/96 - add OROOPOREC
|
||||
jboonleu 09/10/96 - add OROOPODFL
|
||||
jweisz 08/27/96 - add SQL internal typecode OROTCS00
|
||||
cxcheng 08/02/96 - add PLSQL internal typecodes OROTCP..
|
||||
cxcheng 08/01/96 - add OROTCFAR to fill up space left by OROTCCAR
|
||||
jboonleu 07/16/96 - new pin option
|
||||
cxcheng 06/18/96 - add casts to OROTNOPRE and OROTNOSCL
|
||||
cxcheng 05/29/96 - change OROTCNPT back to OROTCDOM
|
||||
vkrishna 05/27/96 - add OROTCCAR
|
||||
cxcheng 05/17/96 - replace OROTCFAR with OROTCCAR
|
||||
cxcheng 05/08/96 - change orotmf from ub1 to ub2
|
||||
cxcheng 05/07/96 - fix public defines for method types
|
||||
cxcheng 04/30/96 - change OROTCDOM to OROTCNPT
|
||||
cxcheng 04/15/96 - remove obsolete OROTTYICT
|
||||
jboonleu 04/12/96 - add new pin option
|
||||
sthakur 04/12/96 - add indicator type and indicator status
|
||||
cxcheng 04/10/96 - add function parameter codes for ORT/KOT
|
||||
cxcheng 04/03/96 - replace OROTCFAR as OROTCCAR
|
||||
jwijaya 03/29/96 - add OROTTCCAR
|
||||
jwijaya 03/27/96 - better comments for orotc
|
||||
cxcheng 02/23/96 - add typecodes for SMALLINT and VARCHAR2
|
||||
skrishna 02/22/96 - add oroind - null indicator type
|
||||
cxcheng 02/21/96 - change lob character codes to OROTCCLB, OROTCBLB...
|
||||
jboonleu 02/06/96 - new value for predefined duration
|
||||
cxcheng 01/12/96 - add OROTCCLO, OROTCBLO, OROTCFIL to orotc
|
||||
cxcheng 12/05/95 - add OROTCDOM and OROTCAAT to orotc
|
||||
skotsovo 10/30/95 - reserve space for internal 'oid' type
|
||||
jwijaya 10/20/95 - support variable-length ref
|
||||
cxcheng 10/03/95 - add OROTMFOR for ordering function to orotmf
|
||||
cxcheng 10/03/95 - Adding the ordering function type to orotmf
|
||||
jboonleu 09/28/95 - set OROODTPRE
|
||||
jboonleu 09/25/95 - add oroodt
|
||||
skotsovo 03/10/95 - update to only include release 1
|
||||
jboonleu 02/15/95 - add OROOPOREC, remove orocro, oroolo
|
||||
skotsovo 01/30/95 - add default max lengths for varrays and vstrings
|
||||
skotsovo 01/24/95 - categorize sint32, double, and real as number types
|
||||
(with precision and scale) instead of scalar types.
|
||||
skotsovo 12/20/94 - add release 1 types
|
||||
skotsovo 12/12/94 - update according to new ots doc
|
||||
skotsovo 12/01/94 - add default precision and scale
|
||||
jwijaya 11/15/94 - rename ORONSPTAB to ORONSPEXT
|
||||
jwijaya 10/25/94 - tint
|
||||
jwijaya 10/06/94 - add namespace
|
||||
jwijaya 10/02/94 - connection handle -> connection number
|
||||
skotsovo 09/12/94 - keep 0 as uninitialized value for ORT consts
|
||||
skotsovo 08/24/94 - fix orotec
|
||||
skotsovo 08/17/94 - modify type code names
|
||||
skotsovo 08/12/94 - fix 141 lint errors
|
||||
skotsovo 07/25/94 - modify categorization of complex types (orotc)
|
||||
skotsovo 07/07/94 - change typecode enum values & add decimal type
|
||||
skotsovo 07/01/94 - change order of typecodes
|
||||
jwijaya 06/15/94 - review
|
||||
jboonleu 06/13/94 - add comments for the object cache options
|
||||
jwijaya 06/13/94 - adhere to the header file template
|
||||
skotsovo 06/09/94 - make ots scalar type names consistent with the ots
|
||||
document
|
||||
jwijaya 06/07/94 - include oratypes.h instead of s.h
|
||||
skotsovo 05/24/94 - change typecodes
|
||||
jwijaya 05/23/94 - fix comments of ororef
|
||||
skotsovo 05/19/94 - remove type composition
|
||||
skotsovo 05/09/94 - modified orotc according to new OTS document
|
||||
jwijaya 05/03/94 - oroid and ororef
|
||||
jwijaya 01/26/94 - Creation
|
||||
*/
|
||||
|
||||
|
||||
#ifndef ORATYPES
|
||||
#include <oratypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef OCIDFN_ORACLE
|
||||
#include <ocidfn.h>
|
||||
#endif
|
||||
|
||||
#ifndef ORO_ORACLE
|
||||
#define ORO_ORACLE
|
||||
|
||||
#ifdef K3_ORACLE
|
||||
#ifndef KOL3_ORACLE
|
||||
# include <kol3.h>
|
||||
#endif
|
||||
#endif /* K3_ORACLE */
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* SHORT NAMES SUPPORT SECTION */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef SLSHORTNAME
|
||||
|
||||
/* the following are short names that are only supported on IBM mainframes
|
||||
with the SLSHORTNAME defined.
|
||||
With this all subsequent long names will actually be substituted with
|
||||
the short names here */
|
||||
|
||||
#define OCIDuration oroodt
|
||||
#define OCIInd oroind
|
||||
#define OCILockOpt oroolm
|
||||
#define OCIMarkOpt oroomo
|
||||
#define OCIObjectEvent orocev
|
||||
#define OCIObjectProperty oroopr
|
||||
#define OCIPinOpt oroopo
|
||||
#define OCIRef ororef
|
||||
#define OCIRefreshOpt orooro
|
||||
#define OCITypeCode orotc
|
||||
#define OCITypeEncap orotec
|
||||
#define OCITypeGetOpt orotgo
|
||||
#define OCITypeMethodFlag orotmf
|
||||
#define OCITypeParamMode orotpm
|
||||
#define OCIObjectPropId oroopi
|
||||
#define OCIObjectLifetime oroolft
|
||||
#define OCIObjectMarkstatus oroomst
|
||||
#define OCI_LOCK_NONE OROOLMNUL
|
||||
#define OCI_LOCK_X OROOLMX
|
||||
#define OCI_LOCK_X_NOWAIT OROOLMXNW
|
||||
#define OCI_MARK_DEFAULT OROOMODFL
|
||||
#define OCI_MARK_NONE OROOMONON
|
||||
#define OCI_MARK_UPDATE OROOMOUPD
|
||||
#define OCI_OBJECTEVENT_AFTER_FLUSH OROCEVAFL
|
||||
#define OCI_OBJECTEVENT_AFTER_REFRESH OROCEVARF
|
||||
#define OCI_OBJECTEVENT_BEFORE_FLUSH OROCEVBFL
|
||||
#define OCI_OBJECTEVENT_BEFORE_REFRESH OROCEVBRF
|
||||
#define OCI_OBJECTEVENT_WHEN_LOCK OROCEVWLK
|
||||
#define OCI_OBJECTEVENT_WHEN_MARK_DELETED OROCEVWDL
|
||||
#define OCI_OBJECTEVENT_WHEN_MARK_UPDATED OROCEVWUP
|
||||
#define OCI_OBJECTEVENT_WHEN_UNMARK OROCEVWUM
|
||||
#define OCI_OBJECTPROP_DIRTIED OROOPRDRT
|
||||
#define OCI_OBJECTPROP_LOADED OROOPRLOD
|
||||
#define OCI_OBJECTPROP_LOCKED OROOPRLCK
|
||||
#define OCI_PIN_ANY OROOPOANY
|
||||
#define OCI_PIN_DEFAULT OROOPODFL
|
||||
#define OCI_PIN_LATEST OROOPOLST
|
||||
#define OCI_PIN_RECENT OROOPOREC
|
||||
#define OCI_REFRESH_LOADED OROOROLOD
|
||||
#define OCI_TYPEENCAP_PRIVATE OROTECPVT
|
||||
#define OCI_TYPEENCAP_PUBLIC OROTECPUB
|
||||
#define OCI_TYPEGET_ALL OROTGOALL
|
||||
#define OCI_TYPEGET_HEADER OROTGOHDR
|
||||
#define OCI_TYPEMETHOD_CONSTANT OROTMCON
|
||||
#define OCI_TYPEMETHOD_CONSTRUCTOR OROTMCSTR
|
||||
#define OCI_TYPEMETHOD_DESTRUCTOR OROTMDSTR
|
||||
#define OCI_TYPEMETHOD_INLINE OROTMINL
|
||||
#define OCI_TYPEMETHOD_MAP OROTMMAP
|
||||
#define OCI_TYPEMETHOD_OPERATOR OROTMOP
|
||||
#define OCI_TYPEMETHOD_ORDER OROTMOR
|
||||
#define OCI_TYPEMETHOD_RNDS OROTMRDS
|
||||
#define OCI_TYPEMETHOD_RNPS OROTMRPS
|
||||
#define OCI_TYPEMETHOD_SELFISH OROTMSLF
|
||||
#define OCI_TYPEMETHOD_VIRTUAL OROTMVRT
|
||||
#define OCI_TYPEMETHOD_WNDS OROTMWDS
|
||||
#define OCI_TYPEMETHOD_WNPS OROTMWPS
|
||||
#define OCI_TYPEMETHOD_ABSTRACT OROTMABSTRACT
|
||||
#define OCI_TYPEMETHOD_OVERRIDING OROTMOVERRIDING
|
||||
#define OCI_TYPEMETHOD_PIPELINED OROTMPIPELINED
|
||||
#define OCI_TYPEPARAM_BYREF OROTPMREF
|
||||
#define OCI_TYPEPARAM_IN OROTPMIN
|
||||
#define OCI_TYPEPARAM_INOUT OROTPMIO
|
||||
#define OCI_TYPEPARAM_OUT OROTPMOUT
|
||||
#define OCI_TYPEPARAM_OUTNCPY OROTPMOUTNCPY
|
||||
#define OCI_TYPEPARAM_INOUTNCPY OROTPMIONCPY
|
||||
|
||||
#endif /* SLSHORTNAME */
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* PUBLIC TYPES, CONSTANTS AND MACROS */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* GENERAL OBJECT TYPES, CONSTANTS, MACROS */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/*------------------------- OBJECT REFERENCE (REF) --------------------------*/
|
||||
|
||||
typedef struct OCIRef OCIRef;
|
||||
/*
|
||||
* OCIRef - OCI object REFerence
|
||||
*
|
||||
* In the Oracle object runtime environment, an object is identified by an
|
||||
* object reference (ref) which contains the object identifier plus other
|
||||
* runtime information. The contents of a ref is opaque to clients. Use
|
||||
* OCIObjectNew() to construct a ref.
|
||||
*/
|
||||
|
||||
|
||||
/*--------------------------- OBJECT INDICATOR ------------------------------*/
|
||||
|
||||
#ifndef KUTYXTT3_ORACLE
|
||||
typedef sb2 OCIInd;
|
||||
#define ORO_OCIIND_DEFINED
|
||||
#endif
|
||||
/*
|
||||
* OCIInd -- a variable of this type contains (null) indicator information
|
||||
*/
|
||||
|
||||
#define OCI_IND_NOTNULL (OCIInd)0 /* not NULL */
|
||||
#define OCI_IND_NULL (OCIInd)(-1) /* NULL */
|
||||
#define OCI_IND_BADNULL (OCIInd)(-2) /* BAD NULL */
|
||||
#define OCI_IND_NOTNULLABLE (OCIInd)(-3) /* not NULLable */
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* OBJECT CACHE */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/* To enable object change detection mode, set this to TRUE */
|
||||
#define OCI_ATTR_OBJECT_DETECTCHANGE 0x00000020
|
||||
|
||||
/* To enable object creation with non-NULL attributes by default, set the
|
||||
following to TRUE.
|
||||
By default, object is created with NULL attributes
|
||||
*/
|
||||
#define OCI_ATTR_OBJECT_NEWNOTNULL 0x00000010
|
||||
|
||||
/* To enable sorting of the objects that belong to the same table
|
||||
before being flushed through OCICacheFlush.
|
||||
Please note that by enabling this object cache will not be flushing
|
||||
the objects in the same order they were dirtied */
|
||||
#define OCI_ATTR_CACHE_ARRAYFLUSH 0x00000040
|
||||
|
||||
/*--------------------------- OBJECT PIN OPTION -----------------------------*/
|
||||
|
||||
enum OCIPinOpt
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_PIN_DEFAULT = 1, /* default pin option */
|
||||
OCI_PIN_ANY = 3, /* pin any copy of the object */
|
||||
OCI_PIN_RECENT = 4, /* pin recent copy of the object */
|
||||
OCI_PIN_LATEST = 5 /* pin latest copy of the object */
|
||||
};
|
||||
typedef enum OCIPinOpt OCIPinOpt;
|
||||
|
||||
/*
|
||||
* OCIPinOpt - OCI object Pin Option
|
||||
*
|
||||
* In the Oracle object runtime environment, the program has the option to
|
||||
* specify which copy of the object to pin.
|
||||
*
|
||||
* OCI_PINOPT_DEFAULT pins an object using the default pin option. The default
|
||||
* pin option can be set as an attribute of the OCI environment handle
|
||||
* (OCI_ATTR_PINTOPTION). The value of the default pin option can be
|
||||
* OCI_PINOPT_ANY, OCI_PINOPT_RECENT, or OCI_PIN_LATEST. The default option
|
||||
* is initialized to OCI_PINOPT_ANY.
|
||||
*
|
||||
* OCI_PIN_ANY pins any copy of the object. The object is pinned
|
||||
* using the following criteria:
|
||||
* If the object copy is not loaded, load it from the persistent store.
|
||||
* Otherwise, the loaded object copy is returned to the program.
|
||||
*
|
||||
* OCI_PIN_RECENT pins the latest copy of an object. The object is
|
||||
* pinned using the following criteria:
|
||||
* If the object is not loaded, load the object from the persistent store
|
||||
* from the latest version.
|
||||
* If the object is not loaded in the current transaction and it is not
|
||||
* dirtied, the object is refreshed from the latest version.
|
||||
* Otherwise, the loaded object copy is returned to the program.
|
||||
*
|
||||
* OCI_PINOPT_LATEST pins the latest copy of an object. The object copy is
|
||||
* pinned using the following criteria:
|
||||
* If the object copy is not loaded, load it from the persistent store.
|
||||
* If the object copy is loaded and dirtied, it is returned to the program.
|
||||
* Otherwise, the loaded object copy is refreshed from the persistent store.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*--------------------------- OBJECT LOCK OPTION ----------------------------*/
|
||||
|
||||
enum OCILockOpt
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_LOCK_NONE = 1, /* null (same as no lock) */
|
||||
OCI_LOCK_X = 2, /* exclusive lock */
|
||||
OCI_LOCK_X_NOWAIT = 3 /* exclusive lock, do not wait */
|
||||
};
|
||||
typedef enum OCILockOpt OCILockOpt;
|
||||
/*
|
||||
* OCILockOpt - OCI object LOCK Option
|
||||
*
|
||||
* This option is used to specify the locking preferences when an object is
|
||||
* loaded from the server.
|
||||
*/
|
||||
|
||||
|
||||
/*------------------------- OBJECT MODIFYING OPTION -------------------------*/
|
||||
|
||||
enum OCIMarkOpt
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_MARK_DEFAULT = 1, /* default (the same as OCI_MARK_NONE) */
|
||||
OCI_MARK_NONE = OCI_MARK_DEFAULT, /* object has not been modified */
|
||||
OCI_MARK_UPDATE /* object is to be updated */
|
||||
};
|
||||
typedef enum OCIMarkOpt OCIMarkOpt;
|
||||
/*
|
||||
* OCIMarkOpt - OCI object Mark option
|
||||
*
|
||||
* When the object is marked updated, the client has to specify how the
|
||||
* object is intended to be changed.
|
||||
*/
|
||||
|
||||
/*-------------------------- OBJECT Duration --------------------------------*/
|
||||
|
||||
typedef ub2 OCIDuration;
|
||||
|
||||
#define OCI_DURATION_INVALID 0xFFFF /* Invalid duration */
|
||||
#define OCI_DURATION_BEGIN (OCIDuration)10
|
||||
/* beginning sequence of duration */
|
||||
#define OCI_DURATION_NULL (OCIDuration)(OCI_DURATION_BEGIN-1)
|
||||
/* null duration */
|
||||
#define OCI_DURATION_DEFAULT (OCIDuration)(OCI_DURATION_BEGIN-2) /* default */
|
||||
#define OCI_DURATION_USER_CALLBACK (OCIDuration)(OCI_DURATION_BEGIN-3)
|
||||
#define OCI_DURATION_NEXT (OCIDuration)(OCI_DURATION_BEGIN-4)
|
||||
/* next special duration */
|
||||
#define OCI_DURATION_SESSION (OCIDuration)(OCI_DURATION_BEGIN)
|
||||
/* the end of user session */
|
||||
#define OCI_DURATION_TRANS (OCIDuration)(OCI_DURATION_BEGIN+1)
|
||||
/* the end of user transaction */
|
||||
/******************************************************************************
|
||||
** DO NOT USE OCI_DURATION_CALL. IT IS UNSUPPORTED **
|
||||
** WILL BE REMOVED/CHANGED IN A FUTURE RELEASE **
|
||||
******************************************************************************/
|
||||
#define OCI_DURATION_CALL (OCIDuration)(OCI_DURATION_BEGIN+2)
|
||||
/* the end of user client/server call */
|
||||
#define OCI_DURATION_STATEMENT (OCIDuration)(OCI_DURATION_BEGIN+3)
|
||||
|
||||
/* This is to be used only during callouts. It is similar to that
|
||||
of OCI_DURATION_CALL, but lasts only for the duration of a callout.
|
||||
Its heap is from PGA */
|
||||
#define OCI_DURATION_CALLOUT (OCIDuration)(OCI_DURATION_BEGIN+4)
|
||||
|
||||
#define OCI_DURATION_LAST OCI_DURATION_CALLOUT
|
||||
/* last of predefined durations */
|
||||
|
||||
/* This is not being treated as other predefined durations such as
|
||||
SESSION, CALL etc, because this would not have an entry in the duration
|
||||
table and its functionality is primitive such that only allocate, free,
|
||||
resize memory are allowed, but one cannot create subduration out of this
|
||||
*/
|
||||
#define OCI_DURATION_PROCESS (OCIDuration)(OCI_DURATION_BEGIN-5)
|
||||
|
||||
/*
|
||||
* OCIDuration - OCI object duration
|
||||
*
|
||||
* A client can specify the duration of which an object is pinned (pin
|
||||
* duration) and the duration of which the object is in memory (allocation
|
||||
* duration). If the objects are still pinned at the end of the pin duration,
|
||||
* the object cache manager will automatically unpin the objects for the
|
||||
* client. If the objects still exist at the end of the allocation duration,
|
||||
* the object cache manager will automatically free the objects for the client.
|
||||
*
|
||||
* Objects that are pinned with the option OCI_DURATION_TRANS will get unpinned
|
||||
* automatically at the end of the current transaction.
|
||||
*
|
||||
* Objects that are pinned with the option OCI_DURATION_SESSION will get
|
||||
* unpinned automatically at the end of the current session (connection).
|
||||
*
|
||||
* The option OCI_DURATION_NULL is used when the client does not want to set
|
||||
* the pin duration. If the object is already loaded into the cache, then the
|
||||
* pin duration will remain the same. If the object is not yet loaded, the
|
||||
* pin duration of the object will be set to OCI_DURATION_DEFAULT.
|
||||
*/
|
||||
|
||||
/*----------------------------- OBJECT PROPERTY -----------------------------*/
|
||||
|
||||
/******************************************************************************
|
||||
** DO NOT USE OCIObjectProperty. IT IS UNSUPPORTED **
|
||||
** WILL BE REMOVED/CHANGED IN A FUTURE RELEASE **
|
||||
******************************************************************************/
|
||||
enum OCIObjectProperty
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_OBJECTPROP_DIRTIED = 1, /* dirty objects */
|
||||
OCI_OBJECTPROP_LOADED, /* objects loaded in the transaction */
|
||||
OCI_OBJECTPROP_LOCKED /* locked objects */
|
||||
};
|
||||
typedef enum OCIObjectProperty OCIObjectProperty;
|
||||
/*
|
||||
* OCIObjectProperty -- OCI Object Property
|
||||
* This specifies the properties of objects in the object cache.
|
||||
*/
|
||||
|
||||
/*------------------------- CACHE REFRESH OPTION ---------------------------*/
|
||||
|
||||
enum OCIRefreshOpt
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_REFRESH_LOADED = 1 /* refresh objects loaded in the transaction */
|
||||
};
|
||||
typedef enum OCIRefreshOpt OCIRefreshOpt;
|
||||
/*
|
||||
* OCIRefreshOpt - OCI cache Refresh Option
|
||||
* This option is used to specify the set of objects to be refreshed.
|
||||
*
|
||||
* OCI_REFRESH_LOAD refreshes the objects that are loaded in the current
|
||||
* transaction.
|
||||
*/
|
||||
|
||||
/*-------------------------------- OBJECT EVENT -----------------------------*/
|
||||
|
||||
/******************************************************************************
|
||||
** DO NOT USE OCIObjectEvent. IT IS UNSUPPORTED **
|
||||
** WILL BE REMOVED/CHANGED IN A FUTURE RELEASE **
|
||||
******************************************************************************/
|
||||
enum OCIObjectEvent
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_OBJECTEVENT_BEFORE_FLUSH = 1, /* before flushing the cache */
|
||||
OCI_OBJECTEVENT_AFTER_FLUSH, /* after flushing the cache */
|
||||
OCI_OBJECTEVENT_BEFORE_REFRESH, /* before refreshing the cache */
|
||||
OCI_OBJECTEVENT_AFTER_REFRESH, /* after refreshing the cache */
|
||||
OCI_OBJECTEVENT_WHEN_MARK_UPDATED, /* when an object is marked updated */
|
||||
OCI_OBJECTEVENT_WHEN_MARK_DELETED, /* when an object is marked deleted */
|
||||
OCI_OBJECTEVENT_WHEN_UNMARK, /* when an object is being unmarked */
|
||||
OCI_OBJECTEVENT_WHEN_LOCK /* when an object is being locked */
|
||||
};
|
||||
typedef enum OCIObjectEvent OCIObjectEvent;
|
||||
/*
|
||||
* OCIObjectEvent -- OCI Object Event
|
||||
* This specifies the kind of event that is supported by the object
|
||||
* cache. The program can register a callback that is invoked when the
|
||||
* specified event occurs.
|
||||
*/
|
||||
|
||||
/*----------------------------- OBJECT COPY OPTION --------------------------*/
|
||||
#define OCI_OBJECTCOPY_NOREF (ub1)0x01
|
||||
/*
|
||||
* OCIObjectCopyFlag - Object copy flag
|
||||
*
|
||||
* If OCI_OBJECTCOPY_NOREF is specified when copying an instance, the
|
||||
* reference and lob will not be copied to the target instance.
|
||||
*/
|
||||
|
||||
/*----------------------------- OBJECT FREE OPTION --------------------------*/
|
||||
#define OCI_OBJECTFREE_FORCE (ub2)0x0001
|
||||
#define OCI_OBJECTFREE_NONULL (ub2)0x0002
|
||||
#define OCI_OBJECTFREE_HEADER (ub2)0x0004
|
||||
/*
|
||||
* OCIObjectFreeFlag - Object free flag
|
||||
*
|
||||
* If OCI_OBJECTCOPY_FORCE is specified when freeing an instance, the instance
|
||||
* is freed regardless it is pinned or diritied.
|
||||
* If OCI_OBJECTCOPY_NONULL is specified when freeing an instance, the null
|
||||
* structure is not freed.
|
||||
*/
|
||||
|
||||
/*----------------------- OBJECT PROPERTY ID -------------------------------*/
|
||||
|
||||
typedef ub1 OCIObjectPropId;
|
||||
#define OCI_OBJECTPROP_LIFETIME 1 /* persistent or transient or value */
|
||||
#define OCI_OBJECTPROP_SCHEMA 2 /* schema name of table containing object */
|
||||
#define OCI_OBJECTPROP_TABLE 3 /* table name of table containing object */
|
||||
#define OCI_OBJECTPROP_PIN_DURATION 4 /* pin duartion of object */
|
||||
#define OCI_OBJECTPROP_ALLOC_DURATION 5 /* alloc duartion of object */
|
||||
#define OCI_OBJECTPROP_LOCK 6 /* lock status of object */
|
||||
#define OCI_OBJECTPROP_MARKSTATUS 7 /* mark status of object */
|
||||
#define OCI_OBJECTPROP_VIEW 8 /* is object a view object or not? */
|
||||
|
||||
/*
|
||||
* OCIObjectPropId - OCI Object Property Id
|
||||
* Identifies the different properties of objects.
|
||||
*/
|
||||
|
||||
/*----------------------- OBJECT LIFETIME ----------------------------------*/
|
||||
|
||||
enum OCIObjectLifetime
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_OBJECT_PERSISTENT = 1, /* persistent object */
|
||||
OCI_OBJECT_TRANSIENT, /* transient object */
|
||||
OCI_OBJECT_VALUE /* value object */
|
||||
};
|
||||
typedef enum OCIObjectLifetime OCIObjectLifetime;
|
||||
/*
|
||||
* OCIObjectLifetime - OCI Object Lifetime
|
||||
* Classifies objects depending upon the lifetime and referenceability
|
||||
* of the object.
|
||||
*/
|
||||
|
||||
/*----------------------- OBJECT MARK STATUS -------------------------------*/
|
||||
|
||||
typedef uword OCIObjectMarkStatus;
|
||||
#define OCI_OBJECT_NEW 0x0001 /* new object */
|
||||
#define OCI_OBJECT_DELETED 0x0002 /* object marked deleted */
|
||||
#define OCI_OBJECT_UPDATED 0x0004 /* object marked updated */
|
||||
/*
|
||||
* OCIObjectMarkStatus - OCI Object Mark Status
|
||||
* Status of the object - new or updated or deleted
|
||||
*/
|
||||
|
||||
/* macros to test the object mark status */
|
||||
#define OCI_OBJECT_IS_UPDATED(flag) bit((flag), OCI_OBJECT_UPDATED)
|
||||
#define OCI_OBJECT_IS_DELETED(flag) bit((flag), OCI_OBJECT_DELETED)
|
||||
#define OCI_OBJECT_IS_NEW(flag) bit((flag), OCI_OBJECT_NEW)
|
||||
#define OCI_OBJECT_IS_DIRTY(flag) \
|
||||
bit((flag), OCI_OBJECT_UPDATED|OCI_OBJECT_NEW|OCI_OBJECT_DELETED)
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* TYPE MANAGER */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/*------------------------------ TYPE CODE ----------------------------------*/
|
||||
|
||||
/*
|
||||
* Type manager typecodes
|
||||
*
|
||||
* These are typecodes designed to be used with the type manager;
|
||||
* they also include longer, more readable versions of existing SQLT names.
|
||||
* Those types that are directly related to existing SQLT types are #define'd
|
||||
* to their SQLT equivalents.
|
||||
*
|
||||
* The type manager typecodes are designed to be useable for all OCI calls.
|
||||
* They are in the range from 192 to 320 for typecodes, so as not to conflict
|
||||
* with existing OCI SQLT typecodes (see ocidfn.h).
|
||||
*/
|
||||
|
||||
#define OCI_TYPECODE_REF SQLT_REF /* SQL/OTS OBJECT REFERENCE */
|
||||
#define OCI_TYPECODE_DATE SQLT_DAT /* SQL DATE OTS DATE */
|
||||
#define OCI_TYPECODE_SIGNED8 27 /* SQL SIGNED INTEGER(8) OTS SINT8 */
|
||||
#define OCI_TYPECODE_SIGNED16 28 /* SQL SIGNED INTEGER(16) OTS SINT16 */
|
||||
#define OCI_TYPECODE_SIGNED32 29 /* SQL SIGNED INTEGER(32) OTS SINT32 */
|
||||
#define OCI_TYPECODE_REAL 21 /* SQL REAL OTS SQL_REAL */
|
||||
#define OCI_TYPECODE_DOUBLE 22 /* SQL DOUBLE PRECISION OTS SQL_DOUBLE */
|
||||
#define OCI_TYPECODE_BFLOAT SQLT_IBFLOAT /* Binary float */
|
||||
#define OCI_TYPECODE_BDOUBLE SQLT_IBDOUBLE /* Binary double */
|
||||
#define OCI_TYPECODE_FLOAT SQLT_FLT /* SQL FLOAT(P) OTS FLOAT(P) */
|
||||
#define OCI_TYPECODE_NUMBER SQLT_NUM/* SQL NUMBER(P S) OTS NUMBER(P S) */
|
||||
#define OCI_TYPECODE_DECIMAL SQLT_PDN
|
||||
/* SQL DECIMAL(P S) OTS DECIMAL(P S) */
|
||||
#define OCI_TYPECODE_UNSIGNED8 SQLT_BIN
|
||||
/* SQL UNSIGNED INTEGER(8) OTS UINT8 */
|
||||
#define OCI_TYPECODE_UNSIGNED16 25 /* SQL UNSIGNED INTEGER(16) OTS UINT16 */
|
||||
#define OCI_TYPECODE_UNSIGNED32 26 /* SQL UNSIGNED INTEGER(32) OTS UINT32 */
|
||||
#define OCI_TYPECODE_OCTET 245 /* SQL ??? OTS OCTET */
|
||||
#define OCI_TYPECODE_SMALLINT 246 /* SQL SMALLINT OTS SMALLINT */
|
||||
#define OCI_TYPECODE_INTEGER SQLT_INT /* SQL INTEGER OTS INTEGER */
|
||||
#define OCI_TYPECODE_RAW SQLT_LVB /* SQL RAW(N) OTS RAW(N) */
|
||||
#define OCI_TYPECODE_PTR 32 /* SQL POINTER OTS POINTER */
|
||||
#define OCI_TYPECODE_VARCHAR2 SQLT_VCS
|
||||
/* SQL VARCHAR2(N) OTS SQL_VARCHAR2(N) */
|
||||
#define OCI_TYPECODE_CHAR SQLT_AFC /* SQL CHAR(N) OTS SQL_CHAR(N) */
|
||||
#define OCI_TYPECODE_VARCHAR SQLT_CHR
|
||||
/* SQL VARCHAR(N) OTS SQL_VARCHAR(N) */
|
||||
#define OCI_TYPECODE_MLSLABEL SQLT_LAB /* OTS MLSLABEL */
|
||||
#define OCI_TYPECODE_VARRAY 247 /* SQL VARRAY OTS PAGED VARRAY */
|
||||
#define OCI_TYPECODE_TABLE 248 /* SQL TABLE OTS MULTISET */
|
||||
#define OCI_TYPECODE_OBJECT SQLT_NTY /* SQL/OTS NAMED OBJECT TYPE */
|
||||
#define OCI_TYPECODE_OPAQUE 58 /* SQL/OTS Opaque Types */
|
||||
#define OCI_TYPECODE_NAMEDCOLLECTION SQLT_NCO
|
||||
/* SQL/OTS NAMED COLLECTION TYPE */
|
||||
#define OCI_TYPECODE_BLOB SQLT_BLOB /* SQL/OTS BINARY LARGE OBJECT */
|
||||
#define OCI_TYPECODE_BFILE SQLT_BFILE /* SQL/OTS BINARY FILE OBJECT */
|
||||
#define OCI_TYPECODE_CLOB SQLT_CLOB /* SQL/OTS CHARACTER LARGE OBJECT */
|
||||
#define OCI_TYPECODE_CFILE SQLT_CFILE /* SQL/OTS CHARACTER FILE OBJECT */
|
||||
|
||||
/* the following are ANSI datetime datatypes added in 8.1 */
|
||||
#define OCI_TYPECODE_TIME SQLT_TIME /* SQL/OTS TIME */
|
||||
#define OCI_TYPECODE_TIME_TZ SQLT_TIME_TZ /* SQL/OTS TIME_TZ */
|
||||
#define OCI_TYPECODE_TIMESTAMP SQLT_TIMESTAMP /* SQL/OTS TIMESTAMP */
|
||||
#define OCI_TYPECODE_TIMESTAMP_TZ SQLT_TIMESTAMP_TZ /* SQL/OTS TIMESTAMP_TZ */
|
||||
|
||||
#define OCI_TYPECODE_TIMESTAMP_LTZ SQLT_TIMESTAMP_LTZ /* TIMESTAMP_LTZ */
|
||||
|
||||
#define OCI_TYPECODE_INTERVAL_YM SQLT_INTERVAL_YM /* SQL/OTS INTRVL YR-MON */
|
||||
#define OCI_TYPECODE_INTERVAL_DS SQLT_INTERVAL_DS /* SQL/OTS INTRVL DAY-SEC */
|
||||
#define OCI_TYPECODE_UROWID SQLT_RDD /* Urowid type */
|
||||
|
||||
|
||||
#define OCI_TYPECODE_OTMFIRST 228 /* first Open Type Manager typecode */
|
||||
#define OCI_TYPECODE_OTMLAST 320 /* last OTM typecode */
|
||||
#define OCI_TYPECODE_SYSFIRST 228 /* first OTM system type (internal) */
|
||||
#define OCI_TYPECODE_SYSLAST 235 /* last OTM system type (internal) */
|
||||
#define OCI_TYPECODE_PLS_INTEGER 266 /* type code for PLS_INTEGER */
|
||||
|
||||
/* the following are PL/SQL-only internal. They should not be used */
|
||||
#define OCI_TYPECODE_ITABLE SQLT_TAB /* PLSQL indexed table */
|
||||
#define OCI_TYPECODE_RECORD SQLT_REC /* PLSQL record */
|
||||
#define OCI_TYPECODE_BOOLEAN SQLT_BOL /* PLSQL boolean */
|
||||
|
||||
/* NOTE : The following NCHAR related codes are just short forms for saying
|
||||
OCI_TYPECODE_VARCHAR2 with a charset form of SQLCS_NCHAR. These codes are
|
||||
intended for use in the OCIAnyData API only and nowhere else. */
|
||||
#define OCI_TYPECODE_NCHAR 286
|
||||
#define OCI_TYPECODE_NVARCHAR2 287
|
||||
#define OCI_TYPECODE_NCLOB 288
|
||||
|
||||
|
||||
/* To indicate absence of typecode being specified */
|
||||
#define OCI_TYPECODE_NONE 0
|
||||
/* To indicate error has to be taken from error handle - reserved for
|
||||
sqlplus use */
|
||||
#define OCI_TYPECODE_ERRHP 283
|
||||
|
||||
/* The OCITypeCode type is interchangeable with the existing SQLT type
|
||||
which is a ub2 */
|
||||
typedef ub2 OCITypeCode;
|
||||
|
||||
|
||||
/*----------------------- GET OPTIONS FOR TDO ------------------------------*/
|
||||
|
||||
enum OCITypeGetOpt
|
||||
{
|
||||
OCI_TYPEGET_HEADER,
|
||||
/* load only the header portion of the TDO when getting type */
|
||||
OCI_TYPEGET_ALL /* load all attribute and method descriptors as well */
|
||||
};
|
||||
typedef enum OCITypeGetOpt OCITypeGetOpt;
|
||||
|
||||
/*
|
||||
* OCITypeGetOpt
|
||||
*
|
||||
* This is the flag passed to OCIGetTypeArray() to indicate how the TDO is
|
||||
* going to be loaded into the object cache.
|
||||
* OCI_TYPEGET_HEADER implies that only the header portion is to be loaded
|
||||
* initially, with the rest loaded in on a 'lazy' basis. Only the header is
|
||||
* needed for PL/SQL and OCI operations. OCI_TYPEGET_ALL implies that ALL
|
||||
* the attributes and methods belonging to a TDO will be loaded into the
|
||||
* object cache in one round trip. Hence it will take much longer to execute,
|
||||
* but will ensure that no more loading needs to be done when pinning ADOs
|
||||
* etc. This is only needed if your code needs to examine and manipulate
|
||||
* attribute and method information.
|
||||
*
|
||||
* The default is OCI_TYPEGET_HEADER.
|
||||
*/
|
||||
|
||||
|
||||
/*------------------------ TYPE ENCAPSULTATION LEVEL ------------------------*/
|
||||
|
||||
enum OCITypeEncap
|
||||
{
|
||||
/* 0 = uninitialized */
|
||||
OCI_TYPEENCAP_PRIVATE, /* private: only internally visible */
|
||||
OCI_TYPEENCAP_PUBLIC /* public: visible to both internally and externally */
|
||||
};
|
||||
typedef enum OCITypeEncap OCITypeEncap;
|
||||
/*
|
||||
* OCITypeEncap - OCI Encapsulation Level
|
||||
*/
|
||||
|
||||
|
||||
/*---------------------------- TYPE METHOD FLAGS ----------------------------*/
|
||||
|
||||
enum OCITypeMethodFlag
|
||||
{
|
||||
OCI_TYPEMETHOD_INLINE = 0x0001, /* inline */
|
||||
OCI_TYPEMETHOD_CONSTANT = 0x0002, /* constant */
|
||||
OCI_TYPEMETHOD_VIRTUAL = 0x0004, /* virtual */
|
||||
OCI_TYPEMETHOD_CONSTRUCTOR = 0x0008, /* constructor */
|
||||
OCI_TYPEMETHOD_DESTRUCTOR = 0x0010, /* destructor */
|
||||
OCI_TYPEMETHOD_OPERATOR = 0x0020, /* operator */
|
||||
OCI_TYPEMETHOD_SELFISH = 0x0040, /* selfish method (generic otherwise) */
|
||||
|
||||
OCI_TYPEMETHOD_MAP = 0x0080, /* map (relative ordering) */
|
||||
OCI_TYPEMETHOD_ORDER = 0x0100, /* order (relative ordering) */
|
||||
/* OCI_TYPEMETHOD_MAP and OCI_TYPEMETHOD_ORDER are mutually exclusive */
|
||||
|
||||
OCI_TYPEMETHOD_RNDS= 0x0200, /* Read no Data State (default) */
|
||||
OCI_TYPEMETHOD_WNDS= 0x0400, /* Write no Data State */
|
||||
OCI_TYPEMETHOD_RNPS= 0x0800, /* Read no Process State */
|
||||
OCI_TYPEMETHOD_WNPS= 0x1000, /* Write no Process State */
|
||||
OCI_TYPEMETHOD_ABSTRACT = 0x2000, /* abstract (not instantiable) method */
|
||||
OCI_TYPEMETHOD_OVERRIDING = 0x4000, /* overriding method */
|
||||
OCI_TYPEMETHOD_PIPELINED = 0x8000 /* method is pipelined */
|
||||
};
|
||||
typedef enum OCITypeMethodFlag OCITypeMethodFlag;
|
||||
|
||||
/* macros to test the type method flags */
|
||||
#define OCI_METHOD_IS_INLINE(flag) bit((flag), OCI_TYPEMETHOD_INLINE)
|
||||
#define OCI_METHOD_IS_CONSTANT(flag) bit((flag), OCI_TYPEMETHOD_CONSTANT)
|
||||
#define OCI_METHOD_IS_VIRTUAL(flag) bit((flag), OCI_TYPEMETHOD_VIRTUAL)
|
||||
#define OCI_METHOD_IS_CONSTRUCTOR(flag) bit((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
|
||||
#define OCI_METHOD_IS_DESTRUCTOR(flag) bit((flag), OCI_TYPEMETHOD_DESTRUCTOR)
|
||||
#define OCI_METHOD_IS_OPERATOR(flag) bit((flag), OCI_TYPEMETHOD_OPERATOR)
|
||||
#define OCI_METHOD_IS_SELFISH(flag) bit((flag), OCI_TYPEMETHOD_SELFISH)
|
||||
#define OCI_METHOD_IS_MAP(flag) bit((flag), OCI_TYPEMETHOD_MAP)
|
||||
#define OCI_METHOD_IS_ORDER(flag) bit((flag), OCI_TYPEMETHOD_ORDER)
|
||||
#define OCI_METHOD_IS_RNDS(flag) bit((flag), OCI_TYPEMETHOD_RNDS)
|
||||
#define OCI_METHOD_IS_WNDS(flag) bit((flag), OCI_TYPEMETHOD_WNDS)
|
||||
#define OCI_METHOD_IS_RNPS(flag) bit((flag), OCI_TYPEMETHOD_RNPS)
|
||||
#define OCI_METHOD_IS_WNPS(flag) bit((flag), OCI_TYPEMETHOD_WNPS)
|
||||
#define OCI_METHOD_IS_ABSTRACT(flag) bit((flag), OCI_TYPEMETHOD_ABSTRACT)
|
||||
#define OCI_METHOD_IS_OVERRIDING(flag) bit((flag), OCI_TYPEMETHOD_OVERRIDING)
|
||||
#define OCI_METHOD_IS_PIPELINED(flag) bit((flag), OCI_TYPEMETHOD_PIPELINED)
|
||||
|
||||
#define OCI_TYPEMETHOD_IS_INLINE(flag) bit((flag), OCI_TYPEMETHOD_INLINE)
|
||||
#define OCI_TYPEMETHOD_IS_CONSTANT(flag) bit((flag), OCI_TYPEMETHOD_CONSTANT)
|
||||
#define OCI_TYPEMETHOD_IS_VIRTUAL(flag) bit((flag), OCI_TYPEMETHOD_VIRTUAL)
|
||||
#define OCI_TYPEMETHOD_IS_CONSTRUCTOR(flag) \
|
||||
bit((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
|
||||
#define OCI_TYPEMETHOD_IS_DESTRUCTOR(flag) \
|
||||
bit((flag), OCI_TYPEMETHOD_DESTRUCTOR)
|
||||
#define OCI_TYPEMETHOD_IS_OPERATOR(flag) bit((flag), OCI_TYPEMETHOD_OPERATOR)
|
||||
#define OCI_TYPEMETHOD_IS_SELFISH(flag) bit((flag), OCI_TYPEMETHOD_SELFISH)
|
||||
#define OCI_TYPEMETHOD_IS_MAP(flag) bit((flag), OCI_TYPEMETHOD_MAP)
|
||||
#define OCI_TYPEMETHOD_IS_ORDER(flag) bit((flag), OCI_TYPEMETHOD_ORDER)
|
||||
#define OCI_TYPEMETHOD_IS_RNDS(flag) bit((flag), OCI_TYPEMETHOD_RNDS)
|
||||
#define OCI_TYPEMETHOD_IS_WNDS(flag) bit((flag), OCI_TYPEMETHOD_WNDS)
|
||||
#define OCI_TYPEMETHOD_IS_RNPS(flag) bit((flag), OCI_TYPEMETHOD_RNPS)
|
||||
#define OCI_TYPEMETHOD_IS_WNPS(flag) bit((flag), OCI_TYPEMETHOD_WNPS)
|
||||
#define OCI_TYPEMETHOD_IS_ABSTRACT(flag) bit((flag), OCI_TYPEMETHOD_ABSTRACT)
|
||||
#define OCI_TYPEMETHOD_IS_OVERRIDING(flag) \
|
||||
bit((flag), OCI_TYPEMETHOD_OVERRIDING)
|
||||
#define OCI_TYPEMETHOD_IS_PIPELINED(flag) bit((flag), OCI_TYPEMETHOD_PIPELINED)
|
||||
|
||||
/* macros to set the type method flags */
|
||||
#define OCI_TYPEMETHOD_SET_INLINE(flag) bis((flag), OCI_TYPEMETHOD_INLINE)
|
||||
#define OCI_TYPEMETHOD_SET_CONSTANT(flag) bis((flag), OCI_TYPEMETHOD_CONSTANT)
|
||||
#define OCI_TYPEMETHOD_SET_VIRTUAL(flag) bis((flag), OCI_TYPEMETHOD_VIRTUAL)
|
||||
#define OCI_TYPEMETHOD_SET_CONSTRUCTOR(flag) \
|
||||
bis((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
|
||||
#define OCI_TYPEMETHOD_SET_DESTRUCTOR(flag) \
|
||||
bis((flag), OCI_TYPEMETHOD_DESTRUCTOR)
|
||||
#define OCI_TYPEMETHOD_SET_OPERATOR(flag) bis((flag), OCI_TYPEMETHOD_OPERATOR)
|
||||
#define OCI_TYPEMETHOD_SET_SELFISH(flag) bis((flag), OCI_TYPEMETHOD_SELFISH)
|
||||
#define OCI_TYPEMETHOD_SET_MAP(flag) bis((flag), OCI_TYPEMETHOD_MAP)
|
||||
#define OCI_TYPEMETHOD_SET_ORDER(flag) bis((flag), OCI_TYPEMETHOD_ORDER)
|
||||
#define OCI_TYPEMETHOD_SET_RNDS(flag) bis((flag), OCI_TYPEMETHOD_RNDS)
|
||||
#define OCI_TYPEMETHOD_SET_WNDS(flag) bis((flag), OCI_TYPEMETHOD_WNDS)
|
||||
#define OCI_TYPEMETHOD_SET_RNPS(flag) bis((flag), OCI_TYPEMETHOD_RNPS)
|
||||
#define OCI_TYPEMETHOD_SET_WNPS(flag) bis((flag), OCI_TYPEMETHOD_WNPS)
|
||||
|
||||
/* macros to clear the type method flags */
|
||||
#define OCI_TYPEMETHOD_CLEAR_INLINE(flag) bic((flag), OCI_TYPEMETHOD_INLINE)
|
||||
#define OCI_TYPEMETHOD_CLEAR_CONSTANT(flag) \
|
||||
bic((flag), OCI_TYPEMETHOD_CONSTANT)
|
||||
#define OCI_TYPEMETHOD_CLEAR_VIRTUAL(flag) bic((flag), OCI_TYPEMETHOD_VIRTUAL)
|
||||
#define OCI_TYPEMETHOD_CLEAR_CONSTRUCTOR(flag) \
|
||||
bic((flag), OCI_TYPEMETHOD_CONSTRUCTOR)
|
||||
#define OCI_TYPEMETHOD_CLEAR_DESTRUCTOR(flag) \
|
||||
bic((flag), OCI_TYPEMETHOD_DESTRUCTOR)
|
||||
#define OCI_TYPEMETHOD_CLEAR_OPERATOR(flag) \
|
||||
bic((flag), OCI_TYPEMETHOD_OPERATOR)
|
||||
#define OCI_TYPEMETHOD_CLEAR_SELFISH(flag) bic((flag), OCI_TYPEMETHOD_SELFISH)
|
||||
#define OCI_TYPEMETHOD_CLEAR_MAP(flag) bic((flag), OCI_TYPEMETHOD_MAP)
|
||||
#define OCI_TYPEMETHOD_CLEAR_ORDER(flag) bic((flag), OCI_TYPEMETHOD_ORDER)
|
||||
#define OCI_TYPEMETHOD_CLEAR_RNDS(flag) bic((flag), OCI_TYPEMETHOD_RNDS)
|
||||
#define OCI_TYPEMETHOD_CLEAR_WNDS(flag) bic((flag), OCI_TYPEMETHOD_WNDS)
|
||||
#define OCI_TYPEMETHOD_CLEAR_RNPS(flag) bic((flag), OCI_TYPEMETHOD_RNPS)
|
||||
#define OCI_TYPEMETHOD_CLEAR_WNPS(flag) bic((flag), OCI_TYPEMETHOD_WNPS)
|
||||
|
||||
/*--------------------------- TYPE PARAMETER MODE ---------------------------*/
|
||||
|
||||
enum OCITypeParamMode
|
||||
{
|
||||
/* PL/SQL starts this from 0 */
|
||||
OCI_TYPEPARAM_IN = 0, /* in */
|
||||
OCI_TYPEPARAM_OUT, /* out */
|
||||
OCI_TYPEPARAM_INOUT, /* in-out */
|
||||
OCI_TYPEPARAM_BYREF, /* call by reference (implicitly in-out) */
|
||||
OCI_TYPEPARAM_OUTNCPY, /* OUT with NOCOPY modifier */
|
||||
OCI_TYPEPARAM_INOUTNCPY /* IN OUT with NOCOPY modifier */
|
||||
};
|
||||
typedef enum OCITypeParamMode OCITypeParamMode;
|
||||
|
||||
|
||||
/*-------------------------------- DEFAULTS ---------------------------------*/
|
||||
|
||||
/* default binary and decimal precision and scale */
|
||||
|
||||
#define OCI_NUMBER_DEFAULTPREC ((ub1)0) /* no precision specified */
|
||||
#define OCI_NUMBER_DEFAULTSCALE ((sb1)MAXSB1MINVAL)
|
||||
/* no binary/decimal scale specified */
|
||||
|
||||
/* default maximum length for varrays and vstrings (used in sql.bsq) */
|
||||
|
||||
#define OCI_VARRAY_MAXSIZE 4000
|
||||
/* default maximum number of elements for a varray */
|
||||
#define OCI_STRING_MAXLEN 4000 /* default maximum length of a vstring */
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* This set of macro is used only in beta2. They should be removed as soon as
|
||||
* PLSQL has made the changes of not using these macros.
|
||||
*/
|
||||
|
||||
/* Special duration for allocating memory only. No instance can be allocated
|
||||
* given these durations.
|
||||
*/
|
||||
#define OCICoherency OCIRefreshOpt
|
||||
#define OCI_COHERENCY_NONE (OCIRefreshOpt)2
|
||||
#define OCI_COHERENCY_NULL (OCIRefreshOpt)4
|
||||
#define OCI_COHERENCY_ALWAYS (OCIRefreshOpt)5
|
||||
|
||||
#endif /* ORO_ORACLE */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,200 @@
|
||||
/* Copyright (c) 1992, 2006, Oracle. All rights reserved. */
|
||||
|
||||
/*
|
||||
NAME
|
||||
xa.h - <one-line expansion of the name>
|
||||
DESCRIPTION
|
||||
<short description of component this file declares/defines>
|
||||
PUBLIC FUNCTION(S)
|
||||
<list of external functions declared/defined - with one-line descriptions>
|
||||
PRIVATE FUNCTION(S)
|
||||
<list of static functions defined in .c file - with one-line descriptions>
|
||||
RETURNS
|
||||
<function return values, for .c file with single function>
|
||||
NOTES
|
||||
<other useful comments, qualifications, etc.>
|
||||
|
||||
This is the public XA .h file
|
||||
|
||||
MODIFIED (MM/DD/YY)
|
||||
yohu 08/27/06 - XA/RAC project changes: XAER_AFFINITY
|
||||
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||||
whe 09/01/99 - 976457:check __cplusplus for C++ code
|
||||
ntang 10/20/98 - Remove TMCACHE & TMFORCL
|
||||
abhide 08/04/97 - implement xaoforcl
|
||||
abhide 07/23/97 - XA OTS project changes
|
||||
schandra 02/20/96 - lint
|
||||
abhide 04/07/94 - merge changes from branch 1.1.710.1
|
||||
abhide 02/14/94 - Creation
|
||||
abhide 02/10/94 - Creation
|
||||
abhide 02/10/94 - Creation
|
||||
*/
|
||||
/*
|
||||
* xa.h header
|
||||
* Typed in from X/Open doc of March 13, 1990
|
||||
* Updated to Parsippany II draft, March, 1991
|
||||
* Updated to Co Review draft, 19 Sep 1991
|
||||
*/
|
||||
|
||||
#ifndef XA_H
|
||||
#define XA_H
|
||||
|
||||
|
||||
/*
|
||||
* Transaction branch identification: XID and NULLXID:
|
||||
*/
|
||||
|
||||
|
||||
#define XIDDATASIZE 128 /* size in bytes */
|
||||
#define MAXGTRIDSIZE 64 /* maximum size in bytes of gtrid */
|
||||
#define MAXBQUALSIZE 64 /* maximum size in bytes of bqual */
|
||||
struct xid_t {
|
||||
long formatID; /* format identifier */
|
||||
long gtrid_length; /* value from 1 through 64 */
|
||||
long bqual_length; /* value from 1 through 64 */
|
||||
char data[XIDDATASIZE];
|
||||
};
|
||||
typedef struct xid_t XID;
|
||||
|
||||
/*
|
||||
* A value of -1 in formatID means that the XID is null.
|
||||
*/
|
||||
/*
|
||||
* Declarations of routines by which RMs call TMs:
|
||||
*/
|
||||
|
||||
int ax_reg(int, XID *, long);
|
||||
int ax_unreg(int, long);
|
||||
/*
|
||||
* XA Switch Data Structure
|
||||
*/
|
||||
#define RMNAMESZ 32 /* length of resource manager name, */
|
||||
/* including the null terminator */
|
||||
#define MAXINFOSIZE 256 /* maximum size in bytes of xa_info strings, */
|
||||
/* including the null terminator */
|
||||
struct xa_switch_t {
|
||||
char name[RMNAMESZ]; /* name of resource manager */
|
||||
long flags; /* resource manager specific options */
|
||||
long version; /* must be 0 */
|
||||
|
||||
int (*xa_open_entry)(char *, int, long); /*xa_open function pointer*/
|
||||
int (*xa_close_entry)(char *, int, long); /*xa_close function pointer*/
|
||||
int (*xa_start_entry)(XID *, int, long); /*xa_start function pointer*/
|
||||
int (*xa_end_entry)(XID *, int, long); /*xa_end function pointer*/
|
||||
int (*xa_rollback_entry)(XID *, int, long);
|
||||
/*xa_rollback function pointer*/
|
||||
int (*xa_prepare_entry)(XID *, int, long); /*xa_prepare function pointer*/
|
||||
int (*xa_commit_entry)(XID *, int, long); /*xa_commit function pointer*/
|
||||
int (*xa_recover_entry)(XID *, long, int, long);
|
||||
/*xa_recover function pointer*/
|
||||
int (*xa_forget_entry)(XID *, int, long); /*xa_forget function pointer*/
|
||||
int (*xa_complete_entry)(int *, int *, int, long);
|
||||
};
|
||||
|
||||
/*
|
||||
* Flag definition for the RM switch
|
||||
*/
|
||||
#define TMNOFLAGS 0x00000000L /* no resource manager features
|
||||
selected */
|
||||
#define TMREGISTER 0x00000001L /* resource manager dynamically
|
||||
registers */
|
||||
#define TMNOMIGRATE 0x00000002L /* resource manager does not support
|
||||
association migration */
|
||||
#define TMUSEASYNC 0x00000004L /* resource manager supports
|
||||
asynchronous operations */
|
||||
/*
|
||||
* Flag definitions for xa_ and ax_ routines
|
||||
*/
|
||||
/* Use TMNOFLAGS, defined above, when not specifying other flags */
|
||||
#define TMASYNC 0x80000000L /* perform routine asynchronously */
|
||||
#define TMONEPHASE 0x40000000L /* caller is using one-phase commit
|
||||
optimisation */
|
||||
#define TMFAIL 0x20000000L /* dissociates caller and marks
|
||||
transaction branch rollback-only */
|
||||
#define TMNOWAIT 0x10000000L /* return if blocking condition
|
||||
exists */
|
||||
#define TMRESUME 0x08000000L /* caller is resuming association
|
||||
with suspended transaction branch */
|
||||
#define TMSUCCESS 0x04000000L /* dissociate caller from transaction
|
||||
branch */
|
||||
#define TMSUSPEND 0x02000000L /* caller is suspending, not ending,
|
||||
association */
|
||||
#define TMSTARTRSCAN 0x01000000L /* start a recovery scan */
|
||||
#define TMENDRSCAN 0x00800000L /* end a recovery scan */
|
||||
#define TMMULTIPLE 0x00400000L /* wait for any asynchronous
|
||||
operation */
|
||||
#define TMJOIN 0x00200000L /* caller is joining existing
|
||||
transaction branch */
|
||||
#define TMMIGRATE 0x00100000L /* caller intends to perform
|
||||
migration */
|
||||
|
||||
/*
|
||||
* ax_() return codes (transaction manager reports to resource manager)
|
||||
*/
|
||||
#define TM_JOIN 2 /* caller is joining existing transaction
|
||||
branch */
|
||||
#define TM_RESUME 1 /* caller is resuming association with
|
||||
suspended transaction branch */
|
||||
#define TM_OK 0 /* normal execution */
|
||||
#define TMER_TMERR -1 /* an error occurred in the transaction
|
||||
manager */
|
||||
#define TMER_INVAL -2 /* invalid arguments were given */
|
||||
#define TMER_PROTO -3 /* routine invoked in an improper context */
|
||||
|
||||
/*
|
||||
* xa_() return codes (resource manager reports to transaction manager)
|
||||
*/
|
||||
#define XA_RBBASE 100 /* The inclusive lower bound of the
|
||||
rollback codes */
|
||||
#define XA_RBROLLBACK XA_RBBASE /* The rollback was caused by an
|
||||
unspecified reason */
|
||||
#define XA_RBCOMMFAIL XA_RBBASE+1 /* The rollback was caused by a
|
||||
communication failure */
|
||||
#define XA_RBDEADLOCK XA_RBBASE+2 /* A deadlock was detected */
|
||||
#define XA_RBINTEGRITY XA_RBBASE+3 /* A condition that violates the
|
||||
integrity of the resources was
|
||||
detected */
|
||||
#define XA_RBOTHER XA_RBBASE+4 /* The resource manager rolled back the
|
||||
transaction for a reason not on this
|
||||
list */
|
||||
#define XA_RBPROTO XA_RBBASE+5 /* A protocal error occurred in the
|
||||
resource manager */
|
||||
#define XA_RBTIMEOUT XA_RBBASE+6 /* A transaction branch took too long*/
|
||||
#define XA_RBTRANSIENT XA_RBBASE+7 /* May retry the transaction branch */
|
||||
#define XA_RBEND XA_RBTRANSIENT /* The inclusive upper bound of the
|
||||
rollback codes */
|
||||
|
||||
#define XA_NOMIGRATE 9 /* resumption must occur where
|
||||
suspension occurred */
|
||||
#define XA_HEURHAZ 8 /* the transaction branch may have been
|
||||
heuristically completed */
|
||||
#define XA_HEURCOM 7 /* the transaction branch has been
|
||||
heuristically comitted */
|
||||
#define XA_HEURRB 6 /* the transaction branch has been
|
||||
heuristically rolled back */
|
||||
#define XA_HEURMIX 5 /* the transaction branch has been
|
||||
heuristically committed and rolled
|
||||
back */
|
||||
#define XA_RETRY 4 /* routine returned with no effect
|
||||
and may be re-issued */
|
||||
#define XA_RDONLY 3 /* the transaction was read-only
|
||||
and has been committed */
|
||||
#define XA_OK 0 /* normal execution */
|
||||
#define XAER_ASYNC -2 /* asynchronous operation already
|
||||
outstanding */
|
||||
#define XAER_RMERR -3 /* a resource manager error occurred
|
||||
in the transaction branch */
|
||||
#define XAER_NOTA -4 /* the XID is not valid */
|
||||
#define XAER_INVAL -5 /* invalid arguments were given */
|
||||
#define XAER_PROTO -6 /* routine invoked in an improper
|
||||
context */
|
||||
#define XAER_RMFAIL -7 /* resource manager unavailable */
|
||||
#define XAER_DUPID -8 /* the XID already exists */
|
||||
#define XAER_OUTSIDE -9 /* resource manager doing work */
|
||||
/* outside global transaction */
|
||||
|
||||
#define XAER_AFFINITY -10 /* XA on RAC: resumption must occur on
|
||||
RAC instance where the transaction
|
||||
branch was created */
|
||||
|
||||
#endif /* ifndef XA_H */
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,143 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2018.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Aspect Error Codes Declaration
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ASP0ASPECT_ERRORS_H
|
||||
#define ASP0ASPECT_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup ASP0ASPECT_ERRORS Aspect Errors
|
||||
@ingroup ASP0ASPECT
|
||||
@{
|
||||
*/
|
||||
|
||||
#define ASP0ASPECT_ERROR_BASE EMH_ASP0ASPECT_error_base
|
||||
|
||||
/**
|
||||
* The following internal error has occurred: %1$. Please report it to your system administrator.
|
||||
*/
|
||||
#define ASP0ASPECT_internal_error ( ASP0ASPECT_ERROR_BASE + 1 )
|
||||
|
||||
/**
|
||||
* The requested aspect scheme type "%1$" cannot be deleted, because it is being referenced by one or more aspects in the current model.
|
||||
*/
|
||||
#define ASP0ASPECT_scheme_is_referenced ( ASP0ASPECT_ERROR_BASE + 2 )
|
||||
|
||||
/**
|
||||
* An unknown expansion semantic "%1$" was requested.
|
||||
*/
|
||||
#define ASP0ASPECT_unknown_expansion_semantic ( ASP0ASPECT_ERROR_BASE + 3 )
|
||||
|
||||
/**
|
||||
* An unknown expand option "%1$" was requested.
|
||||
*/
|
||||
#define ASP0ASPECT_unknown_expand_option ( ASP0ASPECT_ERROR_BASE + 4 )
|
||||
|
||||
/**
|
||||
* An unsupported level of expand value "%1$" was requested.
|
||||
*/
|
||||
#define ASP0ASPECT_unsupported_expand_level ( ASP0ASPECT_ERROR_BASE + 5 )
|
||||
|
||||
/**
|
||||
* A duplicate starting node "%1$" was found in the input list. Please remove it and try again.
|
||||
*/
|
||||
#define ASP0ASPECT_duplicate_starting_node ( ASP0ASPECT_ERROR_BASE + 6 )
|
||||
|
||||
/**
|
||||
* No Aspect Scheme of type "%1$" could be found in the model "%2$". Please set an Aspect Scheme type for which an instance exists in the model.
|
||||
*/
|
||||
#define ASP0ASPECT_scheme_not_in_model ( ASP0ASPECT_ERROR_BASE + 7 )
|
||||
|
||||
/**
|
||||
* Either the input model or the Aspect Scheme is empty. Please change and try again.
|
||||
*/
|
||||
#define ASP0ASPECT_empty_scheme_model_supplied ( ASP0ASPECT_ERROR_BASE + 8 )
|
||||
|
||||
/**
|
||||
* The selected target Aspect "%1$" is not in the same model as the model specified for the "Save As" operation.
|
||||
*/
|
||||
#define ASP0ASPECT_sel_aspect_not_in_spec_model ( ASP0ASPECT_ERROR_BASE + 9 )
|
||||
|
||||
/**
|
||||
* The selected target Aspect "%1$" is not in the same model as the object selected for the "Save As" operation.
|
||||
*/
|
||||
#define ASP0ASPECT_sel_aspect_not_in_source_model ( ASP0ASPECT_ERROR_BASE + 10 )
|
||||
|
||||
/**
|
||||
* The input starting nodes "%1$" and "%2$" do not have the same source model.
|
||||
*/
|
||||
#define ASP0ASPECT_multiple_source_models_for_starting_nodes ( ASP0ASPECT_ERROR_BASE + 11 )
|
||||
|
||||
/**
|
||||
* The mandatory input parameters to perform this operation are missing.
|
||||
*/
|
||||
#define ASP0ASPECT_mandatory_inputs_missing ( ASP0ASPECT_ERROR_BASE + 12 )
|
||||
|
||||
/**
|
||||
* The Aspect category input "%1$" provided to perform this operation is incorrect.
|
||||
*/
|
||||
#define ASP0ASPECT_incorrect_category ( ASP0ASPECT_ERROR_BASE + 13 )
|
||||
|
||||
/**
|
||||
* The Aspect schemes provided to perform this operation are not from the same Application Model.
|
||||
*/
|
||||
#define ASP0ASPECT_input_schemes_not_from_same_model ( ASP0ASPECT_ERROR_BASE + 14 )
|
||||
|
||||
/**
|
||||
* The Aspect schemes and the Application Model provided to perform this operation do not match.
|
||||
*/
|
||||
#define ASP0ASPECT_input_schemes_appmodel_mismatch ( ASP0ASPECT_ERROR_BASE + 15 )
|
||||
|
||||
/**
|
||||
* This version of the operation is no longer supported. Use the latest version of the operation instead. Please refer to the Teamcenter server syslog file for more information.
|
||||
*/
|
||||
#define ASP0ASPECT_unsupport_expand_operation ( ASP0ASPECT_ERROR_BASE + 16 )
|
||||
|
||||
/**
|
||||
* The Engineering object supplied with the Aspect belongs to a different Application Model "%1$".
|
||||
*/
|
||||
#define ASP0ASPECT_engobj_different_appmodel ( ASP0ASPECT_ERROR_BASE + 17 )
|
||||
|
||||
/**
|
||||
* The Aspect "%1$" cannot have NULL parent and category "Child". Please provide a correct category.
|
||||
*/
|
||||
#define ASP0ASPECT_null_parent_category_mismatch ( ASP0ASPECT_ERROR_BASE + 18 )
|
||||
|
||||
/**
|
||||
* The Aspect "%1$" cannot have a non-NULL parent and category "%2$". Please provide a correct category.
|
||||
*/
|
||||
#define ASP0ASPECT_valid_parent_category_mismatch ( ASP0ASPECT_ERROR_BASE + 19 )
|
||||
|
||||
/**
|
||||
* Valid values for the levels to traverse in Aspect Search Expressions are "-1" (all levels), "0" (no traversal and only the input aspects are considered as scope for Engineering object search) and "n" (traversal is done till n'th level).
|
||||
*/
|
||||
#define ASP0ASPECT_invalid_levels_to_traverse ( ASP0ASPECT_ERROR_BASE + 20 )
|
||||
|
||||
/**
|
||||
* All aspect schemes in a single AspectSearchExpressionIn input structure must belong to same application model.
|
||||
*/
|
||||
#define ASP0ASPECT_invalid_schemes_for_createsearchexpression ( ASP0ASPECT_ERROR_BASE + 21 )
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,58 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Dispatch Library Asp0aspect
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libAsp0aspect
|
||||
|
||||
#if !defined(LIBASP0ASPECT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBASP0ASPECT is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use ASP0ASPECT_API, not ASP0ASPECTEXPORT */
|
||||
|
||||
#define ASP0ASPECT_API ASP0ASPECTEXPORT
|
||||
|
||||
#if IPLIB==libAsp0aspect || defined(LIBASP0ASPECT)
|
||||
# if defined(__lint)
|
||||
# define ASP0ASPECTEXPORT __export(Asp0aspect)
|
||||
# define ASP0ASPECTGLOBAL extern __global(Asp0aspect)
|
||||
# define ASP0ASPECTPRIVATE extern __private(Asp0aspect)
|
||||
# elif defined(_WIN32)
|
||||
# define ASP0ASPECTEXPORT __declspec(dllexport)
|
||||
# define ASP0ASPECTGLOBAL extern __declspec(dllexport)
|
||||
# define ASP0ASPECTPRIVATE extern
|
||||
# else
|
||||
# define ASP0ASPECTEXPORT
|
||||
# define ASP0ASPECTGLOBAL extern
|
||||
# define ASP0ASPECTPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define ASP0ASPECTEXPORT __export(Asp0aspect)
|
||||
# define ASP0ASPECTGLOBAL extern __global(Asp0aspect)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define ASP0ASPECTEXPORT __declspec(dllimport)
|
||||
# define ASP0ASPECTGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define ASP0ASPECTEXPORT
|
||||
# define ASP0ASPECTGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,25 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBASP0ASPECT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBASP0ASPECT is not defined
|
||||
#endif
|
||||
|
||||
#undef ASP0ASPECT_API
|
||||
#undef ASP0ASPECTEXPORT
|
||||
#undef ASP0ASPECTGLOBAL
|
||||
#undef ASP0ASPECTPRIVATE
|
@ -0,0 +1,61 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2014
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Attribute and Product Target Management SOA Error Codes Declaration
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ATT0SOAATTTARGETMGMT_ERRORS_H
|
||||
#define ATT0SOAATTTARGETMGMT_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup ATT0SOAATTTARGETMGMT_ERRORS Errors for the SOA operations of the Attribute and Product Target Management solution
|
||||
@ingroup ATT0ATTRTARGETMGMT
|
||||
@{
|
||||
*/
|
||||
|
||||
|
||||
#define ATT0SOAATTTARGETMGMT_ERROR_BASE EMH_ATT0SOAATTRTARGETMGMT_error_base
|
||||
|
||||
/** The Item or Item Revision type cannot be empty to find attribute definitions. Please specify the value in the definition criteria. */
|
||||
#define ATT0SOAATTTARGETMGMT_empty_item_or_revision_type (EMH_ATT0SOAATTRTARGETMGMT_error_base + 1 )
|
||||
|
||||
/** The given Item or Item Revision type "%1$" does not exist. Please specify an existing Item or Item Revision type name in the definition criteria. */
|
||||
#define ATT0SOAATTTARGETMGMT_none_exist_item_or_revision_type (EMH_ATT0SOAATTRTARGETMGMT_error_base + 2 )
|
||||
|
||||
/** The value "%1$" is not a valid Item or Item Revision type. Please specify a valid Item or Item Revision type name in the definition criteria. */
|
||||
#define ATT0SOAATTTARGETMGMT_invalid_item_or_revision_type (EMH_ATT0SOAATTRTARGETMGMT_error_base + 3 )
|
||||
|
||||
/** A valid parent object must be specified. */
|
||||
#define ATT0SOAATTTARGETMGMT_empty_parent_object (EMH_ATT0SOAATTRTARGETMGMT_error_base + 4 )
|
||||
|
||||
/** A value for the measurable attribute parameter must be provided in order to complete the "Delete" operation. */
|
||||
#define ATT0SOAATTTARGETMGMT_empty_input_attribute_list (EMH_ATT0SOAATTRTARGETMGMT_error_base + 5 )
|
||||
|
||||
/** The measurable attribute "%1$" could not be deleted, because it is referenced in the Analysis Request "%2$". */
|
||||
#define ATT0SOAATTTARGETMGMT_attribute_referenced_in_ar (EMH_ATT0SOAATTRTARGETMGMT_error_base + 6 )
|
||||
|
||||
/** The measurable attribute "%1$" could not be deleted, because it is referenced by the context "%2$". */
|
||||
#define ATT0SOAATTTARGETMGMT_attribute_referenced_by_another_context (EMH_ATT0SOAATTRTARGETMGMT_error_base + 7 )
|
||||
|
||||
/** The measurable attribute "%1$" could not be deleted, because it is referenced by the object "%2$".*/
|
||||
#define ATT0SOAATTTARGETMGMT_attribute_referenced_by_another_relation (EMH_ATT0SOAATTRTARGETMGMT_error_base + 8 )
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,253 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2014.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Attribute and Product Target Management Error Codes Declaration
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ATT0ATTRTARGETMGMT_ERRORS_H
|
||||
#define ATT0ATTRTARGETMGMT_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
#include <common/tc_deprecation_macros.h>
|
||||
|
||||
/**
|
||||
@defgroup ATT0ATTRTARGETMGMT_ERRORS Errors for the Attribute and Product Target Management solution
|
||||
@ingroup ATT0ATTRTARGETMGMT
|
||||
@{
|
||||
*/
|
||||
|
||||
#define ATT0ATTRTARGETMGMT_ERROR_BASE EMH_ATT0ATTRTARGETMGMT_error_base
|
||||
|
||||
/** The license "%1$" for the Attribute and Product Target Management module is not available. Please contact the system administrator.*/
|
||||
#define ATT0ATTRTARGETMGMT_validate_license_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 1 )
|
||||
|
||||
/** The attribute type cannot be set, because the attribute definition revision "%1$" was released. */
|
||||
#define ATT0ATTRTARGETMGMT_set_attribute_definition_revision_type_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 2 )
|
||||
|
||||
/** The unit of the attribute definition cannot be set, because the attribute definition revision "%1$" was released. */
|
||||
#define ATT0ATTRTARGETMGMT_set_attribute_defintion_unit_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 3 )
|
||||
|
||||
/** An attribute definition with name "%1$" and unit "%2$" already exists. Please provide a unique attribute definition name and unit.*/
|
||||
#define ATT0ATTRTARGETMGMT_duplicated_attrdef_name_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 4 )
|
||||
|
||||
/** The List of Values for the attribute definition revision "%1$" cannot be set, because the value "%2$" is out of the allowed range for the type "%3$".*/
|
||||
#define ATT0ATTRTARGETMGMT_set_listofvalues_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 5 )
|
||||
|
||||
/** The minimum value "%1$" cannot be set, because it is not type of "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_set_minimum_value_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 6 )
|
||||
|
||||
/** The maximum value "%1$" cannot be set, because it is not type of "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_set_maximum_value_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 7 )
|
||||
|
||||
/** The goal value "%1$" cannot be set, because it is not type of "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_set_goal_value_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 8 )
|
||||
|
||||
/** "%1$" was not saved because "%2$" is not one of the allowed values for the Minimum. Display the Measurable Attributes panel in edit mode to select an allowed value.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_minvalue_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 9 )
|
||||
|
||||
/** "%1$" was not saved because "%2$" is not one of the allowed values for the Maximum. Display the Measurable Attributes panel in edit mode to select an allowed value.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_maxvalue_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 10 )
|
||||
|
||||
/** "%1$" was not saved because "%2$" is not one of the allowed values for the Goal. Display the Measurable Attributes panel in edit mode to select an allowed value.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_goalvalue_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 11 )
|
||||
|
||||
/** The attribute definition revision "%1$" is not enabled.*/
|
||||
#define ATT0ATTRTARGETMGMT_disabled_attrdefrev_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 12 )
|
||||
|
||||
/** The relation cannot be created, because the attribute "%1$" is referenced by "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_create_attr_relation_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 13 )
|
||||
|
||||
/** Measurable attributes cannot be retrieved, because the provided context line "%1$" does not contain any BOM View Revision. */
|
||||
#define ATT0ATTRTARGETMGMT_invalid_context_line ( EMH_ATT0ATTRTARGETMGMT_error_base + 14 )
|
||||
|
||||
/** A valid parent object or line must be provided. */
|
||||
#define ATT0ATTRTARGETMGMT_parent_isnull ( EMH_ATT0ATTRTARGETMGMT_error_base + 15 )
|
||||
|
||||
/** The measurable attribute type "%1$" does not match the attribute definition type "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_not_matched_attrdef_type ( EMH_ATT0ATTRTARGETMGMT_error_base + 16 )
|
||||
|
||||
/** The value "%1$" for the property "%2$" should be greater than or equal to the value "%3$" for the property "%4$".*/
|
||||
#define ATT0ATTRTARGETMGMT_value_less_than_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 17 )
|
||||
|
||||
/** The object type "%1$" is an invalid primary object type for the Input Measurable Attribute instance.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_input_primary_object ( EMH_ATT0ATTRTARGETMGMT_error_base + 18 )
|
||||
|
||||
/** The object type "%1$" is an invalid primary object for the Output Measurable Attribute instance.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_output_primary_object ( EMH_ATT0ATTRTARGETMGMT_error_base + 19 )
|
||||
|
||||
/** The Input Measurable Attribute cannot be attached to multiple parent objects.*/
|
||||
#define ATT0ATTRTARGETMGMT_input_parent_already_exist ( EMH_ATT0ATTRTARGETMGMT_error_base + 20 )
|
||||
|
||||
/** The Output Measurable Attribute cannot be attached to multiple parent objects.*/
|
||||
#define ATT0ATTRTARGETMGMT_output_parent_already_exist ( EMH_ATT0ATTRTARGETMGMT_error_base + 21 )
|
||||
|
||||
/** The Input and Output Measurable Attribute properties are not modifiable.*/
|
||||
#define ATT0ATTRTARGETMGMT_input_output_attribute_not_modifiable ( EMH_ATT0ATTRTARGETMGMT_error_base + 22 )
|
||||
|
||||
/** Measurement properties are not modifiable for Input Measurable Attribute objects.*/
|
||||
#define ATT0ATTRTARGETMGMT_input_attribute_measurement_not_modifiable ( EMH_ATT0ATTRTARGETMGMT_error_base + 23 )
|
||||
|
||||
/** The Input Measurable Attributes are out-of-date. Please run the synchronization to update.*/
|
||||
#define ATT0ATTRTARGETMGMT_input_attribute_measurement_out_of_date ( EMH_ATT0ATTRTARGETMGMT_error_base + 25 )
|
||||
|
||||
/** The target object type "%1$" does not match the source object type "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_type_not_matched ( EMH_ATT0ATTRTARGETMGMT_error_base + 26 )
|
||||
|
||||
/** The validation object "%1$" is not allowed to publish Measurable Attributes, because its current release status is "%2$" and it must be "%3$" in order to publish.*/
|
||||
#define ATT0ATTRTARGETMGMT_release_stauts_not_allowed_publish ( EMH_ATT0ATTRTARGETMGMT_error_base + 27 )
|
||||
|
||||
/** The Goal dataset cannot be attached, because the attribute definition revision "%1$" was released.*/
|
||||
#define ATT0ATTRTARGETMGMT_create_goal_dataset_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 28 )
|
||||
|
||||
/** The Measurement dataset cannot be attached, because the attribute definition revision "%1$" was released.*/
|
||||
#define ATT0ATTRTARGETMGMT_create_measurement_dataset_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 29 )
|
||||
|
||||
/** The Goal dataset cannot be deleted, because the attribute definition revision "%1$" was released.*/
|
||||
#define ATT0ATTRTARGETMGMT_delete_goal_dataset_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 30 )
|
||||
|
||||
/** The Measurement dataset cannot be deleted, because the attribute definition revision "%1$" was released.*/
|
||||
#define ATT0ATTRTARGETMGMT_delete_measurement_dataset_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 31 )
|
||||
|
||||
/** The Measurement value "%1$" must be defined in the List of Values "%2$", because the exhaustive flag is set to true.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_measure_value_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 32 )
|
||||
|
||||
/** "%1$" cannot be modified in the "%2$" state.*/
|
||||
#define ATT0ATTRTARGETMGMT_input_output_parent_modification_not_allowed ( EMH_ATT0ATTRTARGETMGMT_error_base + 33 )
|
||||
|
||||
/** "%1$" was not saved because the operators entered for "Min" and "Max" are inconsistent.*/
|
||||
#define ATT0ATTRTARGETMGMT_min_max_operator_inconsistent ( EMH_ATT0ATTRTARGETMGMT_error_base + 34 )
|
||||
|
||||
/** "%1$" was not saved because the "%2$" operator is missing.*/
|
||||
#define ATT0ATTRTARGETMGMT_missing_operator ( EMH_ATT0ATTRTARGETMGMT_error_base + 35 )
|
||||
|
||||
/** "%1$" was not saved because either the goal is not within the range defined by the "Min" and "Max" values or the "Min" value is greater than the "Max" value.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_goal_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 36 )
|
||||
|
||||
/** "%1$" was not saved because the value "%2$" is missing.*/
|
||||
#define ATT0ATTRTARGETMGMT_missing_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 37 )
|
||||
|
||||
/** "%1$" was not saved because a "Max" can not be defined if +/- set for "Min".*/
|
||||
#define ATT0ATTRTARGETMGMT_max_not_supportted ( EMH_ATT0ATTRTARGETMGMT_error_base + 38 )
|
||||
|
||||
/** Edits to "%1$" were not saved because an Attribute Definition already exists with the same Name and Unit of Measure.*/
|
||||
#define ATT0ATTRTARGETMGMT_update_attrdef_name_error ( EMH_ATT0ATTRTARGETMGMT_error_base + 39 )
|
||||
|
||||
/** @deprecated #ATT0ATTRTARGETMGMT_output_min_max_goal_not_modifiable deprecated in Teamcenter 11.5.
|
||||
|
||||
Edits to the Minimum, Maximum and Goal properties of the "%1$" were not saved because they are not modifiable for output attributes.*/
|
||||
#define ATT0ATTRTARGETMGMT_output_min_max_goal_not_modifiable ( EMH_ATT0ATTRTARGETMGMT_error_base + 40 )
|
||||
TC_DEPRECATED_PREPROCESSOR( "11.5", ATT0ATTRTARGETMGMT_output_min_max_goal_not_modifiable, "" )
|
||||
|
||||
/** Edits to the name were not saved because "%1$" already exists on the parent object "%2$".*/
|
||||
#define ATT0ATTRTARGETMGMT_duplicated_attr_name ( EMH_ATT0ATTRTARGETMGMT_error_base + 41 )
|
||||
|
||||
/** The type name "%1$" is invalid because it is not a sub-type of "%2$". */
|
||||
#define ATT0ATTRTARGETMGMT_invalid_subtype_name ( EMH_ATT0ATTRTARGETMGMT_error_base + 42 )
|
||||
|
||||
/** A valid context must be supplied. */
|
||||
#define ATT0ATTRTARGETMGMT_context_is_null ( EMH_ATT0ATTRTARGETMGMT_error_base + 43 )
|
||||
|
||||
/** The attribute mapping cannot be created or deleted because the related context object "%1$" is not modifiable.*/
|
||||
#define ATT0ATTRTARGETMGMT_create_or_delete_attrmap_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 44 )
|
||||
|
||||
/** The attribute alignment cannot be created or deleted because the related context object "%1$" is not modifiable.*/
|
||||
#define ATT0ATTRTARGETMGMT_create_or_delete_attralignment_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 45 )
|
||||
|
||||
/** "%1$" was not saved because the string entered does not follow the correct format for the Coordinates, eg: 2.3, 5.6, 7.8.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_point_goal_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 46 )
|
||||
|
||||
/** The given object type "%1$" is not supported for complex data. The supported types are "Att0MeasurableAttribute" and "Att0AttributeDefRevision" */
|
||||
#define ATT0ATTRTARGETMGMT_invalid_object_type_complex_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 47 )
|
||||
|
||||
/** No complex data was provided.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_data_complex_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 48 )
|
||||
|
||||
/** The file type "%1$" is invalid for complex data. The supported types are "xlsx" and "xlsm".*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_file_type_complex_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 49 )
|
||||
|
||||
/** The property "%1$" does not exist for objects of type Attribute Table (Att0AttributeTable) and Value Table (Att0ValueTable).*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_prop_complex_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 50 )
|
||||
|
||||
/** The number of rows/colums are different across Min/Max/Goal/Measurement tables. The import of complex data will proceed nevertheless.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_dimension_complex_value_proceed ( EMH_ATT0ATTRTARGETMGMT_error_base + 51 )
|
||||
|
||||
/** The column definition is different across Min/Max/Goal/Measurement tables. The import of complex data will proceed nevertheless.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_definition_complex_value_proceed ( EMH_ATT0ATTRTARGETMGMT_error_base + 52 )
|
||||
|
||||
/** The number of rows/colums are different across Min/Max/Goal/Measurement tables. The import of complex data will not proceed.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_dimension_complex_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 53 )
|
||||
|
||||
/** The Column definition is different across Min/Max/Goal/Measurement tables. The import of complex data will not proceed.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_definition_complex_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 54 )
|
||||
|
||||
/** The point attribute "%1$" cannot be saved, because at least one of the values for (x,y,z) is empty.*/
|
||||
#define ATT0ATTRTARGETMGMT_point_attr_invalid_goal_value ( EMH_ATT0ATTRTARGETMGMT_error_base + 55 )
|
||||
|
||||
/** The parameter "%1$" cannot be cut because it is used in the Verification Request or Study or the properties have been overridden on one or more occurrences of the element in a structure.*/
|
||||
#define ATT0ATTRTARGETMGMT_cannot_cut_parameter ( EMH_ATT0ATTRTARGETMGMT_error_base + 56 )
|
||||
|
||||
/** The data type property is not editable. A new parameter definition with the required data type will need to be created.*/
|
||||
#define ATT0ATTRTARGETMGMT_data_type_not_modifiable ( EMH_ATT0ATTRTARGETMGMT_error_base + 57 )
|
||||
|
||||
/** "%1$" was not cut because parameters are used in verification requests. */
|
||||
#define ATT0ATTRTARGETMGMT_cannot_cut_group ( EMH_ATT0ATTRTARGETMGMT_error_base + 58 )
|
||||
|
||||
/** "%1$" is already set at a higher level in the structure, which will take precedence. */
|
||||
#define ATT0ATTRTARGETMGMT_already_overriden_higher_level ( EMH_ATT0ATTRTARGETMGMT_error_base + 59 )
|
||||
|
||||
/** The system cannot set the direction as "%1$" on the parameter "%2$" having parent "%3$", because it violates the cardinality rule.*/
|
||||
#define ATT0ATTRTARGETMGMT_cannot_set_direction ( EMH_ATT0ATTRTARGETMGMT_error_base + 60 )
|
||||
|
||||
/** A valid parent object must be provided.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_parent ( EMH_ATT0ATTRTARGETMGMT_error_base + 61 )
|
||||
|
||||
/** No write access on the parent object.*/
|
||||
#define ATT0ATTRTARGETMGMT_no_write_access_on_parent ( EMH_ATT0ATTRTARGETMGMT_error_base + 62 )
|
||||
|
||||
/** The direction value "%1$" is invalid.*/
|
||||
#define ATT0ATTRTARGETMGMT_invalid_direction ( EMH_ATT0ATTRTARGETMGMT_error_base + 63 )
|
||||
|
||||
/** "%1$" with overrides cannot be reused. */
|
||||
#define ATT0ATTRTARGETMGMT_single_param_paste_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 64 )
|
||||
|
||||
/** %1$ parameters with overrides cannot be reused. */
|
||||
#define ATT0ATTRTARGETMGMT_referred_param_paste_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 65 )
|
||||
|
||||
/** "%1$" was not added because it already exists in the table. */
|
||||
#define ATT0ATTRTARGETMGMT_single_same_param_paste_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 66 )
|
||||
|
||||
/** %1$ parameters were not added because they exist in the table. */
|
||||
#define ATT0ATTRTARGETMGMT_same_params_paste_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 67 )
|
||||
|
||||
/** "%1$" was not attached because parameter with same name already exists with "%2$". */
|
||||
#define ATT0ATTRTARGETMGMT_param_paste_same_name_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 68 )
|
||||
|
||||
/** %1$ parameters were not attached because parameters with same name already exists with "%2$". */
|
||||
#define ATT0ATTRTARGETMGMT_params_paste_same_name_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 69 )
|
||||
|
||||
/** %1$ out of %2$ parameters were added to "%3$". */
|
||||
#define ATT0ATTRTARGETMGMT_params_few_paste_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 70 )
|
||||
|
||||
/** %1$ parameters were not updated because you do not have permission on "%2$". */
|
||||
#define ATT0ATTRTARGETMGMT_param_edit_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 71 )
|
||||
|
||||
/** "%1$" parameter was not updated because you do not have permission on "%2$". */
|
||||
#define ATT0ATTRTARGETMGMT_single_param_edit_failed ( EMH_ATT0ATTRTARGETMGMT_error_base + 72 )
|
||||
|
||||
/** The parameter "%1$" has already been overridden on the line "%2$" in the structure. */
|
||||
#define ATT0ATTRTARGETMGMT_already_overriden_for_input_line_structure ( EMH_ATT0ATTRTARGETMGMT_error_base + 73 )
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
@ -0,0 +1,108 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the error codes of Bcs0buildconditions
|
||||
|
||||
*/
|
||||
|
||||
#ifndef BCS0BUILDCONDITIONS_ERRORS_H
|
||||
#define BCS0BUILDCONDITIONS_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup BCS0BUILDCONDITIONS_ERRORS Build Conditions errors
|
||||
@ingroup BCS0BUILDCONDITIONS
|
||||
@{
|
||||
*/
|
||||
|
||||
/** Base module errors */
|
||||
#define BCS0BUILDCONDITIONS_ERROR_BASE EMH_BCS0BUILDCONDITIONS_error_base
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because an invalid Configuration Perspective was passed.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_configuration_perspective ( BCS0BUILDCONDITIONS_ERROR_BASE + 1 )
|
||||
|
||||
/**
|
||||
* An invalid Revision Rule was found in the context "%1$".
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_content_revision_rule ( BCS0BUILDCONDITIONS_ERROR_BASE + 2 )
|
||||
|
||||
/**
|
||||
* An invalid container was found in the context "%1$".
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_container ( BCS0BUILDCONDITIONS_ERROR_BASE + 3 )
|
||||
|
||||
/**
|
||||
* An invalid variant criterion was found in the context "%1$".
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_content_variant_criteria ( BCS0BUILDCONDITIONS_ERROR_BASE + 4 )
|
||||
|
||||
/**
|
||||
* An internal error has occurred in the module Build Conditions (Bcs0buildconditions). Please report this error to your system administrator.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_internal_error ( BCS0BUILDCONDITIONS_ERROR_BASE + 5 )
|
||||
|
||||
/**
|
||||
* The page size value cannot be negative.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_negative_page_size ( BCS0BUILDCONDITIONS_ERROR_BASE + 6 )
|
||||
|
||||
/**
|
||||
* The input perspective contains an invalid configurator context.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_context_set_on_perspective ( BCS0BUILDCONDITIONS_ERROR_BASE + 7 )
|
||||
|
||||
/**
|
||||
* The input list of build conditions to skip contains an invalid formula "%1$".
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_build_conditions_to_skip ( BCS0BUILDCONDITIONS_ERROR_BASE + 8 )
|
||||
|
||||
/**
|
||||
* The input list of contents to skip contains an invalid tag.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_contents_to_skip ( BCS0BUILDCONDITIONS_ERROR_BASE + 9 )
|
||||
|
||||
/**
|
||||
* The input content "%1$" of type "%2$" is not a variant configurable object.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_input_content_is_not_variant_configurable ( BCS0BUILDCONDITIONS_ERROR_BASE + 10 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because no input expression is passed.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_input_expressions_size ( BCS0BUILDCONDITIONS_ERROR_BASE + 11 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because an invalid input expression is passed.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_input_expression ( BCS0BUILDCONDITIONS_ERROR_BASE + 12 )
|
||||
|
||||
/**
|
||||
* The input content "%1$" of type "%2$" is not an effectivity configurable object.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_input_content_is_not_effectivity_configurable ( BCS0BUILDCONDITIONS_ERROR_BASE + 13 )
|
||||
|
||||
/**
|
||||
* A negative or zero value for the number of content types is not allowed.
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_invalid_number_of_content_types ( BCS0BUILDCONDITIONS_ERROR_BASE + 14 )
|
||||
|
||||
/**
|
||||
* An operation "%1$" is not overriden on object "%2$" of type "%3$".
|
||||
*/
|
||||
#define BCS0BUILDCONDITIONS_unable_to_construct_search_recipe_object ( BCS0BUILDCONDITIONS_ERROR_BASE + 15 )
|
||||
|
||||
/** @} */
|
||||
#endif
|
@ -0,0 +1,58 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
This file contains the declaration for the Dispatch Library Bcs0buildconditions
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libBcs0buildconditions
|
||||
|
||||
#if !defined(LIBBCS0BUILDCONDITIONS) && !defined(IPLIB)
|
||||
# error IPLIB or LIBBCS0BUILDCONDITIONS is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use BCS0BUILDCONDITIONS_API, not BCS0BUILDCONDITIONSEXPORT */
|
||||
|
||||
#define BCS0BUILDCONDITIONS_API BCS0BUILDCONDITIONSEXPORT
|
||||
|
||||
#if IPLIB==libBcs0buildconditions || defined(LIBBCS0BUILDCONDITIONS)
|
||||
# if defined(__lint)
|
||||
# define BCS0BUILDCONDITIONSEXPORT __export(Bcs0buildconditions)
|
||||
# define BCS0BUILDCONDITIONSGLOBAL extern __global(Bcs0buildconditions)
|
||||
# define BCS0BUILDCONDITIONSPRIVATE extern __private(Bcs0buildconditions)
|
||||
# elif defined(_WIN32)
|
||||
# define BCS0BUILDCONDITIONSEXPORT __declspec(dllexport)
|
||||
# define BCS0BUILDCONDITIONSGLOBAL extern __declspec(dllexport)
|
||||
# define BCS0BUILDCONDITIONSPRIVATE extern
|
||||
# else
|
||||
# define BCS0BUILDCONDITIONSEXPORT
|
||||
# define BCS0BUILDCONDITIONSGLOBAL extern
|
||||
# define BCS0BUILDCONDITIONSPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define BCS0BUILDCONDITIONSEXPORT __export(Bcs0buildconditions)
|
||||
# define BCS0BUILDCONDITIONSGLOBAL extern __global(Bcs0buildconditions)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define BCS0BUILDCONDITIONSEXPORT __declspec(dllimport)
|
||||
# define BCS0BUILDCONDITIONSGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define BCS0BUILDCONDITIONSEXPORT
|
||||
# define BCS0BUILDCONDITIONSGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,26 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBBCS0BUILDCONDITIONS) && !defined(IPLIB)
|
||||
# error IPLIB orLIBBCS0BUILDCONDITIONS is not defined
|
||||
#endif
|
||||
|
||||
#undef BCS0BUILDCONDITIONS_API
|
||||
#undef BCS0BUILDCONDITIONSEXPORT
|
||||
#undef BCS0BUILDCONDITIONSGLOBAL
|
||||
#undef BCS0BUILDCONDITIONSPRIVATE
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Branching and Versioning SOA Error Codes Declaration
|
||||
|
||||
*/
|
||||
|
||||
#ifndef BHV0SOABRANCHANDVER_ERRORS_H
|
||||
#define BHV0SOABRANCHANDVER_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup BHV0SOABRANCHFOUNDATION_ERRORS Errors for the SOA operations of the Branching and Versioning solution
|
||||
@ingroup BHV0SOABRANCHFOUNDATION
|
||||
@{
|
||||
*/
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,562 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Contains declarations of APIs for the 4G Product Master module.
|
||||
*/
|
||||
|
||||
#ifndef BOM0_BOMMANAGEMENT_H
|
||||
#define BOM0_BOMMANAGEMENT_H
|
||||
|
||||
#include <unidefs.h>
|
||||
|
||||
#include <Bom0bommanagement/libbom0bommanagement_exports.h>
|
||||
|
||||
/**
|
||||
@defgroup BOMMGMT 4th Generation Product Master(4GPM)
|
||||
<br/>4G Product Master is the next generation BOM application which provides formal BOM management capabilities in Teamcenter.
|
||||
<br/>It supports features like release of a formal bill of materials by Engineering, Engineering solve requests including order solves and forecast order solves.
|
||||
<br/>This group provides ITKs for part structure management and CAD BOM Alignment.
|
||||
@{
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/**
|
||||
Contains Design Line (ImanItemLine) and configuration context information. This is used in #BOM0_get_aligned_part_occurrences.
|
||||
*/
|
||||
typedef struct BOM0_design_line_input_s
|
||||
{
|
||||
tag_t design_line; /**< The Design Line (ImanItemLine)*/
|
||||
tag_t configuration_context; /**< The Configuration Context object.*/
|
||||
} BOM0_design_line_input_t;
|
||||
|
||||
/**
|
||||
An array of aligned Part Breakdown Element Lines (Bom0PBELine) for Design Line (ImanItemLine). This is used in #BOM0_get_aligned_part_occurrences.
|
||||
<br/> If there are no @p pbe_lines, @p n_pbe_lines will be 0.
|
||||
*/
|
||||
typedef struct BOM0_aligned_pbe_lines_s
|
||||
{
|
||||
tag_t design_line; /**< The Design Line (ImanItemLine) for which @p pbe_lines is retrieved.*/
|
||||
unsigned int n_pbe_lines; /**< Number of objects in @p pbe_lines*/
|
||||
tag_t* pbe_lines; /**< n_pbe_lines List of Part Breakdown Element Line (Bom0PBELine)*/
|
||||
} BOM0_aligned_pbe_lines_t;
|
||||
|
||||
/**
|
||||
Structure of the Part Breakdown Element Line (Bom0PBELine) to align with the given Design Line (ImanItemLine).
|
||||
*/
|
||||
typedef struct BOM0_pbe_line_algnmt_input_s
|
||||
{
|
||||
tag_t pbe_line; /**< The PBE Line (Bom0PBELine).*/
|
||||
tag_t iman_item_line; /**< The Design Line (ImanItemLine).*/
|
||||
} BOM0_pbe_line_algnmt_input_t;
|
||||
|
||||
/**
|
||||
Structure of the Part Breakdown Element Line (Bom0PBELine) and respective alignment object (Bom0AbstractPBEAlignment).
|
||||
*/
|
||||
typedef struct BOM0_pbe_line_algnmt_output_s
|
||||
{
|
||||
tag_t pbe_line; /**< The PBE Line (Bom0PBELine).*/
|
||||
tag_t alignment; /**< The Alignment instance(Bom0AbstractPBEAlignment).*/
|
||||
} BOM0_pbe_line_algnmt_output_t;
|
||||
|
||||
/**
|
||||
Structure of the Part Breakdown Element Line (Bom0PBELine) and intent to unalign the child Part Breakdown Element Lines.
|
||||
*/
|
||||
typedef struct BOM0_pbe_line_unalgnmt_input_s
|
||||
{
|
||||
tag_t pbe_line; /**< The PBE Line (Bom0PBELine).*/
|
||||
logical unalign_child_pbe_lines; /**< If true, the operation unaligns all the child PBE Lines of the input PBE Line. If false, only the input PBE Line is unaligned.*/
|
||||
} BOM0_pbe_line_unalgnmt_input_t;
|
||||
|
||||
/**
|
||||
Structure of Designs (ItemRevision) to align on a given Part (Bom0AbstractPart). It also contains the Primary Design (ItemRevision) to mark on the Part.
|
||||
*/
|
||||
typedef struct BOM0_part_design_algnmt_input_s
|
||||
{
|
||||
tag_t part; /**< The Part (Bom0AbstractPart).*/
|
||||
unsigned int num_designs; /**< Number of Designs to align.*/
|
||||
tag_t* designs; /**< num_designs List of Designs (ItemRevision).*/
|
||||
tag_t primary_design; /**< The Primary Design (ItemRevision) to mark on @p part.*/
|
||||
} BOM0_part_design_algnmt_input_t;
|
||||
|
||||
/**
|
||||
Structure of Designs (ItemRevision) to unalign on the Part (Bom0AbstractPart).
|
||||
*/
|
||||
typedef struct BOM0_part_design_unalgnmt_input_s
|
||||
{
|
||||
tag_t part; /**< The Part (Bom0AbstractPart).*/
|
||||
unsigned int num_designs; /**< Number of Designs to unalign.*/
|
||||
tag_t* designs; /**< num_designs List of Designs (ItemRevision).*/
|
||||
} BOM0_part_design_unalgnmt_input_t;
|
||||
|
||||
/**
|
||||
Structure of Part (Bom0AbstractPart) and the Primary Design (ItemRevision) to mark on the Part.
|
||||
*/
|
||||
typedef struct BOM0_mark_primary_design_input_s
|
||||
{
|
||||
tag_t part; /**< The Part (Bom0AbstractPart).*/
|
||||
tag_t primary_design; /**< The Primary Design (ItemRevision) to mark on @p part.*/
|
||||
} BOM0_mark_primary_design_input_t;
|
||||
|
||||
/**
|
||||
Structure of Design Components (Cpd0DesignElements) to unalign on Part Usage (Bom0AbstractPartUsage).
|
||||
*/
|
||||
typedef struct BOM0_part_usage_alignment_info_s
|
||||
{
|
||||
tag_t part_usage; /**< Part Usage (Bom0AbstractPartUsage)*/
|
||||
unsigned int n_design_elements; /**< Number of Design Components to unalign */
|
||||
tag_t *design_elements; /**< n_design_elements List of Design Components (Cpd0DesignElement) */
|
||||
} BOM0_part_usage_alignment_info_t;
|
||||
|
||||
/**
|
||||
Structure of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) linked to a Design Component (Cpd0DesignElement).
|
||||
<br/> If @p design_component has no aligned Part Usages, @p n_composite_alignment_objects is to be 0.
|
||||
*/
|
||||
typedef struct BOM0_alignment_info_of_design_component_s
|
||||
{
|
||||
tag_t design_component; /**< The Design Component (Cpd0DesignElement).*/
|
||||
unsigned int n_composite_alignment_objects; /**< Number of Composite Part Usage Alignment objects*/
|
||||
tag_t* composite_alignment_objects; /**< n_composite_alignment_objects List of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment)*/
|
||||
} BOM0_alignment_info_of_design_component_t;
|
||||
|
||||
/**
|
||||
Structure of Composite Part Breakdown Element Substitutes (Bom0CompositePBEsubstitutes) linked to a Part Breakdown Element (Bom0AbstractPartBrkdownElem).
|
||||
<br/> If @p part_breakdown_element has no substitutes, @p n_part_breakdown_element_substitutes will be equal to 0.
|
||||
*/
|
||||
typedef struct BOM0_substitute_info_for_part_breakdown_element_s
|
||||
{
|
||||
tag_t part_breakdown_element; /**< The Part Breakdown Element (Bom0AbstractPartBrkdownElem).*/
|
||||
unsigned int n_part_breakdown_element_substitutes; /**< Number of Part Breakdown Element Substitutes. */
|
||||
tag_t* composite_part_breakdown_element_substitutes; /**< n_part_breakdown_element_substitutes List of Composite Part Breakdown Element Substitutes (Bom0CompositePBEsubstitutes). */
|
||||
} BOM0_substitute_info_for_part_breakdown_element_t;
|
||||
|
||||
|
||||
/**
|
||||
Retrieves the part structure window associated with a @p part (Bom0AbstractPart), by looking through its complete breakdown.
|
||||
<br>The Part Breakdown Element Lines ( Bom0PBELine ) are created in pack or unpacked mode as per @p pack_lines value.
|
||||
<br>In packed mode, alignment information will not be populated on Part Breakdown Element Lines even if @p include_aligned_design_info is true.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p part is #NULLTAG or not type or subtype of Bom0AbstractPart.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_part_structure_with_pack_option(
|
||||
const tag_t part, /**< (I) The Part.*/
|
||||
const tag_t configuration_context, /**< (I) The Configuration Context object.*/
|
||||
const logical include_aligned_design_info, /**< (I) Indicates whether aligned design information should be populated with part structure or not.
|
||||
<br/>The alignment information is derived from occurrence alignment of part structure.*/
|
||||
const logical pack_lines, /**< (I) Indicates whether Part Breakdown Element Line ( Bom0PBELine ) should be packed or unpacked.*/
|
||||
tag_t* part_structure_window /**< (O) Part structure window associated with the @p part.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves Part Usage Substitutes (bom0CompositePUSubstitutes) for @p part_usage (Bom0AbstractPartUsage).
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p part_usage is #NULLTAG or is not type or subtype of Bom0AbstractPartUsage.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_part_usage_substitutes(
|
||||
const tag_t part_usage, /**< (I) The Part Usage.*/
|
||||
const tag_t configuration_context, /**< (I) The Configuration Context object.*/
|
||||
unsigned int *n_part_usage_substitutes , /**< (O) The number of found Part Usage Substitutes */
|
||||
tag_t** composite_part_usage_substitutes /**< (OF) n_part_usage_substitutes The found Part Usage Substitutes */
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves all the occurrences for a given @p part_breakdown_element (Bom0AbstractPartBrkdownElem).
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p part_breakdown_element is #NULLTAG, or not type or subtype of Bom0AbstractPartBrkdownElem.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_part_occurrences(
|
||||
const tag_t part_breakdown_element, /**< (I) The Part Breakdown Element(Bom0AbstractPartBrkdownElem).*/
|
||||
unsigned int* n_occurrences, /**< (O) Number of occurrences found.*/
|
||||
tag_t** occurrences /**< (OF) n_occurrences The list of occurrences (Bom0PartOccurrence).*/
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves the alignment object for a given Part Breakdown Element Line ( Bom0PBELine ).
|
||||
<br/>Alignment information is retrieved for unpacked @p pbe_line.
|
||||
<br/>The configuration context from part structure window will be applied on the alignment object.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p pbe_line is #NULLTAG, or not type or subtype of Bom0PBELine.
|
||||
<li>#BOM0BOMMANAGEMENT_packed_line_not_supported if @p pbe_line (or its ancestors) is packed.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_pbe_alignment(
|
||||
const tag_t pbe_line, /**< (I) Part Breakdown Element(PBE) Line( Bom0PBELine ).*/
|
||||
tag_t* alignment /**< (O) Alignment instance( Bom0AbstractPBEAlignment ).*/
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves the list of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) for a given Part Usage (Bom0AbstractPartUsage) configured with a given context.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p part_usage is #NULLTAG or is not type or subtype of Bom0AbstractPartUsage.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_alignment_info_for_part_usage(
|
||||
const tag_t part_usage, /**< (I) The Part Usage.*/
|
||||
const tag_t configuration_context, /**< (I) The Configuration Context object used to configure the output alignment objects.*/
|
||||
unsigned int* n_alignment_info, /**< (O) Number of aligned information found.*/
|
||||
tag_t** alignment_info /**< (OF) n_alignment_info The Alignment objects found.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Aligns the occurrence path of a Part Breakdown Element (PBE) Line (type Bom0PBELine) to absolute occurrence of an Iman Item Line (type ImanItemLine).
|
||||
<br/>To align Part Breakdown Element Lines in bulk, use #BOM0_align_pbe_lines.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p pbe_line is #NULLTAG, or not type or subtype of Bom0PBELine.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p iman_item_line is #NULLTAG, or not type or subtype of ImanItemLine.
|
||||
<li>#BOM0BOMMANAGEMENT_part_structure_already_aligned if the occurrence path of @p pbe_line is already aligned to the absolute occurrence of an ImanItemLine other than @p iman_item_line.
|
||||
<li>#BOM0BOMMANAGEMENT_packed_line_not_supported if @p pbe_line (or its ancestors) or @p iman_item_line (or its ancestors) is packed.
|
||||
<li>#BOM0BOMMANAGEMENT_top_line_for_alignment if @p pbe_line is top line of part structure or @p iman_item_line is top line of design structure
|
||||
</ul>
|
||||
@note If the occurrence path of @p pbe_line is already aligned to the absolute occurrence of the Iman Item Line @p iman_item_line, #ITK_ok is returned, and the existing alignment instance is retrieved.
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_align_pbe_line(
|
||||
const tag_t pbe_line, /**< (I) The PBE Line.*/
|
||||
const tag_t iman_item_line, /**< (I) The Iman Item Line.*/
|
||||
tag_t* alignment /**< (O) The alignment instance (type Bom0PBEAlignment).*/
|
||||
);
|
||||
|
||||
/**
|
||||
Unaligns the occurrence path of a Part Breakdown Element (PBE) Line (type Bom0PBELine) from the absolute occurrence of an Iman Item Line.
|
||||
<br/>To unalign Part Breakdown Element Lines in bulk, use #BOM0_unalign_pbe_lines.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p pbe_line is #NULLTAG, or not type or subtype of Bom0PBELine.
|
||||
<li>#BOM0BOMMANAGEMENT_packed_line_not_supported if @p pbe_line (or its ancestors) is packed.
|
||||
</ul>
|
||||
@note If the occurrence path of a Part Breakdown Element (PBE) Line is not aligned to any absolute occurrence of an Iman Item Line, #ITK_ok is returned.
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_unalign_pbe_line(
|
||||
const tag_t pbe_line /**< (I) The PBE Line.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves the list of Composite Part Usage Alignments objects (Bom0CompositePartUsageAlignment) for a given Design Component (Cpd0DesignElement) configured with a given context.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p design_element is #NULLTAG or is not type or subtype of Cpd0DesignElement.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_alignment_info_for_design_element(
|
||||
const tag_t design_element, /**< (I) Design Component ( Cpd0DesignElement ).*/
|
||||
const tag_t configuration_context, /**< (I) The Configuration Context object used to configure the output alignment objects.*/
|
||||
unsigned int* n_alignment_info, /**< (O) Number of aligned information found.*/
|
||||
tag_t** alignment_info /**< (OF) n_alignment_info The Alignment objects found.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Defines different options available to perform search for the given part.
|
||||
*/
|
||||
typedef enum BOM0_part_where_used_options_e {
|
||||
alternate_part, /**< Part used as Alternate <br/> The retrieved objects would be of type Bom0AbstractPart*/
|
||||
part_usage_substitute, /**< Part used as Part Usage Substitute <br/> The retrieved objects would be of type Bom0AbstractPartUsage*/
|
||||
part_usage, /**< Part Usages referencing the given Part <br/> The retrieved objects would be of type Bom0AbstractPartUsage*/
|
||||
top_level_part_breakdown_elem, /**< Top Level Part Breakdown Elements (PBE) of a Part structure containing given Part
|
||||
where Part structure is not a sub-assembly <br/> The retrieved objects would be of type Bom0AbstractPartBrkdownElem*/
|
||||
part_breakdown_elem, /**< Part used as Child Part in Part Breakdown Elements (PBE) <br/> The retrieved objects would be of type Bom0AbstractPartBrkdownElem*/
|
||||
all_part_usages /**< Part usages referencing the Parts that contains given Part in their structure <br/> The retrieved objects would be of type Bom0AbstractPartUsage*/
|
||||
} BOM0_part_where_used_options_t;
|
||||
|
||||
/**
|
||||
An array of objects using the part (Bom0AbstractPart). This is used in #BOM0_get_part_where_used.
|
||||
<br/> If there are no objects, @p n_objects will be 0.
|
||||
*/
|
||||
typedef struct BOM0_part_where_used_objects
|
||||
{
|
||||
unsigned int n_objects; /**< Number of objects in @p objects*/
|
||||
tag_t* objects; /**< n_objects List of objects*/
|
||||
} BOM0_part_where_used_objects_t;
|
||||
|
||||
/**
|
||||
Searches where the @p part (Bom0AbstractPart) is used as per the provided options @p requested_options.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if the @p part is #NULLTAG, or not type or subtype of Bom0AbstractPart.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_part_where_used_option if any entry in @p requested_options is invalid.
|
||||
</ul>
|
||||
|
||||
@note If search is to be performed for all options, @p requested_options should be NULL and @p n_requested_options should be 0.
|
||||
<br/>In this case, the order of results is same as #BOM0_part_where_used_options_t and its size is 6.
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_part_where_used(
|
||||
const tag_t part, /**< (I) The input Part on which "Where Used" is to be performed.*/
|
||||
const tag_t configuration_context, /**< (I) The configuration context used to configure the results.*/
|
||||
const unsigned int n_requested_options, /**< (I) Number of options in @p requested_options.*/
|
||||
const BOM0_part_where_used_options_t *requested_options, /**< (I) n_requested_options List of options to restrict how the search is performed.*/
|
||||
BOM0_part_where_used_objects_t **results_for_each_option /**< (OF) n_requested_options Array representing results for each input option requested.
|
||||
<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves the list of aligned Part Occurrences (Bom0PBELine) for given Design Lines (ImanItemLine).
|
||||
<br/><br/>The part structure window associated with the found Part Occurrences (Bom0PBELine) needs to be closed as appropriate.
|
||||
<br/>Example
|
||||
@code
|
||||
// Create input
|
||||
...
|
||||
|
||||
scoped_smptr< BOM0_aligned_pbe_lines_t > aligned_pbe_lines;
|
||||
ResultStatus status = BOM0_get_aligned_part_occurrences( n_design_lines, design_lines, &aligned_pbe_lines );
|
||||
// Usage of output
|
||||
...
|
||||
|
||||
// Extract the corresponding part structure window from aligned_pbe_lines and close the window.
|
||||
// Here window for first aligned pbe line found for the first design line is fetched and closed.
|
||||
tag_t window = NULLTAG;
|
||||
status = BOM_line_ask_window( aligned_pbe_lines[0].pbe_lines[0], &window );
|
||||
status = BOM_close_window( window );
|
||||
|
||||
// Here we are using scoped_smptr thus memory will be dellocated once pointer goes out of scope.
|
||||
// If scoped_smptr is not used, call MEM_free on the retrieved container aligned_pbe_lines.
|
||||
@endcode
|
||||
|
||||
@note If the found PBE Lines belongs to more than one structure, more than one windows will be created in the ITK.
|
||||
In such case, extract windows for all the PBE Lines and close all the windows.
|
||||
|
||||
@see BOM_line_ask_window
|
||||
<br/>BOM_close_window
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any member of @p design_lines is #NULLTAG or not type or subtype of ImanItemLine.
|
||||
<li>#BOM0BOMMANAGEMENT_packed_line_not_supported if any of design line in @p design_lines (or its ancestors) is packed.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context in @p design_lines is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
</ul>
|
||||
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_aligned_part_occurrences(
|
||||
const unsigned int n_design_lines, /**< (I) Number of Design Lines.*/
|
||||
const BOM0_design_line_input_t* design_lines, /**< (I) n_design_lines Design Lines (ImanItemLine) and configuration context to be used for finding Part Breakdown Element Lines.*/
|
||||
BOM0_aligned_pbe_lines_t** aligned_pbe_lines /**< (OF) n_design_lines The Part Breakdown Element Lines( Bom0PBELine ) retrieved for each input Design Line.
|
||||
<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Creates an alignment for each input structure between its Part (Bom0AbstractPart) and the list of Designs (ItemRevision).
|
||||
<br/>POM_object objects cannot be aligned.
|
||||
<br/>For each input structure, its primary Design will be marked as the primary Design of the provided Part.
|
||||
<br/>For each input structure, if the given primary Design is not in the list of Designs to align and also it is not already aligned with the Part, it will be aligned with the Part and marked as a primary Design on the Part.
|
||||
<br/>If none of the aligned Design exists as a primary Design and no primary Design is given as input, the first Design to be aligned will be marked as the primary Design.
|
||||
|
||||
@note If the alignment creation fails between the Part and any Designs, the complete transaction for all the input structures is rolled back and no Design is aligned.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any of the Part or if any of the Designs in @p alignments is #NULLTAG.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the Part or if any of the Designs in @p alignments is not of type or subtype of Bom0AbstractPart or ItemRevision respectively.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the primary Design in @p alignments is not of type or subtype of ItemRevision.
|
||||
<li>#BOM0BOMMANAGEMENT_already_related if any of the Part and any of the Designs in @p alignments are already aligned.
|
||||
<li>#BOM0BOMMANAGEMENT_no_input_specified if @p alignments is NULL or @p n_alignments is 0.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_align_part_and_designs(
|
||||
const unsigned int n_alignments, /**< (I) Number of Alignment inputs (BOM0_part_design_algnmt_input_t) for performing the alignment.*/
|
||||
const BOM0_part_design_algnmt_input_t* alignments /**< (I) n_alignments Parts, Designs and primary Design to mark on the Part for performing the alignment.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Unaligns Parts (Bom0AbstractPart) and all of the Designs (ItemRevision) in @p unalignments.
|
||||
<br/>If the input Design is also primary Design for the given Part, it will be unset from the Part.
|
||||
|
||||
@note If any error occurs while unaligning, the complete transaction for all the input structures is rolled back and no Design is unaligned.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any member of @p unalignments is #NULLTAG.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the Part or if any of the Designs in @p unalignments is not of type or subtype of Bom0AbstractPart or ItemRevision respectively.
|
||||
<li>#BOM0BOMMANAGEMENT_bom_design_not_aligned if any of the Part and any of the Designs in @p unalignments are not aligned.
|
||||
<li>#BOM0BOMMANAGEMENT_no_input_specified if @p unalignments is NULL or @p n_unalignments is 0.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_unalign_part_and_designs(
|
||||
const unsigned int n_unalignments, /**< (I) Number of Unalignment inputs (BOM0_part_design_unalgnmt_input_t) for performing the unalignment.*/
|
||||
const BOM0_part_design_unalgnmt_input_t* unalignments /**< (I) n_unalignments Parts and list of Designs for performing the unalignment.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Marks a Design (ItemRevision) as the primary Design on the Part (Bom0AbstractPart) in @p mark_primary_designs.
|
||||
<br/>The Design cannot be marked as the primary Design if there is no prior aligned relation between the Part (Bom0AbstractPart) and the Design (ItemRevision).
|
||||
|
||||
@note If any error occurs while performing mark primary Design on the Part, the complete transaction for all the input structures is rolled back and no primary Design is marked on the Part.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any member of @p mark_primary_designs is #NULLTAG.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the Part or if any of the Design in @p mark_primary_designs is not of type or subtype of Bom0AbstractPart or ItemRevision respectively.
|
||||
<li>#BOM0BOMMANAGEMENT_bom_design_not_aligned if any of the Part and any of the Design in @p mark_primary_designs are not aligned.
|
||||
<li>#BOM0BOMMANAGEMENT_no_input_specified if @p mark_primary_designs is NULL or @p n_mark_primary_designs is 0.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_mark_primary_design(
|
||||
const unsigned int n_mark_primary_designs, /**< (I) Number of Mark Primary Design inputs (BOM0_mark_primary_design_input_t) for performing mark primary design on the Part.*/
|
||||
const BOM0_mark_primary_design_input_t* mark_primary_designs /**< (I) n_mark_primary_designs Part and Design for performing mark primary design on the Part.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Creates an alignment for each input structure between its occurrence path of Part Breakdown Element Line (Bom0PBELine) and the absolute occurrence of the Design Line (ImanItemLine).
|
||||
<br/>To align a single Part Breakdown Element Line, use #BOM0_align_pbe_line.
|
||||
|
||||
@note If the alignment creation fails between the Part Breakdown Element Line and the Design Line, the complete transaction for all the input structures is rolled back and no Part Breakdown Line is aligned.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any of the Part Breakdown Element Line or if any of the Design Line in @p pbe_line_algnmt is #NULLTAG.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the Part Breakdown Element Line in @p pbe_line_algnmt is not of type or subtype of Bom0PBELine.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the Design Line in @p pbe_line_algnmt is not of type or subtype of ImanItemLine.
|
||||
<li>#BOM0BOMMANAGEMENT_part_structure_already_aligned if any of the Part Breakdown Element Line in @p pbe_line_algnmt is already aligned to the absolute occurrence of an ImanItemLine other than Design Line in @p pbe_line_algnmt_input.
|
||||
<li>#BOM0BOMMANAGEMENT_packed_line_not_supported if any of the Part Breakdown Element Line (or its ancestors) or the Design Line (or its ancestors) in @p pbe_line_algnmt is packed.
|
||||
<li>#BOM0BOMMANAGEMENT_top_line_for_alignment if any of the Part Breakdown Element Line in @p pbe_line_algnmt is the top line of part structure.
|
||||
<li>#BOM0BOMMANAGEMENT_top_line_for_alignment if any of the Design Line in @p pbe_line_algnmt is the top line of design structure.
|
||||
<li>#BOM0BOMMANAGEMENT_no_input_specified if @p pbe_line_algnmt is NULL or @p n_pbe_line_algnmt is 0.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_align_pbe_lines(
|
||||
const unsigned int n_pbe_line_algnmt, /**< (I) Number of PBE Line alignment inputs (BOM0_pbe_line_algnmt_input_t) for performing the alignment.*/
|
||||
const BOM0_pbe_line_algnmt_input_t *pbe_line_algnmt, /**< (I) n_pbe_line_algnmt PBE Line (Bom0PBELine) and Design Line (ImanItemLine) for performing the alignment.*/
|
||||
BOM0_pbe_line_algnmt_output_t **aligned_pbe_line /**< (OF) n_pbe_line_algnmt PBE Line (Bom0PBELine) and alignment object for each input PBE Line.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Unaligns the Part Breakdown Element Line in @p pbe_line_unalgnmt from the Design Line of design structure it is aligned.
|
||||
<br/>To unalign a single Part Breakdown Element Line, use #BOM0_unalign_pbe_line.
|
||||
|
||||
@note If the unalignment fails for any of the Part Breakdown Element Line, the complete transaction for all the input structures is rolled back and no Part Breakdown Element Line is unaligned.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any of the Part Breakdown Element Line in @p pbe_line_unalgnmt is #NULLTAG.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_type_of_input if any of the Part Breakdown Element Line in @p pbe_line_unalgnmt is not of type or subtype of Bom0PBELine.
|
||||
<li>#BOM0BOMMANAGEMENT_packed_line_not_supported if any of the Part Breakdown Element Line (or its ancestors) in @p pbe_line_unalgnmt is packed.
|
||||
<li>#BOM0BOMMANAGEMENT_no_input_specified if @p pbe_line_unalgnmt is NULL or @p n_pbe_line_unalgnmt is 0.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_unalign_pbe_lines(
|
||||
const unsigned int n_pbe_line_unalgnmt, /**< (I) Number of PBE Line unalignment inputs (BOM0_pbe_line_unalgnmt_input_t) for performing the unalignment.*/
|
||||
const BOM0_pbe_line_unalgnmt_input_t *pbe_line_unalgnmt /**< (I) n_pbe_line_unalgnmt PBE Line (Bom0PBELine) and intent to unalign child PBE Lines while performing the unalignment.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Unaligns the part usage (Bom0AbstractPartUsage) from given design elements (Cpd0DesignElements).
|
||||
@note If any error occurs while unaligning, the complete transaction is rolled back and no Design Component will be unaligned.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any of Part Usage or any Design Component in the structures is #NULLTAG or not a type or subtype of Bom0AbstractPartUsage or Cpd0DesignElement respectively.
|
||||
<li>#BOM0BOMMANAGEMENT_no_input_specified if @p part_usage_alignments is NULL or @p n_part_usage_alignments is 0.
|
||||
<li>#BOM0BOMMANAGEMENT_bom_design_not_aligned if any Design Component in a structure is not aligned to the provided Part Usage.
|
||||
</ul>
|
||||
*/
|
||||
BOM0BOMMANAGEMENT_API int BOM0_unalign_part_usage_design_elements(
|
||||
const unsigned int n_part_usage_alignments, /**< (I) Number of structures for unalignments. */
|
||||
const BOM0_part_usage_alignment_info_t *part_usage_alignments /**< (I) n_part_usage_alignments The structures for unalignments.*/
|
||||
);
|
||||
|
||||
/**
|
||||
List of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) linked to a Part Usage (Bom0AbstractPartUsage).
|
||||
This is used in #BOM0_get_alignment_info_for_part_usages.
|
||||
<br/> If there are no @p composite_alignment_objects, @p n_composite_alignment_objects will be 0.
|
||||
*/
|
||||
typedef struct BOM0_alignment_info_of_part_usage_s
|
||||
{
|
||||
tag_t part_usage; /**< The Part Usage (Bom0AbstractPartUsage).*/
|
||||
unsigned int n_composite_alignment_objects; /**< Number of Composite Part Usage Alignment objects*/
|
||||
tag_t* composite_alignment_objects; /**< n_composite_alignment_objects List of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment)*/
|
||||
} BOM0_alignment_info_of_part_usage_t;
|
||||
|
||||
/**
|
||||
Retrieves the list of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) for given Part Usages (Bom0AbstractPartUsage) configured with a given context.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any member of @p part_usages is #NULLTAG or not type or subtype of Bom0AbstractPartUsage.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_alignment_info_for_part_usages(
|
||||
const unsigned int n_part_usages, /**< (I) Number of Part Usages.*/
|
||||
const tag_t* part_usages, /**< (I) n_part_usages Part Usages (Bom0AbstractPartUsage) whose alignments need to be retrieved.*/
|
||||
const tag_t configuration_context, /**< (I) The configuration context used to configure the results.*/
|
||||
BOM0_alignment_info_of_part_usage_t** alignments_info /**< (OF) n_part_usages The Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) retrieved for each input Part Usage.
|
||||
<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Retrieves the list of Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) for given Design Components (Cpd0DesignElement) configured with a given context.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any member of @p design_components is #NULLTAG.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_alignment_info_for_design_components(
|
||||
const unsigned int n_design_components, /**< (I) Number of Design Components.*/
|
||||
const tag_t* design_components, /**< (I) n_design_components Design Components (Cpd0DesignElement) whose alignments need to be retrieved.*/
|
||||
const tag_t configuration_context, /**< (I) The configuration context used to configure the results.*/
|
||||
BOM0_alignment_info_of_design_component_t** alignments_info /**< (OF) n_design_components The Composite Part Usage Alignment objects (Bom0CompositePartUsageAlignment) retrieved for each input Design Components.
|
||||
<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves Part Breakdown Element Substitutes (Bom0CompositePBESubstitutes) for given Part Breakdown Elements (Bom0AbstractPartBrkdownElem) configured with a given context.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#COLLABCTX_invalid_ccobject if @p configuration_context is #NULLTAG, or not type or subtype of ConfigurationContext.
|
||||
<li>#BOM0BOMMANAGEMENT_invalid_input if any member of @p part_breakdown_elements is #NULLTAG or is not type or subtype of Bom0AbstractPartBrkdownElem.
|
||||
</ul>
|
||||
*/
|
||||
extern BOM0BOMMANAGEMENT_API int BOM0_get_substitutes_for_part_breakdown_elements(
|
||||
const unsigned int n_part_breakdown_elements, /**< (I) Number of Part Breakdown Elements.*/
|
||||
const tag_t* part_breakdown_elements, /**< (I) n_part_breakdown_elements The Part Breakdown Elements whose substitutes need to be retrieved.*/
|
||||
const tag_t configuration_context, /**< (I) The Configuration Context object.*/
|
||||
BOM0_substitute_info_for_part_breakdown_element_s ** substitute_info /**< (OF) n_part_breakdown_elements The Composite Part Breakdown Element Substitute objects (Bom0CompositePBESubstitutes) retrieved for each input Part Breakdown Element.
|
||||
<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#include <Bom0bommanagement/libbom0bommanagement_undef.h>
|
||||
#endif
|
@ -0,0 +1,292 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
#===============================================================================
|
||||
# Copyright 2014.
|
||||
# Siemens Product Lifecycle Management Software Inc.
|
||||
# All Rights Reserved.
|
||||
#===============================================================================
|
||||
# Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/**
|
||||
@file
|
||||
Product Master Error Codes Declaration
|
||||
*/
|
||||
|
||||
#ifndef BOM0BOMMANAGEMENT_ERRORS_H
|
||||
#define BOM0BOMMANAGEMENT_ERRORS_H
|
||||
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup BOMMGMT_ERRORS Errors
|
||||
@ingroup BOMMGMT
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* An internal error has occurred in the Product Master module: %1$. Report this error to your system administrator.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_internal_error (EMH_BOM0BOMMANAGEMENT_error_base + 1)
|
||||
|
||||
/**
|
||||
* "%1$" cannot be revised, because "%2$" does not have a status.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_object_has_no_status (EMH_BOM0BOMMANAGEMENT_error_base + 2)
|
||||
|
||||
/**
|
||||
* An object of type "%1$" already exists with properties "%2$". Specify at least one unique value.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_inst_violates_unique (EMH_BOM0BOMMANAGEMENT_error_base + 3)
|
||||
|
||||
/**
|
||||
* The creation of a "Part Breakdown Element" object has failed because the "Parent Part" and the "Child Part" cannot be the same.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_pbe_same_parent_child (EMH_BOM0BOMMANAGEMENT_error_base + 4)
|
||||
|
||||
/**
|
||||
* "%1$" is not related to "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_no_relation_exists (EMH_BOM0BOMMANAGEMENT_error_base + 5)
|
||||
|
||||
/**
|
||||
* The following input is invalid: %1$.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_input (EMH_BOM0BOMMANAGEMENT_error_base + 6)
|
||||
|
||||
/**
|
||||
* The selected object "%1$" of type "%2$" and the target object "%3$" of type "%4$" are already related.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_already_related (EMH_BOM0BOMMANAGEMENT_error_base + 9)
|
||||
|
||||
/**
|
||||
* New structure cannot be carried over to "%1$", because it already contains a structure.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_has_structure (EMH_BOM0BOMMANAGEMENT_error_base + 11)
|
||||
|
||||
/**
|
||||
* Part cannot be replaced if objects have different parts.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_different_part (EMH_BOM0BOMMANAGEMENT_error_base + 12)
|
||||
|
||||
/**
|
||||
* "%1$" and "%2$" are revisions of the same Part.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_same_part (EMH_BOM0BOMMANAGEMENT_error_base + 13)
|
||||
|
||||
/**
|
||||
* The Part on the Part Usage "%1$" cannot be replaced, because it does not contain any Part.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_replace_part_pu_without_part (EMH_BOM0BOMMANAGEMENT_error_base + 14)
|
||||
|
||||
/**
|
||||
* An invalid option is specified for "Part Where Used".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_part_where_used_option (EMH_BOM0BOMMANAGEMENT_error_base + 16)
|
||||
|
||||
/**
|
||||
* An error has occurred because a recursion is detected. The parent Part "%1$" is a descendent of the child Part "%2$" in the "Part Breakdown Element" tree.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_recursion_is_detected (EMH_BOM0BOMMANAGEMENT_error_base + 17)
|
||||
|
||||
/**
|
||||
* The following objects cannot be released, because no revision of the associated part for each object is in the released state nor present as the target object in the current workflow process: %1$.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_associated_part_not_released_for_pu (EMH_BOM0BOMMANAGEMENT_error_base + 18)
|
||||
|
||||
/**
|
||||
* The current user does not have the "%1$" access privilege on "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_no_access_privilege (EMH_BOM0BOMMANAGEMENT_error_base + 19)
|
||||
|
||||
/**
|
||||
* "%1$" is not modifiable.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_object_not_modifiable (EMH_BOM0BOMMANAGEMENT_error_base + 20)
|
||||
|
||||
/**
|
||||
* No Part could be found using the "%1$" Revision Rule.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_part_not_found (EMH_BOM0BOMMANAGEMENT_error_base + 21)
|
||||
|
||||
/**
|
||||
* The Part Structure for Part "%1$" needs to be unpacked.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_part_structure_not_unpacked (EMH_BOM0BOMMANAGEMENT_error_base + 22)
|
||||
|
||||
/**
|
||||
* The quantity cannot be decreased for "%1$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_cannot_decrease_quantity (EMH_BOM0BOMMANAGEMENT_error_base + 24)
|
||||
|
||||
/**
|
||||
* The following selected objects should belong to the same model as the target reference "%2$": %1$.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_model_mismatch_error (EMH_BOM0BOMMANAGEMENT_error_base + 25)
|
||||
|
||||
/**
|
||||
* "%1$" is not aligned to "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_bom_design_not_aligned (EMH_BOM0BOMMANAGEMENT_error_base + 26)
|
||||
|
||||
/**
|
||||
* The value for the preference "%1$" is invalid.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_alignment_preference_value (EMH_BOM0BOMMANAGEMENT_error_base + 31)
|
||||
|
||||
/**
|
||||
* "%1$" is already aligned with "%2$" in context of "%3$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_part_structure_already_aligned (EMH_BOM0BOMMANAGEMENT_error_base + 32)
|
||||
|
||||
/**
|
||||
* The business key for "%1$" already exists for "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_partusage_duplicate_business_key (EMH_BOM0BOMMANAGEMENT_error_base + 33)
|
||||
|
||||
/**
|
||||
* The object "%1$" is not supported because it is packed.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_packed_line_not_supported (EMH_BOM0BOMMANAGEMENT_error_base + 34)
|
||||
|
||||
/**
|
||||
* No part revision is configured for the top line with the selected configuration context.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_no_part_revision_for_topline (EMH_BOM0BOMMANAGEMENT_error_base + 35)
|
||||
|
||||
/**
|
||||
* The following objects cannot be released, because, for each object, no revision of the parent part or child part is in the released state nor present as the target object in the current workflow process: %1$.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_associated_part_not_released_for_pbe (EMH_BOM0BOMMANAGEMENT_error_base + 36)
|
||||
|
||||
/**
|
||||
* The Part Occurrence alignment operation cannot be performed because duplicate Part Occurrences are specified.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_duplicate_pbe_line_for_alignment (EMH_BOM0BOMMANAGEMENT_error_base + 37)
|
||||
|
||||
/**
|
||||
* "%1$" cannot be deleted because it is aligned.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_instance_referenced_by_alignment (EMH_BOM0BOMMANAGEMENT_error_base + 38)
|
||||
|
||||
/**
|
||||
* An alignment cannot be performed with the top line of a Part Structure or a Design Structure.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_top_line_for_alignment (EMH_BOM0BOMMANAGEMENT_error_base + 39)
|
||||
|
||||
/**
|
||||
* All objects of type "%1$" cannot be removed from "%2$". Instead, perform the delete operation on "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_cannot_remove_de (EMH_BOM0BOMMANAGEMENT_error_base + 40)
|
||||
|
||||
/**
|
||||
* The following selected object should be of type, or subtype of "%1$": %2$.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_type_of_input (EMH_BOM0BOMMANAGEMENT_error_base + 41)
|
||||
|
||||
/**
|
||||
* No input is specified.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_no_input_specified (EMH_BOM0BOMMANAGEMENT_error_base + 42)
|
||||
|
||||
/**
|
||||
* Only 1 Part and 1 Item Revision should be attached to the workflow.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_incorrect_attachments_to_workflow (EMH_BOM0BOMMANAGEMENT_error_base + 43)
|
||||
|
||||
/**
|
||||
* The Part "%1$" cannot be added as substitute because it is present as a primary part on "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_part_for_substitute (EMH_BOM0BOMMANAGEMENT_error_base + 44)
|
||||
|
||||
/**
|
||||
* The Part "%1$" cannot be set as primary part on "%2$" because it is set as a substitute.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_part_existing_as_substitute (EMH_BOM0BOMMANAGEMENT_error_base + 45)
|
||||
|
||||
/**
|
||||
* The Part "%1$" cannot be replaced on "%2$", because it is not configured for the given Configuration Context.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_configured_part_revision_not_found_for_replace (EMH_BOM0BOMMANAGEMENT_error_base + 46)
|
||||
|
||||
/**
|
||||
* The top line "%1$" of a Part Structure cannot be deleted.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_topline_cannot_be_deleted (EMH_BOM0BOMMANAGEMENT_error_base + 47)
|
||||
|
||||
/**
|
||||
* The Design Line %1$" cannot be deleted in a Part Structure view.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_designline_cannot_be_deleted (EMH_BOM0BOMMANAGEMENT_error_base + 48)
|
||||
|
||||
/**
|
||||
* The search cannot be performed for both Composite and Non-Composite objects at the same time.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_mixed_type_searches_not_supported (EMH_BOM0BOMMANAGEMENT_error_base + 49)
|
||||
|
||||
/**
|
||||
* The sort attribute "%1$" is not selected in the search query.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_sort_attribute_not_selected (EMH_BOM0BOMMANAGEMENT_error_base + 50)
|
||||
|
||||
/**
|
||||
* The return type "%1$" is invalid for the search.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_return_type (EMH_BOM0BOMMANAGEMENT_error_base + 51)
|
||||
|
||||
/**
|
||||
* The property "%1$" is not available for Logical Object search on "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_invalid_logical_object_property_for_search (EMH_BOM0BOMMANAGEMENT_error_base + 52)
|
||||
|
||||
/**
|
||||
* The column information required to perform a configured search for column "%1$" is not set.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_configured_search_missing_required_column (EMH_BOM0BOMMANAGEMENT_error_base + 53)
|
||||
|
||||
/**
|
||||
* "%1$" does not allow this alignment because the alignment mode is set to "%2$".
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_pu_alignment_wrong_design_type (EMH_BOM0BOMMANAGEMENT_error_base + 54)
|
||||
|
||||
/**
|
||||
* The object "%1$" cannot be compared, because it contains subsets having different logical objects. Please select individual subset elements to compare.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_recipe_returntype_not_same (EMH_BOM0BOMMANAGEMENT_error_base + 55)
|
||||
|
||||
/**
|
||||
* The effectivity of "%1$" ( %2$ ) is not completely within the range of effectivity of "%3$" ( %4$ ).
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_effectivity_conformance_check_failed (EMH_BOM0BOMMANAGEMENT_error_base + 56)
|
||||
|
||||
/**
|
||||
* "%1$" was not replaced because it already exists.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_same_part_for_replace (EMH_BOM0BOMMANAGEMENT_error_base + 57)
|
||||
|
||||
/**
|
||||
* "%1$" was replaced but Substitutes could not be removed.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_substitutes_not_removed_on_replace (EMH_BOM0BOMMANAGEMENT_error_base + 58)
|
||||
|
||||
/**
|
||||
* "%1$" was replaced but Designs could not be removed.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_alignments_not_removed_on_replace (EMH_BOM0BOMMANAGEMENT_error_base + 59)
|
||||
|
||||
/**
|
||||
* Part occurrence for "%1$" cannot be created, because unit of measure is not configuerd to have multiple occurrences.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_multiple_partoccurrences_not_allowed (EMH_BOM0BOMMANAGEMENT_error_base + 60)
|
||||
|
||||
/**
|
||||
* The selection was not submitted.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_single_object_cannot_be_submitted_in_workflow (EMH_BOM0BOMMANAGEMENT_error_base + 61)
|
||||
|
||||
/**
|
||||
* The selections were not submitted.
|
||||
*/
|
||||
#define BOM0BOMMANAGEMENT_multiple_objects_cannot_be_submitted_in_workflow (EMH_BOM0BOMMANAGEMENT_error_base + 62)
|
||||
|
||||
/** @} */
|
||||
#endif
|
@ -0,0 +1,58 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Dispatch Library Bom0bommanagement
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libBom0bommanagement
|
||||
|
||||
#if !defined(LIBBOM0BOMMANAGEMENT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBBOM0BOMMANAGEMENT is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use BOM0BOMMANAGEMENT_API, not BOM0BOMMANAGEMENTEXPORT */
|
||||
|
||||
#define BOM0BOMMANAGEMENT_API BOM0BOMMANAGEMENTEXPORT
|
||||
|
||||
#if IPLIB==libBom0bommanagement || defined(LIBBOM0BOMMANAGEMENT)
|
||||
# if defined(__lint)
|
||||
# define BOM0BOMMANAGEMENTEXPORT __export(Bom0bommanagement)
|
||||
# define BOM0BOMMANAGEMENTGLOBAL extern __global(Bom0bommanagement)
|
||||
# define BOM0BOMMANAGEMENTPRIVATE extern __private(Bom0bommanagement)
|
||||
# elif defined(_WIN32)
|
||||
# define BOM0BOMMANAGEMENTEXPORT __declspec(dllexport)
|
||||
# define BOM0BOMMANAGEMENTGLOBAL extern __declspec(dllexport)
|
||||
# define BOM0BOMMANAGEMENTPRIVATE extern
|
||||
# else
|
||||
# define BOM0BOMMANAGEMENTEXPORT
|
||||
# define BOM0BOMMANAGEMENTGLOBAL extern
|
||||
# define BOM0BOMMANAGEMENTPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define BOM0BOMMANAGEMENTEXPORT __export(Bom0bommanagement)
|
||||
# define BOM0BOMMANAGEMENTGLOBAL extern __global(Bom0bommanagement)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define BOM0BOMMANAGEMENTEXPORT __declspec(dllimport)
|
||||
# define BOM0BOMMANAGEMENTGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define BOM0BOMMANAGEMENTEXPORT
|
||||
# define BOM0BOMMANAGEMENTGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,25 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBBOM0BOMMANAGEMENT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBBOM0BOMMANAGEMENT is not defined
|
||||
#endif
|
||||
|
||||
#undef BOM0BOMMANAGEMENT_API
|
||||
#undef BOM0BOMMANAGEMENTEXPORT
|
||||
#undef BOM0BOMMANAGEMENTGLOBAL
|
||||
#undef BOM0BOMMANAGEMENTPRIVATE
|
@ -0,0 +1,38 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
#===============================================================================
|
||||
# Copyright 2017.
|
||||
# Siemens Product Lifecycle Management Software Inc.
|
||||
# All Rights Reserved.
|
||||
#===============================================================================
|
||||
# Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
Alignment of 4G PM with design PS represented as BVR related error codes declaration
|
||||
*/
|
||||
|
||||
#ifndef BOM0PSDALIGNMENT_ERRORS_H
|
||||
#define BOM0PSDALIGNMENT_ERRORS_H
|
||||
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup BOM0PSDALIGNMENT_ERRORS Errors
|
||||
@ingroup BOMMGMT_ERRORS
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* An internal error has occurred in the alignment of 4G Product Master data with Design Structure. Report this error to your system administrator.
|
||||
*/
|
||||
#define BOM0PSDALIGNMENT_internal_error (EMH_BOM0PSDALIGNMENT_error_base + 1)
|
||||
|
||||
/**
|
||||
* An alignment cannot be performed with the top line of a Design Structure.
|
||||
*/
|
||||
#define BOM0PSDALIGNMENT_top_line_for_alignment (EMH_BOM0PSDALIGNMENT_error_base + 2)
|
||||
|
||||
/** @} */
|
||||
#endif
|
@ -0,0 +1,100 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2020.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/*
|
||||
===================================================================================
|
||||
File description:
|
||||
|
||||
Filename: caesimulationprocessmanagement_errors.h
|
||||
module: CAE0SimulationProcessManagement
|
||||
|
||||
This file contains the error codes for the CAE0SimulationProcessManagement module
|
||||
====================================================================================================*/
|
||||
|
||||
#ifndef CAE0SIMULATIONPROCESSMANAGEMENT_ERRORS_H
|
||||
#define CAE0SIMULATIONPROCESSMANAGEMENT_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
* A CAE Folder with the name "%1$" already exists under the parent context "%2$".
|
||||
*/
|
||||
#define CAE0_duplicate_file_collection_name (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 1)
|
||||
|
||||
/**
|
||||
* The CAE Folder "%1$" cannot be pasted because it would create a circular reference.
|
||||
*/
|
||||
#define CAE0_circular_reference_of_file_collection (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 2)
|
||||
|
||||
/**
|
||||
* The CAE Folder "%1$" cannot be deleted due to multiple references.
|
||||
*/
|
||||
#define CAE0_multiple_references_of_file_collection (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 3)
|
||||
|
||||
/**
|
||||
* The CAE Folder "%1$" cannot be deleted because it is checked-out.
|
||||
*/
|
||||
#define CAE0_unable_to_delete_file_collection (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 4)
|
||||
|
||||
/**
|
||||
* The CAE Folder "%1$" cannot be deleted because its sub-folder "%2$" contains multiple references.
|
||||
*/
|
||||
#define CAE0_multiple_references_of_child_file_collection (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 5)
|
||||
|
||||
/**
|
||||
* The CAE Folder "%1$" cannot be deleted because its sub-folder "%2$" is checked-out.
|
||||
*/
|
||||
#define CAE0_unable_to_delete_child_file_collection (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 6)
|
||||
|
||||
/**
|
||||
* The file "%1$" cannot be added to the StructureMap Filter Dataset "%2$" because the StructureMap Filter Dataset allows only one file to be added.
|
||||
Remove the existing file "%3$" and retry the operation.
|
||||
*/
|
||||
#define CAE0_only_single_file_allowed_in_structuremap_filter_dataset (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 7)
|
||||
|
||||
/**
|
||||
* The provided input object "%1$" is invalid because only objects of type "CAE Configuration", with configuration type "Analysis Dashboard" or "Model Dashboard", are allowed.
|
||||
*/
|
||||
#define CAE0_invalid_configuration_object (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 8)
|
||||
|
||||
/**
|
||||
* The provided start index "%1$" is invalid, because the start index must not be greater than total number of objects to monitor "%2$", in order to support the pagination correctly in the Simulation Dashboard.
|
||||
*/
|
||||
#define CAE0_invalid_indexing_for_pagination (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 9)
|
||||
|
||||
/**
|
||||
* The provided dashboard column "%1$" does not exist in the dashboard configuration.
|
||||
*/
|
||||
#define CAE0_invalid_dashboard_column_name (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 10)
|
||||
|
||||
/**
|
||||
* The root item revision "%1$" is invalid. The root item revision should be of type CAE Model Revision or its subtype to be allowed from the BOM structure.
|
||||
*/
|
||||
#define CAE0_invalid_root_item_revision (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 11)
|
||||
|
||||
/**
|
||||
* The CAE Boundary Condition Revision "%1$" can not be attached with a relation "%2$" under the object "%3$" of type "%4$", because it is already attached with the object "%5$" of type "%6$".
|
||||
*/
|
||||
#define CAE0_extract_relation_cannot_be_created (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 12)
|
||||
|
||||
/**
|
||||
* The provided input object "%1$" is invalid because only objects of type "CAE Configuration", with configuration type "CAE Package", are allowed.
|
||||
*/
|
||||
#define CAE0_invalid_configuration_type (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 13)
|
||||
|
||||
/**
|
||||
* The provided input context method "%1$" is invalid. The supported input context methods are "%2$", "%3$", "%4$" and "%5$".
|
||||
*/
|
||||
#define CAE0_invalid_input_context_method (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 14)
|
||||
|
||||
/**
|
||||
* The number of visible monitored objects should not be greater than the total number of monitored objects.
|
||||
*/
|
||||
#define CAE0_invalid_visible_monitored_objects (EMH_CAE0SIMULATIONPROCESSMANAGEMENT_error_base + 15)
|
||||
|
||||
#endif
|
@ -0,0 +1,60 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2017.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/*====================================================================================================
|
||||
File description:
|
||||
|
||||
Filename: libcae0simulationprocessmanagement_exports.h
|
||||
Module : CAE0SimulationProcessManagement
|
||||
Description: This file contains the declaration for the Dispatch Library CAE0SimulationProcessManagement
|
||||
|
||||
====================================================================================================*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCAE0SimulationProcessManagement
|
||||
|
||||
#if !defined(LIBCAE0SIMULATIONPROCESSMANAGEMENT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCAE0SIMULATIONPROCESSMANAGEMENT is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CAE0SIMULATIONPROCESSMANAGEMENT_API, not CAE0SIMULATIONPROCESSMANAGEMENTEXPORT */
|
||||
|
||||
#define CAE0SIMULATIONPROCESSMANAGEMENT_API CAE0SIMULATIONPROCESSMANAGEMENTEXPORT
|
||||
|
||||
#if IPLIB==libCAE0SimulationProcessManagement || defined(LIBCAE0SIMULATIONPROCESSMANAGEMENT)
|
||||
# if defined(__lint)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTEXPORT __export(CAE0SimulationProcessManagement)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL extern __global(CAE0SimulationProcessManagement)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTPRIVATE extern __private(CAE0SimulationProcessManagement)
|
||||
# elif defined(_WIN32)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTEXPORT __declspec(dllexport)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL extern __declspec(dllexport)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTPRIVATE extern
|
||||
# else
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTEXPORT
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL extern
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTEXPORT __export(CAE0SimulationProcessManagement)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL extern __global(CAE0SimulationProcessManagement)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTEXPORT __declspec(dllimport)
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTEXPORT
|
||||
# define CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,33 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2017.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/*====================================================================================================
|
||||
File description:
|
||||
|
||||
Filename: libcae0simulationprocessmanagement_undef.h
|
||||
Module : CAE0SimulationProcessManagement
|
||||
Description: This file contains the declaration for the Dispatch Library CAE0SimulationProcessManagement
|
||||
|
||||
====================================================================================================*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCAE0SIMULATIONPROCESSMANAGEMENT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCAE0SIMULATIONPROCESSMANAGEMENT is not defined
|
||||
#endif
|
||||
|
||||
#undef CAE0SIMULATIONPROCESSMANAGEMENT_API
|
||||
#undef CAE0SIMULATIONPROCESSMANAGEMENTEXPORT
|
||||
#undef CAE0SIMULATIONPROCESSMANAGEMENTGLOBAL
|
||||
#undef CAE0SIMULATIONPROCESSMANAGEMENTPRIVATE
|
@ -0,0 +1,59 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//e
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Dispatch Library CPA0capadatamodel
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCPA0capadatamodel
|
||||
|
||||
#if !defined(LIBCPA0CAPADATAMODEL) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCPA0CAPADATAMODEL is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CPA0CAPADATAMODEL_API, not CPA0CAPADATAMODELEXPORT */
|
||||
|
||||
#define CPA0CAPADATAMODEL_API CPA0CAPADATAMODELEXPORT
|
||||
|
||||
#if IPLIB==libCPA0capadatamodel || defined(LIBCPA0CAPADATAMODEL)
|
||||
# if defined(__lint)
|
||||
# define CPA0CAPADATAMODELEXPORT __export(CPA0capadatamodel)
|
||||
# define CPA0CAPADATAMODELGLOBAL extern __global(CPA0capadatamodel)
|
||||
# define CPA0CAPADATAMODELPRIVATE extern __private(CPA0capadatamodel)
|
||||
# elif defined(_WIN32)
|
||||
# define CPA0CAPADATAMODELEXPORT __declspec(dllexport)
|
||||
# define CPA0CAPADATAMODELGLOBAL extern __declspec(dllexport)
|
||||
# define CPA0CAPADATAMODELPRIVATE extern
|
||||
# else
|
||||
# define CPA0CAPADATAMODELEXPORT
|
||||
# define CPA0CAPADATAMODELGLOBAL extern
|
||||
# define CPA0CAPADATAMODELPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CPA0CAPADATAMODELEXPORT __export(CPA0capadatamodel)
|
||||
# define CPA0CAPADATAMODELGLOBAL extern __global(CPA0capadatamodel)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CPA0CAPADATAMODELEXPORT __declspec(dllimport)
|
||||
# define CPA0CAPADATAMODELGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CPA0CAPADATAMODELEXPORT
|
||||
# define CPA0CAPADATAMODELGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,26 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//e
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCPA0CAPADATAMODEL) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCPA0CAPADATAMODEL is not defined
|
||||
#endif
|
||||
|
||||
#undef CPA0CAPADATAMODEL_API
|
||||
#undef CPA0CAPADATAMODELEXPORT
|
||||
#undef CPA0CAPADATAMODELGLOBAL
|
||||
#undef CPA0CAPADATAMODELPRIVATE
|
@ -0,0 +1,578 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2018.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/* */
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the constants, data structures and public C ITK function prototypes for working with configurator.
|
||||
The configurator module deals with variant data such as Families, values and rules.
|
||||
*/
|
||||
|
||||
#ifndef TEAMCENTER_CFG0CONFIGURATOR_H
|
||||
#define TEAMCENTER_CFG0CONFIGURATOR_H
|
||||
|
||||
#include <configurator/configurator.h>
|
||||
#include <unidefs.h>
|
||||
#include <Cfg0configurator/libcfg0configurator_exports.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
/**
|
||||
@defgroup CFG0CONFIGURATOR Product Configurator (CFG0)
|
||||
@ingroup TC
|
||||
|
||||
The Product Configurator (CFG0) module is intended to give a consistent interface to
|
||||
operate on Product Configurator data such as feature families, features, allocations and constraint rules.
|
||||
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
Holds an Family revision and its value revisions for given configurator perspective and set of family tags.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
tag_t family_revision; /**< Family object. */
|
||||
int n_value_revisions; /**< The number of elements in @p value_revisions. */
|
||||
const tag_t * value_revisions; /**< n_value_revisions Array of configured value revisions for @p family_revision. */
|
||||
} CFG0_option_family_values_t;
|
||||
|
||||
/**
|
||||
Holds allocation revisions for given configurator perspective and set of family and value tags.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
tag_t allocated_object; /**< Allocated object. */
|
||||
int n_allocation_revisions; /**< Number of elements in @p allocation_revisions. */
|
||||
const tag_t * allocation_revisions; /**< n_allocation_revisions Array of allocation revisions for @p allocated_object. */
|
||||
} CFG0_allocation_t;
|
||||
|
||||
/**
|
||||
Holds information for a violated configurator constraint which is reported as part of a conflict.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
tag_t violated_constraint; /**< The object of violated constraint. */
|
||||
const char * message; /**< The message that is associated with the violated constraint. <br/>It is populated only if @p violated_constraint is #NULLTAG. */
|
||||
} CFG0_violation_info_t;
|
||||
|
||||
/**
|
||||
Holds information for a conflict found during evaluation of configuration against configurator constraints.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
int n_violations; /**< The number of elements in @p violations. */
|
||||
const CFG0_violation_info_t* violations; /**< Array of violated configurator constraints. */
|
||||
} CFG0_conflict_info_t;
|
||||
|
||||
/**
|
||||
Holds a variant Feature information.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
tag_t family; /**< The Family object for @p value_id. */
|
||||
const char * value_id; /**< The ID of the Feature. */
|
||||
tag_t value; /**< The object of the Feature. */
|
||||
} CFG0_option_value_info_t;
|
||||
|
||||
/**
|
||||
Qualifies the Features associated with an expression. The expression could be obtained from evaluation of a configuration
|
||||
against a configuration. The expression will have a number of values which can be mapped to the contributing constraints or
|
||||
the input configuration which can be treated as a user constraint.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
CFG_severity_t severity; /**< The severity of the contributing constraint. */
|
||||
const CFG0_option_value_info_t* value_info; /**< The contributed Feature information. */
|
||||
} CFG0_sample_expr_value_info_t;
|
||||
|
||||
/**
|
||||
Holds information of single configuration solver profile entry of string type as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
<br/>For example, to evaluate configurator constraints having an active intent "Technical", the solver profile entry can be specified as:
|
||||
@code
|
||||
const char *key_text = CFG_active_intent_filter_key;
|
||||
const char *value_texts[1] = { "Technical" };
|
||||
CFG0_conf_solver_profile_str_entry_t str_profile_entry;
|
||||
str_profile_entry.key_text = keyText;
|
||||
str_profile_entry.n_values = 1;
|
||||
str_profile_entry.values = ( const char** ) &value_texts;
|
||||
@endcode
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char *key_text; /**< key text for configuration solver profile string type entry. */
|
||||
int n_values; /**< Number of values in array @p values. */
|
||||
const char **values; /**< n_values Values corresponding to @p key_text. */
|
||||
} CFG0_conf_solver_profile_str_entry_t;
|
||||
|
||||
/**
|
||||
Holds information of single configuration solver profile entry of integer type as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
<br/>For example, to specify the minimum error severity as #CFG_severity_warning_level while evaluating the configurator constraints, the solver profile entry can be specified as:
|
||||
@code
|
||||
const char *key_text = CFG_min_error_severity_key;
|
||||
const int *value_ints[1] = { (int)CFG_severity_warning_level };
|
||||
CFG0_conf_solver_profile_int_entry_t int_profile_entry;
|
||||
int_profile_entry.key_text = key_text;
|
||||
int_profile_entry.n_values = 1;
|
||||
int_profile_entry.values = &value_ints;
|
||||
@endcode
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char *key_text; /**< key text for configuration solver profile integer type entry. */
|
||||
int n_values; /**< Number of values in array @p values. */
|
||||
const int *values; /**< n_values Values corresponding to @p key_text. */
|
||||
} CFG0_conf_solver_profile_int_entry_t;
|
||||
|
||||
/**
|
||||
Holds information of single configuration solver profile entry of boolean type as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
<br/>For example, to specify that the configurator constraint evaluation should not compute all the conflicts, the solver profile entry can be specified as:
|
||||
@code
|
||||
const char *key_text = CFG_compute_all_problems_key;
|
||||
const bool *value_bools[1] = { false };
|
||||
CFG0_conf_solver_profile_bool_entry_t bool_profile_entry;
|
||||
bool_profile_entry.key_text = key_text;
|
||||
bool_profile_entry.n_values = 1;
|
||||
bool_profile_entry.values = &value_bools;
|
||||
@endcode
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char *key_text; /**< key text for configuration solver profile boolean type entry. */
|
||||
int n_values; /**< Number of values in array @p values. */
|
||||
const bool *values; /**< @p n_values Values corresponding to @p key_text. */
|
||||
} CFG0_conf_solver_profile_bool_entry_t;
|
||||
|
||||
/**
|
||||
Holds information of single configuration solver profile entry of double type as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char *key_text; /**< key text for configuration solver profile double type entry. */
|
||||
int n_values; /**< Number of values in array @p values. */
|
||||
const double *values; /**< @p n_values Values corresponding to @p key_text. */
|
||||
} CFG0_conf_solver_profile_double_entry_t;
|
||||
|
||||
/**
|
||||
Holds information of single configuration solver profile entry of tag_t type as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char *key_text; /**< key text for configuration solver profile tag_t type entry. */
|
||||
int n_values; /**< Number of values in array @p values. */
|
||||
const tag_t *values; /**< @p n_values Values corresponding to @p key_text. */
|
||||
} CFG0_conf_solver_profile_tag_entry_t;
|
||||
|
||||
/**
|
||||
Holds information of single configuration solver profile entry of date type as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char *key_text; /**< key text for configuration solver profile date_t type entry. */
|
||||
int n_values; /**< Number of values in array @p values. */
|
||||
const date_t *values; /**< @p n_values Values corresponding to @p key_text. */
|
||||
} CFG0_conf_solver_profile_date_entry_t;
|
||||
|
||||
/**
|
||||
Holds information of configuration solver profile entries of various types.
|
||||
The configuration solver profile is used to control the behavior of configurator constraint evaluation.
|
||||
The solver profile entries hold various configuration tokens as keys and their values as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
|
||||
<br/>For example, to validate configurations against all configurator constraints without computing all conflicts, the configuration solver profile can be set as:
|
||||
@code
|
||||
// Define solver profile entry to consider constraints with minimum error severity as warning.
|
||||
const char *key_min_err = CFG_min_error_severity_key;
|
||||
const int *value_int_min_err[1] = { (int)CFG_severity_warning_level };
|
||||
CFG0_conf_solver_profile_int_entry_t err_profile_entry;
|
||||
err_profile_entry.key_text = key_min_err;
|
||||
err_profile_entry.n_values = 1;
|
||||
err_profile_entry.values = &value_int_min_err;
|
||||
|
||||
// Define solver profile entry to consider constraints with minimum severity as warning while reporting the conflicts.
|
||||
const char *key_min_rep = CFG_min_report_severity_key;
|
||||
const int *value_int_min_rep[1] = { (int)CFG_severity_warning_level };
|
||||
CFG0_conf_solver_profile_int_entry_t rep_profile_entry;
|
||||
rep_profile_entry.key_text = key_min_rep;
|
||||
rep_profile_entry.n_values = 1;
|
||||
rep_profile_entry.values = &value_int_min_rep;
|
||||
|
||||
// Define solver profile entry to define timeout in seconds for constraint evaluation and computing violations.
|
||||
const char *key_timeout = CFG_violation_computation_timeout_key;
|
||||
const int *value_timeout[1] = { 2 };
|
||||
CFG0_conf_solver_profile_int_entry_t timeout_profile_entry;
|
||||
timeout_profile_entry.key_text = key_timeout;
|
||||
timeout_profile_entry.n_values = 1;
|
||||
timeout_profile_entry.values = &value_timeout;
|
||||
|
||||
CFG0_conf_solver_profile_int_entry_t int_profile_entries[3];
|
||||
int_profile_entries[0] = err_profile_entry;
|
||||
int_profile_entries[1] = rep_profile_entry;
|
||||
int_profile_entries[2] = timeout_profile_entry;
|
||||
|
||||
// Define solver profile entry to avoid computing all conflicts.
|
||||
const char *key_compute_all = CFG_compute_all_problems_key;
|
||||
const bool *value_comp_all[1] = { false };
|
||||
CFG0_conf_solver_profile_bool_entry_t comp_all_profile_entry;
|
||||
comp_all_profile_entry.key_text = key_compute_all;
|
||||
comp_all_profile_entry.n_values = 1;
|
||||
comp_all_profile_entry.values = &value_comp_all;
|
||||
|
||||
// Define solver profile entry to apply constraints.
|
||||
const char *key_appl_constr = CFG_apply_config_constraints_key;
|
||||
const bool *value_appl_constr[1] = { true };
|
||||
CFG0_conf_solver_profile_bool_entry_t appl_constr_profile_entry;
|
||||
appl_constr_profile_entry.key_text = key_appl_constr;
|
||||
appl_constr_profile_entry.n_values = 1;
|
||||
appl_constr_profile_entry.values = &value_appl_constr;
|
||||
|
||||
CFG0_conf_solver_profile_bool_entry_t bool_profile_entries[2];
|
||||
bool_profile_entries[0] = comp_all_profile_entry;
|
||||
bool_profile_entries[1] = appl_constr_profile_entry;
|
||||
|
||||
// Create configuration profile with solver profile entries.
|
||||
CFG0_conf_solver_profile_info_t solver_profile_info;
|
||||
solver_profile_info.n_int_type_profile_entries = 3;
|
||||
solver_profile_info.int_type_profile_entries = int_profile_entries;
|
||||
|
||||
solver_profile_info.n_bool_type_profile_entries = 2;
|
||||
solver_profile_info.bool_type_profile_entries = bool_profile_entries;
|
||||
|
||||
// It is absolutely essential to initialize all unused profile entry pointers to null to avoid unexpected exceptions.
|
||||
solver_profile_info.n_str_type_profile_entries = 0;
|
||||
solver_profile_info.str_type_profile_entries = 0;
|
||||
solver_profile_info.n_double_type_profile_entries = 0;
|
||||
solver_profile_info.double_type_profile_entries = 0;
|
||||
solver_profile_info.n_tag_type_profile_entries = 0;
|
||||
solver_profile_info.tag_type_profile_entries = 0;
|
||||
solver_profile_info.n_date_type_profile_entries = 0;
|
||||
solver_profile_info.date_type_profile_entries = 0;
|
||||
@endcode
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
int n_str_type_profile_entries; /**< Number of profile entries having string datatype. */
|
||||
const CFG0_conf_solver_profile_str_entry_t *str_type_profile_entries; /**< n_str_type_profile_entries array containing profile entries having string datatype. */
|
||||
|
||||
int n_int_type_profile_entries; /**< Number of profile entries having integer datatype. */
|
||||
const CFG0_conf_solver_profile_int_entry_t *int_type_profile_entries; /**< n_int_type_profile_entries array containing profile entries having integer datatype. */
|
||||
|
||||
int n_bool_type_profile_entries; /**< Number of profile entries having boolean datatype. */
|
||||
const CFG0_conf_solver_profile_bool_entry_t *bool_type_profile_entries; /**< n_bool_type_profile_entries array containing profile entries having boolean datatype. */
|
||||
|
||||
int n_double_type_profile_entries; /**< Number of profile entries having double datatype. */
|
||||
const CFG0_conf_solver_profile_double_entry_t *double_type_profile_entries; /**< n_double_type_profile_entries array containing profile entries having double datatype. */
|
||||
|
||||
int n_tag_type_profile_entries; /**< Number of profile entries having tag_t datatype. */
|
||||
const CFG0_conf_solver_profile_tag_entry_t *tag_type_profile_entries; /**< n_tag_type_profile_entries array containing profile entries having tag_t datatype. */
|
||||
|
||||
int n_date_type_profile_entries; /**< Number of profile entries having date_t datatype. */
|
||||
const CFG0_conf_solver_profile_date_entry_t *date_type_profile_entries; /**< n_date_type_profile_entries array containing profile entries having date_t datatype. */
|
||||
} CFG0_conf_solver_profile_info_t;
|
||||
|
||||
/**
|
||||
Represents a pair of conditions to compare.
|
||||
<br/>E.g. @p left_condition is the expression @c "[NS]A=A1 & [NS]B=B1" and @p right_condition is the expression @c "[NS]B=B1 | [NS]B=B2".
|
||||
<br/>The left and right may or may not be logically the same.
|
||||
<br/>The expression string should be in the Teamcenter formula format.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char* left_condition; /**< The left hand side condition for comparison (i.e. applicability / variant expression / effectivity expression) */
|
||||
const char* right_condition; /**< The right hand side condition for comparison (i.e. applicability / variant expression / effectivity expression) */
|
||||
} CFG0_condition_to_compare_t;
|
||||
|
||||
/**
|
||||
Defines the possible values for overlap_state of a pair of conditions.
|
||||
*/
|
||||
typedef enum CFG0_overlap_state_e
|
||||
{
|
||||
CFG0_overlap_state_none = 0, /**< The two expressions have no overlap. There is no satisfying solution common to both expressions. A conjunction(AND combination) of the two is unsatisfiable. */
|
||||
CFG0_overlap_state_match = 1, /**< Two expressions have overlap state "match" if they are logically equivalent. Every solution that satisfies one expression also satisfies the other, and vice versa. */
|
||||
CFG0_overlap_state_subset = 2, /**< An expression e1 has overlap state "subset" with expression e2 if the solution set of e1 is a subset of the solution set of e2. The conjunction "e1 AND NOT e2" is unsatisfiable. */
|
||||
CFG0_overlap_state_superset = 3, /**< An expression e1 has overlap state "superset" with expression e2 if the solution set of e1 is a superset of the solution set of e2. The conjunction "NOT e1 AND e2" is unsatisfiable. */
|
||||
CFG0_overlap_state_intersect = 4 /**< The two expressions overlap. The solution set of the expression has some overlap with the solution set of the reference expression. */
|
||||
} CFG0_overlap_state_t;
|
||||
|
||||
/**
|
||||
Holds variant and effectivity expressions in string format or a variant and/or effectivity configurable object.
|
||||
<br/>If @p configurable is #NULLTAG, only the variant and effectivity expressions are considered.
|
||||
<br/>Configurable object is not supported. It is a provision for future release.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char * variant; /**< Variant expression in string format. */
|
||||
const char * effectivity; /**< Effectivity expression in string format. */
|
||||
tag_t configurable; /**< Variant and/or effectivity configurable object. */
|
||||
}CFG0_configurable_expression_t;
|
||||
|
||||
/**
|
||||
Holds a set of CFG0_configurable_expression_t.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
int n_configurations; /**< (I) Number of configurations in @p configurations. */
|
||||
const CFG0_configurable_expression_t **configurations; /**< (I) n_configurations The configuration expressions to be validated. */
|
||||
}CFG0_configuration_set_t;
|
||||
|
||||
/**
|
||||
@name Search Functions
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
Retrieves an array of Family revision and its value revisions for given configurator perspective and set of family tags.
|
||||
<br/>All configured value revisions will be retrieved if input family revision is not provided.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is invalid
|
||||
<li>#CFG0CONFIGURATOR_option_family_not_found if any member of @p family_revisions is invalid
|
||||
</ul>
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_get_option_values(
|
||||
const tag_t perspective, /**< (I) The perspective of a Configurator Context which holds configuration parameters such as Revision Rule, Rule Date etc. */
|
||||
const int n_family_revisions, /**< (I) Number of input family revisions. */
|
||||
const tag_t * family_revisions, /**< (I) List of family revisions. */
|
||||
int * n_values, /**< (O) Number of structures retrieved. */
|
||||
CFG0_option_family_values_t** values /**< (OF) n_values Array of family revision and its value revisions <br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieves allocation objects for given configurator perspective and specified objects such as Family, value tags.
|
||||
<br/>For example, a Family color is allocated to a product context Car.
|
||||
<br/>For the @p perspective with the product context and a revision rule, @p objects with Family color, the @p allocations will contain the configured allocation revision.
|
||||
<br/>Retrieves all allocation objects if @p objects is passed as empty.
|
||||
<br/>If no allocation revision is found for an object in @p objects , the object is not returned in @p allocations.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is invalid
|
||||
</ul>
|
||||
|
||||
@note
|
||||
<br/>If @p objects contains an invalid object, no error is returned and the object is not returned in @p allocations.
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_get_allocation_objects(
|
||||
const tag_t perspective, /**< (I) The perspective of a Configurator Context which holds configuration parameters such as Revision Rule, Rule Date etc. */
|
||||
const int n_objects, /**< (I) Number of elements in @p objects. */
|
||||
const tag_t * objects, /**< (I) n_objects List of object tags for which allocation objects are requested. */
|
||||
int * n_allocations, /**< (O) Number of elements in @p allocations. */
|
||||
CFG0_allocation_t ** allocations /**< (OF) n_allocations Array of allocation revision.<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */
|
||||
);
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Constraint Solve Functions
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
Analyzes an input configuration against configurator constraints. The configurator constraints are filtered based on input solve profile.
|
||||
Solve profile can be passed by two ways:
|
||||
<br/>1. Setting solve profile on @p perspective using #CFG0_set_configuration_information ITK.
|
||||
<br/>2. Setting argument @p solve_profile.
|
||||
<br/>If solve profile passed by both ways then solve profile from @p solve_profile will be consumed.The analysis is reported in @p satisfiable and @p complete.
|
||||
<br/>If the configuration is found #CFG_satisfiable, then a sample expression is returned in @p sample_configuration. The sample expression is an updated configuration
|
||||
with additional Feature selections which are contributed by constraints. The @p solve_profile also controls the constraints which can contribute to @p sample_configuration.
|
||||
<br/>If the configuration is found #CFG_unsatisfiable, then no sample expression is returned. However, the set of conflicting constraints which make the configuration
|
||||
#CFG_unsatisfiable are reported in @p conflicts.
|
||||
<br/>If the sample expression contains all required selections for a #CFG_satisfiable configuration, the @p complete is reported as true.
|
||||
<br/>If a configuration is #CFG_satisfiable but for the sample expression, @p complete is reported as false, then the missing required selections are reported in @p required_families.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is invalid
|
||||
<li>#CFG_invalid_solve_profile if @p solve_profile is null or contains an invalid #CFG_severity_t.
|
||||
<li>#CFG_functionality_not_implemented if @p solve_profile specifies #CFG_constraint_filter_t or the min_report_severity and min_error_severity are not the same.
|
||||
<li>#CFG_invalid_expression if @p in_configuration is NULL or empty.
|
||||
</ul>
|
||||
|
||||
@note
|
||||
<br/>For a given @p in_configuration and a set of configurator constraints, the @p sample_configuration is just one of the possible #CFG_satisfiable configurations.
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_analyze_configuration(
|
||||
const tag_t perspective, /**< (I) The perspective of a Configurator Context which holds configuration parameters such as Revision Rule, Rule Date etc. */
|
||||
const char * in_configuration, /**< (I) The input variant configuration expression to be analyzed. */
|
||||
const CFG_solve_profile_t * solve_profile, /**< (I) The #CFG_solve_profile_t to filter the configurator constraints. */
|
||||
CFG_satisfiability_t * satisfiable, /**< (O) The result of analysis whether the @p in_configuration is satisfiable against the configurator constraints. */
|
||||
char ** sample_configuration, /**< (OF) One of the (possibly many) configurations that satisfy the input criteria as well as all constraints. */
|
||||
int * n_sample_value_states, /**< (O) Number of elements in @p sample_value_states. */
|
||||
CFG0_sample_expr_value_info_t** sample_value_states, /**< (OF) n_sample_value_states Array of sample configuration Feature states.<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */
|
||||
int * n_conflicts, /**< (O) Number of elements in @p conflicts. */
|
||||
CFG0_conflict_info_t ** conflicts, /**< (OF) n_conflicts Array of conflicting constraints. Each conflict has a set of violated constraints.<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */
|
||||
logical * complete, /**< (O) The result of analysis whether the @p sample_configuration is complete. */
|
||||
int * n_required_families, /**< (O) Number of elements in @p required_families. */
|
||||
tag_t ** required_families /**< (OF) n_required_families Array of required families which have no selection in @p sample_configuration. */
|
||||
);
|
||||
|
||||
/**
|
||||
Sets the configuration information on a session configurable object. Configuration information is used for
|
||||
variant configuration which includes parameters such as Configurator Context, reporting severity,
|
||||
compute all violations and apply configurator constraints as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
|
||||
A session_configurable is an object which supports session configurable behavior. It is used for
|
||||
variant configuration e.g. a Variant Rule, a Configurator Perspective.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is invalid.
|
||||
<li>#CFG0CONFIGURATOR_invalid_product_item_count if @p perspective has no or multiple product items associated with it.
|
||||
<li>#CFG0CONFIGURATOR_input_object_is_not_session_configurable if @p session_configurable does not support ConfigurationSession behavior.
|
||||
<li>#CFG0CONFIGURATOR_input_session_configurable_object_unavailable if @p session_configurable is NULLTAG.
|
||||
</ul>
|
||||
|
||||
@note If @p solver_profile_info is provided then all unused profile entries must be initialized to NULL.
|
||||
<br/>
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_set_configuration_information(
|
||||
const tag_t perspective, /**< (I) The perspective of a Configurator Context which holds configuration parameters such as Revision Rule, Rule Date etc. */
|
||||
const CFG0_conf_solver_profile_info_t *solver_profile_info, /**< (I) Structure containing configuration information. If @p solver_profile_info is NULL, the preference @p TC_Default_Solve_Type and preference @p Cfg0DefaultValidationMode is used to initialized the solver profile.*/
|
||||
const tag_t session_configurable /**< (I) Session configurable object tag on which configuration information is to be set. */
|
||||
);
|
||||
|
||||
/**
|
||||
Gets the configuration information from session configurable objects. Configuration information is used for
|
||||
variant configuration which includes parameters such as Configurator Context, reporting severity,
|
||||
compute all violations and apply configurator constraints as defined in @ref CFG_CONFIGURATION_PROFILE.
|
||||
|
||||
A session_configurable is an object which supports session configurable behavior. It is used for
|
||||
variant configuration e.g. a Variant Rule.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_input_session_configurable_object_unavailable if any of the @p session_configurable_objs is a NULLTAG.
|
||||
<li>#CFG0CONFIGURATOR_input_object_is_not_session_configurable if any of the @p session_configurable_objs does not support ConfigurationSession behavior.
|
||||
</ul>
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_get_configuration_information(
|
||||
const int n_session_configurable_objects, /**< (I) Number of session configurable objects in @p session_configurable_objs. */
|
||||
const tag_t *session_configurable_objs, /**< (I) n_session_configurable_ojects Array of session configurable object tags for which configuration information is needed. */
|
||||
tag_t **perspectives, /**< (OF) n_session_configurable_ojects Array of the perspectives of a Configurator Contexts which hold configuration parameters such as Revision Rule, Rule Date etc. */
|
||||
CFG0_conf_solver_profile_info_t **solver_profile_infos /**< (OF) n_session_configurable_ojects Array of structures containing configuration information.<br/>The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/
|
||||
);
|
||||
|
||||
/**
|
||||
Validates input configuration expressions against configurator constraints.
|
||||
<br/>The configurator constraints are filtered based on #CFG0_conf_solver_profile_info_t set on the @p perspective. The verdicts of validation are reported in @p verdicts.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is invalid
|
||||
<li>#CFG0CONFIGURATOR_invalid_product_item_count if @p perspective contains multiple product items
|
||||
<li>#CFG_convert_expr_unknown_value if @p context_expression or any member of @p configurations is not a valid variant expression.
|
||||
</ul>
|
||||
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_validate_configurations(
|
||||
const tag_t perspective, /**< (I) The perspective of a Configurator Context which holds configuration parameters such as Revision Rule, Rule Date, solve profile etc. */
|
||||
const char* context_expression, /**< (I) The expression which acts as a constraint for validation. A NULL or empty expression is treated as a true expression. */
|
||||
const int n_configurations, /**< (I) Number of configurations in @p configurations. */
|
||||
const char ** configurations, /**< (I) n_configurations The variant configuration expressions to be validated. */
|
||||
CFG_satisfiability_t ** verdicts /**< (OF) n_configurations The results of validation whether the @p configurations are satisfiable against the configurator constraints and @p context_expression. */
|
||||
);
|
||||
|
||||
/**
|
||||
Compares pairs of conditions and provides the verdict for each pair.
|
||||
<br/>The diagram below shows the verdict resulting from a given left expression and different right expressions:
|
||||
|
||||
<pre>
|
||||
left_condition: |---------------|
|
||||
right_condition 0: |----| : CFG0_overlap_state_none
|
||||
right_condition 1: |------| : CFG0_overlap_state_intersect
|
||||
right_condition 2: |----| : CFG0_overlap_state_subset
|
||||
right_condition 3: |-------| : CFG0_overlap_state_intersect
|
||||
right_condition 4: |-----------------------------| : CFG0_overlap_state_superset
|
||||
right_condition 5: |---------------| : CFG0_overlap_state_match
|
||||
right_condition 6: |--------------------| : CFG0_overlap_state_superset
|
||||
right_condition 7: |--------------------| : CFG0_overlap_state_superset
|
||||
right_condition 8: FALSE : CFG0_overlap_state_none
|
||||
right_condition 9: TRUE : CFG0_overlap_state_superset
|
||||
</pre>
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is null or not a perspective object.
|
||||
<li>#CFG0CONFIGURATOR_invalid_product_item_count if @p perspective contains multiple product items.
|
||||
<li>#CFG0CONFIGURATOR_invalid_condition_to_compare if @p condition is invalid is either null or empty.
|
||||
</ul>
|
||||
*/
|
||||
extern CFG0CONFIGURATOR_API int CFG0_get_overlap_states(
|
||||
const tag_t perspective, /**< (I) The perspective of a configurator context which holds configuration parameters such as revision rule, rule date. It is used to convert the expression strings into boolean expressions. */
|
||||
const logical only_match, /**< (I) Indicates which overlap states are of interest. <br/>If set to @c true, the only retrieved states are #CFG0_overlap_state_match and #CFG0_overlap_state_none. */
|
||||
const int n_conditions, /**< (I) The number of elements in @p conditions. */
|
||||
const CFG0_condition_to_compare_t **conditions, /**< (I) n_conditions Array of conditions to compare. */
|
||||
CFG0_overlap_state_t** overlap_states /**< (OF) The overlap statuses for each given pair of expressions. */
|
||||
);
|
||||
|
||||
/**
|
||||
Validates sets of configuration expressions against some configurator constraints.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p perspective is null or not a perspective object.
|
||||
<li>#CFG0CONFIGURATOR_invalid_product_item_count if @p perspective contains multiple product items.
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_set if any member of @p configurations is not a valid variant expression.
|
||||
<li>#CFG_functionality_not_implemented if @p configurations is a configurable object.
|
||||
<li>#CFG0CONFIGURATOR_unsupported_config_profile_info_provided if @p solver_profile_info structure contains incorrect information.
|
||||
<li>#ITK_no_concurrent_module_license if no concurrent licenses are available.
|
||||
</ul>
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_validate_configurations_set(
|
||||
const tag_t perspective, /**< (I) The perspective of a Configurator Context which holds configuration parameters such as Revision Rule, Rule Date, solve profile etc. */
|
||||
const CFG0_conf_solver_profile_info_t *solver_profile_info, /**< (I) Structure containing configuration information. <br/>If @p solver_profile_info is NULL, the preferences @c TC_Default_Solve_Type and @c Cfg0DefaultValidationMode are used to initialize the solver profile.*/
|
||||
const CFG0_configurable_expression_t * context_expression, /**< (I) The expression which acts as a constraint for validation. A NULL or empty expression is treated as a true expression. */
|
||||
const int n_configurations, /**< (I) Number of configurations. */
|
||||
const CFG0_configuration_set_t ** configurations, /**< (I) n_configurations The list of configurations to be validated. */
|
||||
CFG_satisfiability_t ** verdicts /**< (OF) n_configurations The validation results for each configuration, indicating whether they are satisfiable against the configurator constraints and @p context_expression. */
|
||||
);
|
||||
|
||||
/**
|
||||
Reports the conflicts between constraints for a given Variant Rule.
|
||||
<br/>CFG0_report_constraint_conflicts.json defines the output JSON schema.
|
||||
<br/>JSON schema is present in the kit.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success
|
||||
<li>#CFG0CONFIGURATOR_invalid_configuration_perspective if @p variant_rule has no perspective object, or if no solve profile information is stored in @p variant_rule.
|
||||
<li>#CFG0CONFIGURATOR_unsupported_config_profile_info_provided if @p v_rule contains incorrect config profile information.
|
||||
<li>#ITK_parameter_invalid_value if @p revision_rule is not of type Revision Rule, or if @p variant_rule is not of type or sub-type of Variant Rule.
|
||||
<li>#ITK_no_concurrent_module_license if no config_solve_level2 license not available.
|
||||
</ul>
|
||||
*/
|
||||
extern int CFG0CONFIGURATOR_API CFG0_report_constraint_conflicts(
|
||||
tag_t revision_rule, /**< (I) The Revision Rule to use for variability data filtering.
|
||||
<br/>This parameter is optional and can be #NULLTAG. In this case, the Revision Rule information will be extracted from @p variant_rule. */
|
||||
tag_t variant_rule, /**< (I) Variant Rule to be validated. The solve profile information is extracted from this parameter. */
|
||||
int n_familes, /**< (I) Number of families. */
|
||||
const tag_t* families, /**< (I) n_families Families for which conflicts will be provided. */
|
||||
char** json_buffer /**< (OF) The constraints conflicts in JSON format. */
|
||||
);
|
||||
/** @} */
|
||||
|
||||
/** @} */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#include <Cfg0configurator/libcfg0configurator_undef.h>
|
||||
#endif
|
@ -0,0 +1,772 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
Product Configurator Application Error Codes Declaration
|
||||
*/
|
||||
|
||||
#ifndef CFG0CONFIGURATOR_ERRORS_HXX
|
||||
#define CFG0CONFIGURATOR_ERRORS_HXX
|
||||
|
||||
#include <common/emh_const.h>
|
||||
#include <common/tc_deprecation_macros.h>
|
||||
|
||||
/**
|
||||
@defgroup CFG0CONFIGURATOR_ERRORS Configurator Errors
|
||||
@ingroup CFG0CONFIGURATOR
|
||||
@{
|
||||
*/
|
||||
|
||||
#define EMH_CFG0CONFIGURATOR_ERROR_BASE EMH_CFG0CONFIGURATOR_error_base
|
||||
|
||||
/**
|
||||
* An internal error has occurred in the module Cfg0configurator: %1$. Please report this error to your system administrator.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_internal_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 1 )
|
||||
|
||||
/**
|
||||
* The provided Thread CreateInput is of type "%1$". An object of type or subtype of "%2$" is expected.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_thread_type ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 2 )
|
||||
|
||||
/**
|
||||
* A Unit of Measure cannot be specified for the non-numeric family "%1$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_family_invalid_uom ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 3 )
|
||||
|
||||
/**
|
||||
* The family "%1$" is not allowed to be set as a "%2$" family, because its data type "%3$" does not allow multiple values.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_logical_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 4 )
|
||||
|
||||
/**
|
||||
* The operation has failed, because another object already uses this instance. Please refer to the preceding errors in this error stack for more information.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_inst_is_used_by_inaccessile_objects ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 5 )
|
||||
|
||||
/**
|
||||
* The Options referenced by the Rule "%1$" are not present in the following Product Items: %2$. Please refer to the syslog for more information.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_contexts_missing_options ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 6 )
|
||||
|
||||
/**
|
||||
* The family "%1$" for the namespace "%2$" is in an invalid format.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_family_invalid_format ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 7 )
|
||||
|
||||
/**
|
||||
* The value "%1$" for the family "%2$" is in an invalid format.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_value_invalid_format ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 8 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" cannot contain %4$ objects of type "%3$". Objects of type "%1$" can only contain %5$ such objects.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_opval_nesting_not_allowed ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 9 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" cannot contain the object "%3$" of type "%4$", because the member objects of type "%4$" are not allowed for "%1$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_compound_opval_invalid_contents ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 10 )
|
||||
|
||||
/**
|
||||
* The provided input array for the property "%1$" contains the following duplicates: %2$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_duplicate_exists ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 11 )
|
||||
|
||||
/**
|
||||
* The Product Model "%1$" cannot belong to multiple Product Items.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_model_cannot_belong_to_mulitple_products ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 12 )
|
||||
|
||||
/**
|
||||
* The list of values for the property "%1$" of the object "%2$" cannot contain any null values.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_array_has_nulls ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 13 )
|
||||
|
||||
/**
|
||||
* The object "%1$" cannot have a value for both properties "%2$" and "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_mutually_exclusive_properties ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 14 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" does not support allocation.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_bo_for_allocation ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 15 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" must contain a subject expression.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_missing_subject_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 16 )
|
||||
|
||||
/** @deprecated #CFG0CONFIGURATOR_missing_payload_for_rule deprecated in Teamcenter 11.2.3. Use #CFG0CONFIGURATOR_missing_subject_for_rule instead. */
|
||||
#define CFG0CONFIGURATOR_missing_payload_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 16 )
|
||||
TC_DEPRECATED_PREPROCESSOR( "11.2.3", CFG0CONFIGURATOR_missing_payload_for_rule, "CFG0CONFIGURATOR_missing_subject_for_rule" )
|
||||
/**
|
||||
* The input boolean expression is null.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_boolean_expression_is_null ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 17 )
|
||||
|
||||
/**
|
||||
* The input Product Context is null.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_product_context_is_null ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 18 )
|
||||
|
||||
/**
|
||||
* Setting a value range for the family "%1$" has failed, because its setting "%2$" does not support feature ranges.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_family_value_range_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 19 )
|
||||
|
||||
/**
|
||||
* The date value "%1$" for the family "%2$" is not formatted according to ISO-8601, or is missing the time zone information.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_date_format ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 20 )
|
||||
|
||||
/**
|
||||
* The value "%1$" for the family "%2$" is in an invalid numeric format.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_numeric_format ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 21 )
|
||||
|
||||
/**
|
||||
* The creation or update of values for the object "%1$" of type "Boolean Option" family is not allowed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_logical_data_type_values_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 22 )
|
||||
|
||||
/**
|
||||
* No Family "%1$" with the namespace "%2$" can be found.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_option_family_not_found ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 23 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" cannot be created, because it belongs to the object "%4$" of type "%3$" which accepts free-form values. Please refer to documentation for more details.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_free_form_family_option_value_not_allowed ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 24 )
|
||||
|
||||
/**
|
||||
* The operation has failed, because the Family "%1$" contains mixture of positive and negative values.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_pos_neg_terms_not_allowed_in_group ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 25 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" contains Features from the following families: %3$, %4$. Objects of type "%2$" can summarize Features only from a single family.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_summary_options_should_belongs_to_same_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 26 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" is not supported for availability creation. Availability can be created for objects of type "%3$" and "%4$" only.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unsupported_type_for_availability ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 27 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" cannot contain multiple Features that belong to the same family "%3$". Please refer to documentation for more details.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_multiple_values_from_single_select_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 28 )
|
||||
|
||||
/**
|
||||
* The availability for the object "%1$" of type "%2$" cannot be removed, because it is a member of the object "%3$" of type "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_model_member_availability_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 29 )
|
||||
|
||||
/**
|
||||
* The definition of the search criteria object of type "%1$" is invalid.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_search_criteria ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 30 )
|
||||
|
||||
/**
|
||||
* The value "%1$" for the family "%2$" cannot be saved, because it is outside the provided minimum/maximum value range "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_min_max_range_values_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 31 )
|
||||
|
||||
/**
|
||||
* The value range limit for the family "%1$" cannot be set to "%2$", because it would exclude the existing Feature "%3$": %4$ %5$ %6$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_min_max_values_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 32 )
|
||||
|
||||
/**
|
||||
* The operation has failed, because the Product Item "%1$" contains legacy variant data. Use a Product Item that does not contain any legacy variant data.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_product_item_has_legacy_variant ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 33 )
|
||||
|
||||
/**
|
||||
* The provided variant expression types for the object "%1$" of type "%2$" are invalid: %4$. Valid values are: %3$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unsupported_variant_expression_types ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 34 )
|
||||
|
||||
/**
|
||||
* The object type "%1$" should not be attached to an Item of type "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_dictionary_item_type_used ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 35 )
|
||||
|
||||
/**
|
||||
* The sort attribute "%1$" for search results is not formatted properly. It should be formatted as follows: "className.attributeName" or "className.attributeName.columnIndex".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_improper_format_for_sort_attribute ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 36 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" cannot be deallocated, unless dependent objects allocated by the Product Context "%3$" are deallocated. Please refer to the preceding errors in this error stack for more information.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_object_deallocation_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 37 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" is implicitly available to the object "%3$" of type "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_object_implicitly_available ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 38 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" cannot be defined as belonging to a "%3$" family, because as such it would need to only contain a collection (AND/OR combination) of Features.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_compound_family_invalid_property_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 39 )
|
||||
|
||||
/**
|
||||
* The provided object type is invalid: %4$. The family object "%1$" of type "%2$" must be associated with value objects of type "%3$" or any of its sub-types.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_incompatible_value_type_for_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 40 )
|
||||
|
||||
/**
|
||||
* The provided value data type is invalid: "%4$". The property "%1$" for the object of type "%2$" must have its value as "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_property_value_for_model_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 41 )
|
||||
|
||||
/**
|
||||
* The value "%1$" for the family "%2$" is invalid, because it is not an integer.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_integer_format ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 42 )
|
||||
|
||||
/**
|
||||
* The object "%2$" of type "%1$" is used by the object "%4$" of type "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_object_is_used ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 43 )
|
||||
|
||||
/**
|
||||
* The object "%1$" is not unique, because the Feature "%2$" already exists in the family "%3$" which belongs to the namespace "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_option_value_not_unique ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 44 )
|
||||
|
||||
/**
|
||||
* The object "%1$" violates a uniqueness constraint for the family "%2$" in the family namespace "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_family_not_unique ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 45 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot be saved, because the settings for the following properties are incompatible: %3$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_property_combination ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 46 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot have members "%3$", because they belong to the same mutually exclusive family "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_package_option_invalid_members ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 47 )
|
||||
|
||||
/**
|
||||
* The definition of the search result column at index %1$ is invalid for search definitions of type "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_search_result_column ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 48 )
|
||||
|
||||
/**
|
||||
* The cursor of type "%1$" has no results to fetch, because it is at the end of the results.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_cursor_exhausted_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 49 )
|
||||
|
||||
/**
|
||||
* The object "%1$" is not suitable to verify data consistency for the object "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_data_inconsistency ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 50 )
|
||||
|
||||
/**
|
||||
* The availability for the object "%1$" of type "%2$" cannot be removed from the object "%3$" of type "%4$", because there are dependent objects of type "%5$" available to the object "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_availability_removal_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 51 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" is now deallocated, but is referenced in objects of type "%3$". This means that the reference to this object is now broken.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_member_value_deallocation_problem ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 52 )
|
||||
|
||||
/**
|
||||
* The value for the property "%1$" for the object "%2$" of type "%3$" cannot contain the object "%4$" of type "%5$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 53 )
|
||||
|
||||
/**
|
||||
* The property "%1$" defined in the object "%2$" of type "%3$" cannot contain multiple Features.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_subject_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 54 )
|
||||
|
||||
/** @deprecated #CFG0CONFIGURATOR_invalid_payload_expression_for_default_rule deprecated in Teamcenter 11.2.3. Use #CFG0CONFIGURATOR_invalid_subject_expression_for_rule instead. */
|
||||
#define CFG0CONFIGURATOR_invalid_payload_expression_for_default_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 54 )
|
||||
TC_DEPRECATED_PREPROCESSOR( "11.2.3", CFG0CONFIGURATOR_invalid_payload_expression_for_default_rule, "CFG0CONFIGURATOR_invalid_subject_expression_for_rule" )
|
||||
|
||||
/**
|
||||
* Provide a valid Revision Rule for the preference "Cfg0DefaultRevisionRule".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_revision_rule_preference_undefined ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 55 )
|
||||
|
||||
/**
|
||||
* The Revision Rule "%1$" specified in the preference "Cfg0DefaultRevisionRule" could not be found.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_revision_rule_not_found ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 56 )
|
||||
|
||||
/**
|
||||
* The context object "%2$" of type "%1$" is invalid for availability creation. Availability can be created for context object of type and subtype "%3$" only.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_context_for_availability ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 57 )
|
||||
|
||||
/**
|
||||
* The operation has failed, because the group for "%1$" has both positive and negative terms, which is not allowed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_pos_neg_terms_not_allowed ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 58 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot have members "%3$", because they belong to object "%4$" of type "%5$". Feature summaries cannot have members from a non-mutually exclusive, boolean, or free-form family.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_summary_option_invalid_members_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 59 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot have members "%3$", because they belong to a different Family.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_summary_option_invalid_members ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 60 )
|
||||
|
||||
/**
|
||||
* An invalid revision rule was found in the context "%1$". Please provide a correct Revision Rule as defined by the preference "Cfg0DefaultRevisionRule" and try again.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_revision_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 61 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot be summarized with the object "%3$" of type "%4$", because it is already summarized by another object from the same mutually exclusive family.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_summary_option_value_creation ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 62 )
|
||||
|
||||
/**
|
||||
* The Global Rule "%1$" of type "%2$" cannot be attached to the object "%3$" of type "%4$", because Global Rule can only be attached to objects of type "%5$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_rule_association_product_context ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 63 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot be attached to the object "%3$" of type "%4$", because only Global Rules can be attached to objects of type "%5$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_rule_association_dictionary ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 64 )
|
||||
|
||||
/**
|
||||
* The Global Rule "%1$" of type "%2$" cannot be attached to this Dictionary or Product Context, because it is already attached to a Dictionary. Please contact your system administrator in order to change the Global Rule assignment.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_global_rule_sharing_not_allowed ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 65 )
|
||||
|
||||
/**
|
||||
* The variability for the object "%1$" of type "%2$" cannot be displayed, because the operation "%3$" expects at least one Product Item in the Configurator Perspective.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_empty_configuration_perspective_display ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 66 )
|
||||
|
||||
/**
|
||||
* The variability for the object "%1$" of type "%2$" cannot be displayed, because the operation "%3$" expects at least one Revision Rule in the Configurator Perspective.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_no_revision_rule_display ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 67 )
|
||||
|
||||
/**
|
||||
* The variability for the object "%1$" of type "%2$" cannot be updated, because an invalid Configurator Perspective is passed to the operation "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_configuration_perspective_update ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 68 )
|
||||
|
||||
/**
|
||||
* The variability for the object "%1$" of type "%2$" cannot be updated, because the operation "%3$" expects at least one Product Item in the Configurator Perspective.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_empty_configuration_perspective_update ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 69 )
|
||||
|
||||
/**
|
||||
* The variability for the object "%1$" of type "%2$" cannot be updated, because the operation "%3$" expects at least one Revision Rule in the Configurator Perspective.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_no_revision_rule_update ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 70 )
|
||||
|
||||
/**
|
||||
* The variability for the object "%1$" of type "%2$" cannot be displayed, because an invalid Configurator Perspective is passed to the operation "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_configuration_perspective_display ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 71 )
|
||||
|
||||
/**
|
||||
* The Global Rule "%1$" of type "%2$" cannot be created with more than one Dictionary.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_global_rule_creation_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 72 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because an invalid Configurator Perspective was passed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_configuration_perspective ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 73 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" must contain a product item in the Configurator Perspective.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_product_item_count ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 74 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because at least one Family is expected in the input.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_family_count ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 75 )
|
||||
|
||||
/**
|
||||
* The value range limit for the family "%1$" cannot be set from "%2$" to "%3$", because the provided maximum value is less than or equal to the minimum value.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_family_range_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 76 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" does not support Effectivity Conditions.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_bo_effectivity_not_supported ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 77 )
|
||||
|
||||
/**
|
||||
* The date of the Effectivity condition cannot be set for the object "%1$" of type "%2$", because the object cannot be effective before its creation date.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_effectivity_date ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 78 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$", because not all of its member's revisions are effective in the range of input object Effectivity.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_members_effectivity ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 79 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$", because no member revision is effective in the range of input object Effectivity.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_summary_effectivity ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 80 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$" which is allocating the object "%3$", because allocation cannot be more effective than its feature revisions.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_allocation_effectivity_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 81 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" is not a member of any "%3$" or its subtype, and only members of a "%3$" or its subtype can be assigned to the object "%4$" of type "%5$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_member_for_product_line ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 82 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$" which is allocating the object "%3$", because the allocation cannot be less effective than its feature availability.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_allocation_effectivity_availability ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 83 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$", because the Effectivity of a Feature availability cannot be wider than its allocation Effectivity.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_availability_effectivity_allocation ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 84 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$", because the Effectivity of a Feature availability cannot be wider than its Models Effectivity.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_availability_effectivity_model ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 85 )
|
||||
|
||||
/**
|
||||
* The operation "setVariantExpression" on the object "%1$" of type "%2$" has failed, because the subject expression and the applicability expression are the same.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_same_subject_and_applicability_not_supported ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 86 )
|
||||
|
||||
/** @deprecated #CFG0CONFIGURATOR_same_payload_and_applicability_not_supported deprecated in Teamcenter 11.2.3. Use #CFG0CONFIGURATOR_same_subject_and_applicability_not_supported instead. */
|
||||
#define CFG0CONFIGURATOR_same_payload_and_applicability_not_supported ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 86 )
|
||||
TC_DEPRECATED_PREPROCESSOR( "11.2.3", CFG0CONFIGURATOR_same_payload_and_applicability_not_supported, "CFG0CONFIGURATOR_same_subject_and_applicability_not_supported" )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$", because the Effectivity of a Product Model cannot be narrower than the available Feature "%3$" of type "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_model_effectivity_value_availability ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 87 )
|
||||
|
||||
/**
|
||||
* The Effectivity validation has failed for the object "%1$" of type "%2$", because the Effectivity of a Feature availability cannot be wider than its Feature Effectivity.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_availability_effectivity_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 88 )
|
||||
|
||||
/**
|
||||
* The request to compile a Configurator Rule Set was not processed, because the specified date "%1$" represents a date in the future. Please use a date before the current date "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_cannot_compile_for_future_dates ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 89 )
|
||||
|
||||
/**
|
||||
* The creation of the object "%1$" of type "%2$" is not supported in the module "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_creation_of_object_not_supported_in_editcontext ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 90 )
|
||||
|
||||
/**
|
||||
* The "Save As" operation for the object "%1$" of type "%2$" is not supported in the module "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_saveas_not_supported_in_editcontext ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 91 )
|
||||
|
||||
/**
|
||||
* The "Revise" operation for the object "%1$" of type "%2$" is not supported in the module "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_revise_not_supported_in_editcontext ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 92 )
|
||||
|
||||
/**
|
||||
* Range operators (>, <, >= or <=) are not allowed for the value of the data type "String".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_range_not_allowed_for_string_value_type ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 93 )
|
||||
|
||||
/**
|
||||
* No discrete Features can be found for at least one of the following freeform families: "%1$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_discrete_option_values_mandatory_for_free_form_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 94 )
|
||||
|
||||
/**
|
||||
* The validation has failed for the object "%1$" of type "%2$", because it is not configured for the current Configurator Perspective "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unconfigured_revision_in_validation ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 95 )
|
||||
|
||||
/**
|
||||
* The Availability object creation has been deprecated and replaced by Availability Rules. Please contact your system administrator for more details.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_availability_deprecated ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 96 )
|
||||
|
||||
/**
|
||||
* The Feasibility Rule object creation has been deprecated and replaced by Availability Rules. Please contact your system administrator for more details.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_feasibility_deprecated ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 97 )
|
||||
|
||||
/**
|
||||
* The requested object "%1$" of type "%2$" is already allocated to "%3$" of type "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_already_allocated ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 98 )
|
||||
|
||||
/**
|
||||
* The requested object "%1$" of type "%2$" cannot be allocated to the Product Context "%3$", unless the object "%4$" of type "%5$" is allocated.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_option_value_cannot_be_allocated ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 99 )
|
||||
|
||||
/**
|
||||
* The value "%1$" for the family "%2$" is invalid or not configured.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unknown_value_for_the_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 100 )
|
||||
|
||||
/**
|
||||
* The value for the property "%1$" for the object "%2$" of type "%3$" is invalid, because it is unable to identify a unique value in the feature family "%4$". Use "%5$" operator to define the "%1$" of "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_operator_subject_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 101 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because the session configurable object is unavailable.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_input_session_configurable_object_unavailable ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 102 )
|
||||
|
||||
/**
|
||||
* The operation "%3$" has failed, because the input object "%1$" of type "%2$" is not session configurable.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_input_object_is_not_session_configurable ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 103 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because unsupported configuration profile information is provided. Only string type configuration solver profile entries are supported.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unsupported_config_profile_info_provided ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 104 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because the number of rules is invalid.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_rules ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 105 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because an invalid family is provided.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_family ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 106 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because no family is present in the solution.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_family_not_available_in_solution ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 107 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because the provided user expression is not valid.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_convert_in_expr_unknown_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 108 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because the locked user expression is not valid.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_convert_locked_expr_unknown_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 109 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" has failed, because the configuration profile does not contain value for mandatory key(s) "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_config_profile_on_perspective ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 110 )
|
||||
|
||||
/**
|
||||
* The value for the property "%1$" for the object "%2$" of type "%3$" cannot contain the object "%4$" of type "%5$". The value can only contain objects of type "%6$" and any of its subtypes.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unsupported_object_type ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 111 )
|
||||
|
||||
/**
|
||||
* The association of the object "%1$" of type "%2$" to the object "%3$" of type "%4$" has failed. Ensure that both objects have the same value for the property "%5$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_familynamespace_not_equal ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 112 )
|
||||
|
||||
/**
|
||||
* The creation of an object of type "%1$" has failed because an invalid type is provided for the mandatory attribute "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_type_mandatory_attribute ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 113 )
|
||||
|
||||
/**
|
||||
* The operator specified for the property "%1$" for "%2$" (of type "%3$") is invalid.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_operator_default_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 114 )
|
||||
|
||||
/**
|
||||
* The features provided for the property "%1$" for "%2$" (of type "%3$") are invalid because they do not contain features specified in the property "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_features_default_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 115 )
|
||||
|
||||
/**
|
||||
* The expression in the property "%1$" for "%2$" (of type "%3$") is invalid because it contains multiple columns. Only single column expressions are allowed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_multiple_columns_subject_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 116 )
|
||||
|
||||
/**
|
||||
* The expression in the property "%1$" for "%2$" (of type "%3$") is invalid because it contains multiple features. Only a single feature is allowed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_multiple_feature_subject_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 117 )
|
||||
|
||||
/**
|
||||
* The expression in the property "%1$" for "%2$" (of type "%3$") cannot be set because it already contains "%4$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_subject_expression_already_defined_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 118 )
|
||||
|
||||
/**
|
||||
* The expression in the property "%1$" for "%2$" (type "%3$") is invalid because "%4$" (of type "%5$") is a multi-selection object in nature.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_multiselect_feature_family_subject_expression_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 119 )
|
||||
|
||||
/**
|
||||
* The "Revise" operation for "%1$"(of type "%2$") cannot be performed because no value is specified for the property "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_revise_action_denied_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 120 )
|
||||
|
||||
/**
|
||||
* The operation "%1$" on the object "%2$" of type "%3$" has failed, because the configuration profile does not contain product name and revision rule information.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_config_profile_product_info ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 121 )
|
||||
|
||||
/**
|
||||
* "%1$" is an invalid value for the property "%2$" of "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_config_criteria_keyname ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 122 )
|
||||
|
||||
/**
|
||||
* The property "%4$" is set to "%5$" for "%1$" with property "%2$" of value "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_config_criteria_key_property_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 123 )
|
||||
|
||||
/**
|
||||
* The property "%1$" is populated for "%2$" (associated to "%3$" with property "%4$" of value "%5$").
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_missing_config_criteria_entry_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 124 )
|
||||
|
||||
/**
|
||||
* The Effectivity condition cannot be set for "%1$" because only date Effectivities are allowed for objects of type "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unsupported_effectivity_value ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 125 )
|
||||
|
||||
/**
|
||||
* The external operation name "%1$" specified is not registered on the object type "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_externaloperation_is_not_registered ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 126 )
|
||||
|
||||
/**
|
||||
* The External Operation "%1$" execution has failed, because the current object "%2$" of type "%3$" does not exist in the allocated Configurator Contexts of the external operation object.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_externaloperation_invalid_context ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 127 )
|
||||
|
||||
/**
|
||||
* The External Operation "%1$" execution has failed, because the input object "%2$" of type "%3$" of this external operation is not present in the input criteria.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_externaloperation_family_not_in_criteria ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 128 )
|
||||
|
||||
/**
|
||||
* The input Configuration Set at index "%1$" is not valid, because the input Configuration Set has no variant or effectivity expression to validate.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_configuration_set ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 129 )
|
||||
|
||||
/**
|
||||
* The value for the input parameter "%1$" at index "%2$" is NULL or empty. Only valid expression inputs are allowed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_condition_to_compare ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 130 )
|
||||
|
||||
/**
|
||||
* The value for the property "%1$" for the object "%2$" of type "%3$" is invalid for the feature family "%4$". Use "%5$" operator against a feature to define the "%1$" of "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_subject_expression_for_availability_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 131 )
|
||||
|
||||
/**
|
||||
* The execution of the External Operation "%1$" has failed because the external operation returned an invalid response.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_externaloperation_invalid_response ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 132 )
|
||||
|
||||
/**
|
||||
* The External Operation "%1$" has failed in the External Operation Block "%2$": %3$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_externaloperation_external_calculation ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 133 )
|
||||
|
||||
/**
|
||||
* The expression in the property "%1$" for "%2$" (of type "%3$") is invalid: %4$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_expression_script_for_rule ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 134 )
|
||||
|
||||
/**
|
||||
* The property "%1$" for "%2$" (of type "%3$") cannot be set when the value for the property "%4$" is "%5$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_property_for_other_property ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 135 )
|
||||
|
||||
/**
|
||||
* The value "%1$" for the property "%2$" is invalid for "%3$" (of type "%4$").
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_property_value_for_object ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 136 )
|
||||
|
||||
/**
|
||||
* The external operation "%1$" has failed with status "%2$". Please report this error to your system administrator and refer to the syslog for more information.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_external_operation_failed ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 137 )
|
||||
|
||||
/**
|
||||
* The external operation "%1$" cannot be executed, because the value "%2$" for the property "%3$" is invalid.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_external_operation_invalid_property ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 138 )
|
||||
|
||||
/**
|
||||
* An error occurred while generating the authorization token for the external operation "%1$". Please report this error to your system administrator.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_external_operation_authorization_token_error ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 139 )
|
||||
|
||||
|
||||
/**
|
||||
* The "Revise" operation for the object "%1$" of type "%2$" has failed, because the revision of a discontinued WSO object is not supported.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_revise_operation ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 140 )
|
||||
|
||||
/**
|
||||
* The "Create" operation for Option Value with the object name:"%1$" and object ID:"%2$" has failed, because the numeric type of the name and ID of the object is different.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_option_value_for_create ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 141 )
|
||||
|
||||
/**
|
||||
* The hierarchy for the object "%1$" of type "%2$" could not be retrieved because it is not configured for the Configurator Perspective "%3$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_unconfigured_revision ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 142 )
|
||||
|
||||
/**
|
||||
* The JSON schema validation for "%1$" has failed.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_JSON_schema_validation_failed ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 143 )
|
||||
|
||||
/**
|
||||
* The configurator constraint type "%1$" is invalid. The supported constraint types are: %2$.
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_configurator_constraint_type ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 144 )
|
||||
|
||||
/**
|
||||
* The column expression "%1$" is invalid: "%2$".
|
||||
*/
|
||||
#define CFG0CONFIGURATOR_invalid_column_expression ( EMH_CFG0CONFIGURATOR_ERROR_BASE + 145 )
|
||||
|
||||
/**
|
||||
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,92 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2018.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Cfg0configurator solution token declarations
|
||||
*/
|
||||
|
||||
#ifndef CFG0CONFIGURATOR_TOKENS_H
|
||||
#define CFG0CONFIGURATOR_TOKENS_H
|
||||
|
||||
#include <booleanmath/cfg_tokens.h>
|
||||
#include <variabilityadaptor/variabilityadaptor_tokens.h>
|
||||
/**
|
||||
@defgroup CFG0CONFIGURATOR_TOKENS Tokens
|
||||
@ingroup CFG0CONFIGURATOR
|
||||
|
||||
Defines token values for the attribute "fnd0operator" for the
|
||||
Business Objects "Fnd0EffectivityExpression" and "Fnd0VariantExpression".
|
||||
@{
|
||||
*/
|
||||
|
||||
/** String value data type of a family */
|
||||
#define CFG0CONFIGURATOR_String_Value_Type "String"
|
||||
|
||||
/** Integer value data type of a family */
|
||||
#define CFG0CONFIGURATOR_Integer_Value_Type "Integer"
|
||||
|
||||
/** Floating Point/Numeric value data type of a family */
|
||||
#define CFG0CONFIGURATOR_Floating_Value_Type "Floating Point"
|
||||
|
||||
/** Boolean value data type of a family */
|
||||
#define CFG0CONFIGURATOR_Boolean_Value_Type "Boolean"
|
||||
|
||||
/** Date value data type of a family */
|
||||
#define CFG0CONFIGURATOR_Date_Value_Type "Date"
|
||||
|
||||
/** Error Constraint Severity */
|
||||
#define CFG0CONFIGURATOR_Error_Severity CFG_REST_CONFIGURATOR_Error_Severity
|
||||
|
||||
/** Information Constraint Severity */
|
||||
#define CFG0CONFIGURATOR_Info_Severity CFG_REST_CONFIGURATOR_Info_Severity
|
||||
|
||||
/** Warning Constraint Severity */
|
||||
#define CFG0CONFIGURATOR_Warning_Severity CFG_REST_CONFIGURATOR_Warning_Severity
|
||||
|
||||
/** Default Constraint Severity */
|
||||
#define CFG0CONFIGURATOR_Default_Severity CFG_REST_CONFIGURATOR_Default_Severity
|
||||
|
||||
/** Mandatory Constraint Severity */
|
||||
#define CFG0CONFIGURATOR_Mandatory_Severity "Mandatory"
|
||||
|
||||
/** Unknown Constraint Severity */
|
||||
#define CFG0CONFIGURATOR_Unknown_Severity "Unknown"
|
||||
|
||||
/**
|
||||
* Indicates that the option will be considered a Product Line
|
||||
*/
|
||||
#define CFG0_option_mode_product_line CFG_mode_product_line
|
||||
|
||||
/**
|
||||
* A VariantExpression with this operator code represents a configuration validation criterion
|
||||
* which must evaluate to true in order for a configuration rule to be considered valid.
|
||||
*/
|
||||
#define CFG0_operator_availability_constraint CFG_operator_availability_constraint
|
||||
|
||||
/**
|
||||
Defines an enforced condition for a rule.
|
||||
<br/>E.g. Exclude Rule : ~model | ~applicability | model & applicability & ~restriction
|
||||
<br/>Include Rule : ~model | ~applicability | model & applicability & restriction
|
||||
*/
|
||||
#define CFG0_operator_enforced_condition CFG_operator_enforced_condition
|
||||
|
||||
/**
|
||||
Defines a variant expression which is a combined representation of package.
|
||||
<br/>E.g. If the Package P1 has members A1, B1 and C1, its expression will be "A1 & B1 & C1".
|
||||
*/
|
||||
#define CFG0_product_line_variant_expression CFG_product_line_variant_expression
|
||||
|
||||
/**
|
||||
|
||||
@}
|
||||
*/
|
||||
#endif
|
@ -0,0 +1,78 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
User Exits declaration for Cfg0configurator template.
|
||||
*/
|
||||
|
||||
#ifndef CFG0CONFIGURATOR_USER_EXITS_H
|
||||
#define CFG0CONFIGURATOR_USER_EXITS_H
|
||||
|
||||
#include <unidefs.h>
|
||||
#include <Cfg0configurator/libcfg0configurator_exports.h>
|
||||
|
||||
/**
|
||||
@brief User Exit API that converts a Teamcenter formula to a custom formula format.
|
||||
@param[in] tag_t cfg0_perspective The Cfg0ConfiguratorPerspective object for which Teamcenter formula to custom formula conversion is expected.
|
||||
@param[in] const char* tc_formula Teamcenter formula string
|
||||
@param[out] char** custom_formula Converted custom formula. The memory will need to be deallocated using #MEM_free.
|
||||
*/
|
||||
#define CFG0_convert_tc_formula_to_custom_formula "BMF_USER_CFG0_convert_teamcenter_formula_to_custom_formula"
|
||||
|
||||
/**
|
||||
@ brief User Exit API that converts a custom formula to a Teamcenter formula format.
|
||||
@param[in] tag_t cfg0_perspective The Cfg0ConfiguratorPerspective object for which custom formula to Teamcenter formula conversion is expected.
|
||||
@param[in] const char* custom_formula Custom formula string
|
||||
@param[out] char** tc_formula Converted Teamcenter formula. The memory will need to be deallocated using #MEM_free.
|
||||
*/
|
||||
#define CFG0_convert_custom_formula_to_tc_formula "BMF_USER_CFG0_convert_custom_formula_to_teamcenter_formula"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/**
|
||||
Provides an extension point for customers to plug the customization for converting Teamcenter formula into customized format.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success</li>
|
||||
<li>Possibly other errors.</li>
|
||||
</ul>
|
||||
*/
|
||||
extern CFG0CONFIGURATOR_API int USER_CFG0_convert_teamcenter_formula_to_custom_formula(
|
||||
tag_t cfg0_perspective, /**< (I) The Cfg0ConfiguratorPerspective object for which Teamcenter formula to custom formula conversion is expected. */
|
||||
const char* tc_formula, /**< (I) Teamcenter formula string */
|
||||
char** custom_formula /**< (OF) Converted custom formula */
|
||||
);
|
||||
|
||||
/**
|
||||
Provides an extension point for customers to plug the customization for converting customized formula into Teamcenter format.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success</li>
|
||||
<li>Possibly other errors.</li>
|
||||
</ul>
|
||||
*/
|
||||
extern CFG0CONFIGURATOR_API int USER_CFG0_convert_custom_formula_to_teamcenter_formula(
|
||||
tag_t cfg0_perspective, /**< (I) The Cfg0ConfiguratorPerspective object for which Custom formula to Teamcenter formula conversion is expected. */
|
||||
const char* custom_formula, /**< (I) Custom formula string */
|
||||
char** tc_formula /**< (OF) Converted Teamcenter formula */
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#include <Cfg0configurator/libcfg0configurator_undef.h>
|
||||
#endif /* CFG0CONFIGURATOR_USER_EXITS_H */
|
@ -0,0 +1,58 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Dispatch Library Cfg0configurator
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCfg0configurator
|
||||
|
||||
#if !defined(LIBCFG0CONFIGURATOR) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCFG0CONFIGURATOR is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CFG0CONFIGURATOR_API, not CFG0CONFIGURATOREXPORT */
|
||||
|
||||
#define CFG0CONFIGURATOR_API CFG0CONFIGURATOREXPORT
|
||||
|
||||
#if IPLIB==libCfg0configurator || defined(LIBCFG0CONFIGURATOR)
|
||||
# if defined(__lint)
|
||||
# define CFG0CONFIGURATOREXPORT __export(Cfg0configurator)
|
||||
# define CFG0CONFIGURATORGLOBAL extern __global(Cfg0configurator)
|
||||
# define CFG0CONFIGURATORPRIVATE extern __private(Cfg0configurator)
|
||||
# elif defined(_WIN32)
|
||||
# define CFG0CONFIGURATOREXPORT __declspec(dllexport)
|
||||
# define CFG0CONFIGURATORGLOBAL extern __declspec(dllexport)
|
||||
# define CFG0CONFIGURATORPRIVATE extern
|
||||
# else
|
||||
# define CFG0CONFIGURATOREXPORT
|
||||
# define CFG0CONFIGURATORGLOBAL extern
|
||||
# define CFG0CONFIGURATORPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CFG0CONFIGURATOREXPORT __export(Cfg0configurator)
|
||||
# define CFG0CONFIGURATORGLOBAL extern __global(Cfg0configurator)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CFG0CONFIGURATOREXPORT __declspec(dllimport)
|
||||
# define CFG0CONFIGURATORGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CFG0CONFIGURATOREXPORT
|
||||
# define CFG0CONFIGURATORGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,25 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCFG0CONFIGURATOR) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCFG0CONFIGURATOR is not defined
|
||||
#endif
|
||||
|
||||
#undef CFG0CONFIGURATOR_API
|
||||
#undef CFG0CONFIGURATOREXPORT
|
||||
#undef CFG0CONFIGURATORGLOBAL
|
||||
#undef CFG0CONFIGURATORPRIVATE
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
Configurator Partition Interface Error Codes Declaration
|
||||
*/
|
||||
|
||||
#ifndef CFG1CONFIGURATOR_ERRORS_H
|
||||
#define CFG1CONFIGURATOR_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CFG1CONFIGURATOR_ERRORS Configurator Partition Interface Errors
|
||||
@ingroup CFG1CONFIGURATOR
|
||||
@{
|
||||
*/
|
||||
|
||||
#define EMH_CFG1CONFIGURATOR_ERROR_BASE EMH_CFG1CONFIGURATOR_error_base
|
||||
|
||||
/**
|
||||
* An internal error has occurred in the Configurator Partition Interface (cfg1configurator) module: %1$. Please report this error to your system administrator.
|
||||
*/
|
||||
#define CFG1CONFIGURATOR_internal_error ( EMH_CFG1CONFIGURATOR_ERROR_BASE + 1 )
|
||||
|
||||
/**
|
||||
* The object "%1$" of type "%2$" cannot be deleted, because it is associated to one or more Partition objects.
|
||||
*/
|
||||
#define CFG1CONFIGURATOR_partition_relation_exist ( EMH_CFG1CONFIGURATOR_ERROR_BASE + 2 )
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
#endif
|
@ -0,0 +1,58 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Dispatch Library Cip0controlinspplan
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCip0controlinspplan
|
||||
|
||||
#if !defined(LIBCIP0CONTROLINSPPLAN) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCIP0CONTROLINSPPLAN is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CIP0CONTROLINSPPLAN_API, not CIP0CONTROLINSPPLANEXPORT */
|
||||
|
||||
#define CIP0CONTROLINSPPLAN_API CIP0CONTROLINSPPLANEXPORT
|
||||
|
||||
#if IPLIB==libCip0controlinspplan || defined(LIBCIP0CONTROLINSPPLAN)
|
||||
# if defined(__lint)
|
||||
# define CIP0CONTROLINSPPLANEXPORT __export(Cip0controlinspplan)
|
||||
# define CIP0CONTROLINSPPLANGLOBAL extern __global(Cip0controlinspplan)
|
||||
# define CIP0CONTROLINSPPLANPRIVATE extern __private(Cip0controlinspplan)
|
||||
# elif defined(_WIN32)
|
||||
# define CIP0CONTROLINSPPLANEXPORT __declspec(dllexport)
|
||||
# define CIP0CONTROLINSPPLANGLOBAL extern __declspec(dllexport)
|
||||
# define CIP0CONTROLINSPPLANPRIVATE extern
|
||||
# else
|
||||
# define CIP0CONTROLINSPPLANEXPORT
|
||||
# define CIP0CONTROLINSPPLANGLOBAL extern
|
||||
# define CIP0CONTROLINSPPLANPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CIP0CONTROLINSPPLANEXPORT __export(Cip0controlinspplan)
|
||||
# define CIP0CONTROLINSPPLANGLOBAL extern __global(Cip0controlinspplan)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CIP0CONTROLINSPPLANEXPORT __declspec(dllimport)
|
||||
# define CIP0CONTROLINSPPLANGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CIP0CONTROLINSPPLANEXPORT
|
||||
# define CIP0CONTROLINSPPLANGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,25 @@
|
||||
//@<COPYRIGHT>@
|
||||
//==================================================
|
||||
//Copyright $2020.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//@<COPYRIGHT>@
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCIP0CONTROLINSPPLAN) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCIP0CONTROLINSPPLAN is not defined
|
||||
#endif
|
||||
|
||||
#undef CIP0CONTROLINSPPLAN_API
|
||||
#undef CIP0CONTROLINSPPLANEXPORT
|
||||
#undef CIP0CONTROLINSPPLANGLOBAL
|
||||
#undef CIP0CONTROLINSPPLANPRIVATE
|
@ -0,0 +1,90 @@
|
||||
/*=============================================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2019
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
===============================================================================*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Cla0classification Error Codes Declaration
|
||||
|
||||
*/
|
||||
|
||||
#ifndef CLA0CLASSIFICATION_ERRORS_H
|
||||
#define CLA0CLASSIFICATION_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CLA0CLASSIFICATION_ERRORS_H CLA Errors
|
||||
@ingroup CLA
|
||||
@{
|
||||
*/
|
||||
|
||||
#define CLA0CLASSIFICATION_ERROR_BASE EMH_CLA_error_base
|
||||
|
||||
|
||||
/**
|
||||
@name Parameter validation errors
|
||||
@{
|
||||
*/
|
||||
/** The schema file "%1$" could not be found. */
|
||||
#define CLA_err_schema_file_not_found ( CLA0CLASSIFICATION_ERROR_BASE + 1 )
|
||||
|
||||
/** The schema validation has failed. The path to the violated rule in the schema file is "%1$" and the violated schema keyword is "%2$". */
|
||||
#define CLA_err_schema_validation ( CLA0CLASSIFICATION_ERROR_BASE + 2 )
|
||||
|
||||
/** The input request is not a valid JSON file. */
|
||||
#define CLA_err_no_valid_json ( CLA0CLASSIFICATION_ERROR_BASE + 3 )
|
||||
|
||||
/** The JSON data could not be parsed. */
|
||||
#define CLA_err_parse_json_error ( CLA0CLASSIFICATION_ERROR_BASE + 4 )
|
||||
|
||||
/** The specified classification node with ID "%1$" cannot be found. */
|
||||
#define CLA_err_node_not_found ( CLA0CLASSIFICATION_ERROR_BASE + 5 )
|
||||
|
||||
/** The specified classification object with ID "%1$" cannot be found. */
|
||||
#define CLA_err_missing_classification_object ( CLA0CLASSIFICATION_ERROR_BASE + 6 )
|
||||
|
||||
/** "%1$" cannot be used for classification. Please use a unique object ID or a name for classification. */
|
||||
#define CLA_err_object_to_classify_not_unique ( CLA0CLASSIFICATION_ERROR_BASE + 7 )
|
||||
|
||||
/** Classification nodes from multiple classification systems are not currently supported in save objects request. */
|
||||
#define CLA_err_mixed_nodes_not_supported ( CLA0CLASSIFICATION_ERROR_BASE + 8 )
|
||||
|
||||
/** Classification objects from multiple classification systems are not currently supported in get or delete objects request. */
|
||||
#define CLA_err_mixed_classification_objects_not_supported ( CLA0CLASSIFICATION_ERROR_BASE + 9 )
|
||||
|
||||
/** The required "Library Management" template is not installed. Please contact your system administrator. */
|
||||
#define CLA_err_librarymgmt_not_installed ( CLA0CLASSIFICATION_ERROR_BASE + 10 )
|
||||
|
||||
/** The context information is not valid, because the specified "%1$" with ID "%2$" cannot be found. Please provide the ID of an existing "%1$". */
|
||||
#define CLA_err_context_not_valid ( CLA0CLASSIFICATION_ERROR_BASE + 11 )
|
||||
|
||||
/** Save operation is not allowed on a Library Node "%1$" because it is not referenced to any Classification Node. Please contact your system administrator. */
|
||||
#define CLA_err_not_a_classifying_node ( CLA0CLASSIFICATION_ERROR_BASE + 12 )
|
||||
|
||||
/** The json file could not be found in transient volume. */
|
||||
#define CLA_err_file_not_found_in_transient_volume ( CLA0CLASSIFICATION_ERROR_BASE + 13 )
|
||||
|
||||
/** The Save operation could not be completed because the ClassificationObject at index "%1$" is missing one or more required items ID, NodeID, or UnitySystem. */
|
||||
#define CLA_err_invalid_object ( CLA0CLASSIFICATION_ERROR_BASE + 14 )
|
||||
|
||||
/** The Save operation could not be completed because the ClassificationProperty belonging to "%1$" at index "%2$" is missing one or more required items DataType or ID. */
|
||||
#define CLA_err_invalid_property ( CLA0CLASSIFICATION_ERROR_BASE + 15 )
|
||||
|
||||
/** The input object ID list cannot be empty in get or delete objects request. */
|
||||
#define CLA_err_input_IDs_empty ( CLA0CLASSIFICATION_ERROR_BASE + 16 )
|
||||
|
||||
/** The save operation could not be completed because the input Classification object list is empty. */
|
||||
#define CLA_err_input_empty ( CLA0CLASSIFICATION_ERROR_BASE + 17 )
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
#endif
|
@ -0,0 +1,159 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2018.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
#ifndef CLA0CLASSIFICATION_ITK_H
|
||||
#define CLA0CLASSIFICATION_ITK_H
|
||||
|
||||
#include <Cla0classification/libcla0classification_exports.h>
|
||||
|
||||
/**
|
||||
@defgroup CLA0CLASSIFICATION Classification Interface
|
||||
@ingroup TC
|
||||
|
||||
All published Classification APIs will be exposed through this unified interface.
|
||||
|
||||
@{
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/**
|
||||
@name Admin
|
||||
@{
|
||||
*/
|
||||
/**
|
||||
Identifies the Classification deployment level
|
||||
|
||||
Valid values are:
|
||||
<ul>
|
||||
<li>Traditional Classification
|
||||
<li>Next Generation Classification
|
||||
<li>Next Generation Classification with Standard Taxonomy
|
||||
</ul>
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
</ul>
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_get_classification_level(
|
||||
char** response /**< (OF) Output */
|
||||
);
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
/** Creates or saves classification objects.
|
||||
@note An error will be returned if the operation could not be completed successfully and information about the error will be in @p response.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
</ul>
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_save_classification_objects(
|
||||
const char* request, /**< (I) The inputted JSON request string. */
|
||||
char** response /**< (OF) The information on saved objects in JSON string format. */
|
||||
);
|
||||
|
||||
/** Retrieves the classification objects, with all its values for the given classification object IDs.
|
||||
@note An error will be returned if the operation could not be completed successfully and information about the error will be in @p response.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
</ul>
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_get_classification_objects(
|
||||
const char* request, /**< (I) The inputted JSON request string. */
|
||||
char** response /**< (OF) Complete details about requested classification objects in JSON string format. */
|
||||
);
|
||||
|
||||
/** Deletes classification objects for the given classification object ids.
|
||||
@note An error will be returned if the operation could not be completed successfully and information about the error will be in @p response.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
</ul>
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_delete_classification_objects(
|
||||
const char* request, /**< (I) The inputted JSON request string. */
|
||||
char** response /**< (OF) Uids of deleted classification objects in JSON string format. */
|
||||
);
|
||||
|
||||
/**
|
||||
Searches classification objects for the Library focussed classification "search" request.
|
||||
<br/>The schema applied for the Json request is from SearchClassificationObjects_Request.schema.json
|
||||
@note An error will be returned if the operation could not be completed successfully and information about the error will be in @p response.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok always.
|
||||
</ul>
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_search_classification_objects(
|
||||
const char* request, /**< (I) The JSON request string. */
|
||||
char** response /**< (OF) The retrieved classification objects with ico information. */
|
||||
);
|
||||
|
||||
/**
|
||||
Retrieve the children nodes for the Classification nodes. The node that is supported currently is the library hierarchy node.
|
||||
<br/>The schema applied for the Json request is from GetClassificationChildren_Request.schema.json
|
||||
@note An error will be returned if the operation could not be completed successfully and information about the error will be in @p response.
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#CLA_err_no_valid_json if the input request is not a valid JSON file.
|
||||
<li>#CLA_err_schema_validation if the schema validation has failed.
|
||||
</ul>
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_get_children_nodes(
|
||||
const char* request, /**< (I) The JSON request string. */
|
||||
char** response /**< (OF) The retrieved children nodes for a given node in Json string format. */
|
||||
);
|
||||
|
||||
/**
|
||||
Imports node definitions using a passed in JSON request string, outputs any errors through a JSON response string
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>Possibly other errors.
|
||||
</ul>
|
||||
|
||||
@note Errors are returned through the JSON response if any are present, which the caller needs to handle.
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_import_classification_definitions(
|
||||
const char* request, /**< (I) The JSON request string. */
|
||||
bool dry_run, /**< (I) Validate the input json without creating classification definitions if it is set to true otherwise definitions will get created*/
|
||||
char** response /**< (OF) The retrieved classification definitions in Json string format. */
|
||||
);
|
||||
|
||||
/**
|
||||
Searches classification definitions using the criteria provided in the input JSON string and outputs a JSON string containing search results.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>Possibly other errors.
|
||||
</ul>
|
||||
|
||||
@note Errors are returned through the JSON response if any are present, which the caller needs to handle.
|
||||
*/
|
||||
extern CLA0CLASSIFICATION_API int CLA_search_classification_definitions(
|
||||
const char* request, /**< (I) The JSON request string. */
|
||||
char** response /**< (OF) The JSON response containing search results. */
|
||||
);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#include <Cla0classification/libcla0classification_undef.h>
|
||||
#endif
|
@ -0,0 +1,60 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2018.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Library CLA0CLASSIFICATION
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCla0classification
|
||||
|
||||
#if !defined(LIBCLA0CLASSIFICATION) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCLA0CLASSIFICATION is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CLA0CLASSIFICATION_API, not CLA0CLASSIFICATIONEXPORT */
|
||||
|
||||
#define CLA0CLASSIFICATION_API CLA0CLASSIFICATIONEXPORT
|
||||
|
||||
#if IPLIB==LIBCLA0CLASSIFICATION || defined(LIBCLA0CLASSIFICATION)
|
||||
# if defined(__lint)
|
||||
# define CLA0CLASSIFICATIONEXPORT __export(Cla0classification)
|
||||
# define CLA0CLASSIFICATIONGLOBAL extern __global(Cla0classification)
|
||||
# define CLA0CLASSIFICATIONPRIVATE extern __private(Cla0classification)
|
||||
# elif defined(_WIN32)
|
||||
# define CLA0CLASSIFICATIONEXPORT __declspec(dllexport)
|
||||
# define CLA0CLASSIFICATIONGLOBAL extern __declspec(dllexport)
|
||||
# define CLA0CLASSIFICATIONPRIVATE extern
|
||||
# else
|
||||
# define CLA0CLASSIFICATIONEXPORT
|
||||
# define CLA0CLASSIFICATIONGLOBAL extern
|
||||
# define CLA0CLASSIFICATIONPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CLA0CLASSIFICATIONEXPORT __export(Cla0classification)
|
||||
# define CLA0CLASSIFICATIONGLOBAL extern __global(Cla0classification)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CLA0CLASSIFICATIONEXPORT __declspec(dllimport)
|
||||
# define CLA0CLASSIFICATIONGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CLA0CLASSIFICATIONEXPORT
|
||||
# define CLA0CLASSIFICATIONGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,27 @@
|
||||
/* LIBCLA0CLASSIFICATIONPRIVATE
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2018.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCLA0CLASSIFICATION) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCLA0CLASSIFICATION is not defined
|
||||
#endif
|
||||
|
||||
#undef LIBCLA0CLASSIFICATION_API
|
||||
#undef LIBCLA0CLASSIFICATIONEXPORT
|
||||
#undef LIBCLA0CLASSIFICATIONGLOBAL
|
||||
#undef LIBCLA0CLASSIFICATION
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2017
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
Abstract Color Rule Error Codes Declaration
|
||||
*/
|
||||
|
||||
#ifndef CLR0COLORAPPEARANCE_ERRORS_HXX
|
||||
#define CLR0COLORAPPEARANCE_ERRORS_HXX
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CLR0COLORAPPEARANCE_ERRORS Errors for Color Appearance application.
|
||||
@ingroup CLR0COLORAPPEARANCE
|
||||
@{
|
||||
*/
|
||||
|
||||
#define EMH_CLR0COLORAPPEARANCE_ERROR_BASE EMH_CLR0COLORAPPEARANCE_error_base
|
||||
|
||||
/**
|
||||
* A name is required for the Color Appearance Group.
|
||||
*/
|
||||
#define CLR0COLORAPPEARANCE_empty_group_name_not_allowed ( EMH_CLR0COLORAPPEARANCE_ERROR_BASE + 1 )
|
||||
|
||||
/**
|
||||
* A Surface Designator is required.
|
||||
*/
|
||||
#define CLR0COLORAPPEARANCE_empty_surface_designator_not_allowed ( EMH_CLR0COLORAPPEARANCE_ERROR_BASE + 2 )
|
||||
|
||||
/**
|
||||
* The Revision Rule specified in the preference "Cbm0DefaultRevisionRule" is invalid.
|
||||
*/
|
||||
#define CLR0COLORAPPEARANCE_revision_rule_preference_undefined ( EMH_CLR0COLORAPPEARANCE_ERROR_BASE + 3 )
|
||||
|
||||
/**
|
||||
* The Product Appearance Breakdown root of the "%1$" object being pasted must be different from that of the destination objects.
|
||||
*/
|
||||
#define CLR0COLORAPPEARANCE_different_product_appearance_breakdown ( EMH_CLR0COLORAPPEARANCE_ERROR_BASE + 4 )
|
||||
|
||||
/**
|
||||
* "%1$" already has a parent.
|
||||
*/
|
||||
#define CLR0COLORAPPEARANCE_parent_exists ( EMH_CLR0COLORAPPEARANCE_ERROR_BASE + 5 )
|
||||
|
||||
/**
|
||||
* A Designator Assignments dataset with the same Product Appearance Breakdown root already exists on the Item Revision.
|
||||
*/
|
||||
#define CLR0COLORAPPEARANCE_designator_assignments_dataset_for_pab_root_exists ( EMH_CLR0COLORAPPEARANCE_ERROR_BASE + 6 )
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,78 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2014
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
Abstract Color Rule Error Codes Declaration
|
||||
*/
|
||||
|
||||
#ifndef CLR1COLORRULE_ERRORS_HXX
|
||||
#define CLR1COLORRULE_ERRORS_HXX
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CLR1COLORRULE_ERRORS Errors for Color Rule application.
|
||||
@ingroup CLR1COLORRULE
|
||||
@{
|
||||
*/
|
||||
|
||||
#define EMH_CLR1COLORRULE_ERROR_BASE EMH_CLR1COLORRULE_error_base
|
||||
|
||||
/**
|
||||
* No appearance is attached to the Color Rule object "%1$".
|
||||
*/
|
||||
#define CLR1COLORRULE_appearance_not_found ( EMH_CLR1COLORRULE_error_base + 1 )
|
||||
|
||||
/**
|
||||
* A valid expression needs to be attached to the Color Rule "%1$".
|
||||
*/
|
||||
#define CLR1COLORRULE_empty_expression ( EMH_CLR1COLORRULE_error_base + 2 )
|
||||
|
||||
/**
|
||||
* The expression attached to the Color Rule "%1$" of type "%2$"is invalid, because it conflicts with configurator constraints.
|
||||
*/
|
||||
#define CLR1COLORRULE_invalid_expression ( EMH_CLR1COLORRULE_error_base + 3 )
|
||||
|
||||
/**
|
||||
* The Revision Rule "%1$" specified in the preference "ColorRuleReleaseRevisionRulePref" could not be found.
|
||||
*/
|
||||
#define CLR1COLORRULE_invalid_revision_rule_pref ( EMH_CLR1COLORRULE_error_base + 4 )
|
||||
|
||||
/**
|
||||
* No Revision Rule is specified for the preference "ColorRuleReleaseRevisionRulePref" used to validate expressions attached to Color Rules.
|
||||
*/
|
||||
#define CLR1COLORRULE_no_revision_rule_pref ( EMH_CLR1COLORRULE_error_base + 5 )
|
||||
|
||||
/**
|
||||
* The object "%1$" cannot be revised, because it is not released.
|
||||
*/
|
||||
#define CLR1COLORRULE_object_not_released ( EMH_CLR1COLORRULE_error_base + 6 )
|
||||
|
||||
/**
|
||||
* The Abstract Color Rule Thread "%1$" is not configured.
|
||||
*/
|
||||
#define CLR1COLORRULE_thread_not_configured ( EMH_CLR1COLORRULE_error_base + 7 )
|
||||
|
||||
/**
|
||||
* The Abstract Color Rule Thread "%1$" is not configured with a valid type.
|
||||
*/
|
||||
#define CLR1COLORRULE_thread_not_valid_type ( EMH_CLR1COLORRULE_error_base + 8 )
|
||||
|
||||
/**
|
||||
* The specified Product Context is invalid.
|
||||
*/
|
||||
#define CLR1COLORRULE_invalid_context ( EMH_CLR1COLORRULE_error_base + 9 )
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,439 @@
|
||||
/*=============================================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
===============================================================================*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Cls0classification Error Codes Declaration
|
||||
|
||||
*/
|
||||
|
||||
#ifndef CLS0CLASSIFICATION_ERRORS_H
|
||||
#define CLS0CLASSIFICATION_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CLS0CLASSIFICATION_ERRORS_H CLS Errors
|
||||
@ingroup CLS
|
||||
@{
|
||||
*/
|
||||
|
||||
#define CLS0CLASSIFICATION_ERROR_BASE EMH_CLS0CLASSIFICATION_error_base
|
||||
|
||||
|
||||
/**
|
||||
@name Parameter validation errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_GENERAL_ERROR_BASE CLS0CLASSIFICATION_ERROR_BASE
|
||||
|
||||
/** An internal error has occurred in the Classification application. Please refer to the syslog file for additional information. */
|
||||
#define CLS_err_internal_error ( CLS0CLASSIFICATION_ERROR_BASE + 1 )
|
||||
|
||||
/** The mandatory parameter "%1$" in the function "%2$" has not been supplied. Please contact your system administrator to report this error. */
|
||||
#define CLS_err_missing_parameter ( CLS0CLASSIFICATION_ERROR_BASE + 2 )
|
||||
|
||||
/** A null reference was specified when expecting a non-null reference. */
|
||||
#define CLS_err_null_tag_param ( CLS0CLASSIFICATION_ERROR_BASE + 3 )
|
||||
|
||||
/** A mandatory output parameter "%1$" in the function "%2$" has not been supplied. Please contact your system administrator to report this error. */
|
||||
#define CLS_err_missing_mandatory_output_param ( CLS0CLASSIFICATION_ERROR_BASE + 4 )
|
||||
|
||||
/** The given object type "%1$" is not a valid Classification object type. */
|
||||
#define CLS_err_invalid_object_type ( CLS0CLASSIFICATION_ERROR_BASE + 5 )
|
||||
|
||||
/** The search criteria property "%1$" was not specified. */
|
||||
#define CLS_err_missing_search_criteria_prop ( CLS0CLASSIFICATION_ERROR_BASE + 6 )
|
||||
|
||||
/** The search criteria value "%1$" was not specified. */
|
||||
#define CLS_err_missing_search_criteria_value ( CLS0CLASSIFICATION_ERROR_BASE + 7 )
|
||||
|
||||
/** The specified Classification class %1$ cannot be found. */
|
||||
#define CLS_err_class_not_found ( CLS0CLASSIFICATION_ERROR_BASE + 8 )
|
||||
|
||||
/** The specified Context with ID "%1$" cannot be found. */
|
||||
#define CLS_err_context_not_found ( CLS0CLASSIFICATION_ERROR_BASE + 9 )
|
||||
|
||||
/** The specified Hierarchy node with ID "%1$" cannot be found. */
|
||||
#define CLS_err_node_not_found ( CLS0CLASSIFICATION_ERROR_BASE + 10 )
|
||||
|
||||
/** The specified Hierarchy view with ID "%1$" cannot be found. */
|
||||
#define CLS_err_hierarchy_view_not_found ( CLS0CLASSIFICATION_ERROR_BASE + 11 )
|
||||
|
||||
/** The object type input parameter has not been supplied. Please report this error to your system administrator.*/
|
||||
#define CLS_err_missing_object_type ( CLS0CLASSIFICATION_ERROR_BASE + 12 )
|
||||
|
||||
/** The specified object with ID "%1$" cannot be found. */
|
||||
#define CLS_err_missing_classification_object ( CLS0CLASSIFICATION_ERROR_BASE + 13 )
|
||||
|
||||
/** The specified operation "%1$" is not supported on the given object type "%2$" at this time. */
|
||||
#define CLS_err_operation_not_supported ( CLS0CLASSIFICATION_ERROR_BASE + 14 )
|
||||
|
||||
/** The supplied Hierarchy element type "%1$" is not supported. Please use an element of one of the following types or sub-types: %2$. */
|
||||
#define CLS_err_hierarchy_element_unknown ( CLS0CLASSIFICATION_ERROR_BASE + 15 )
|
||||
|
||||
/** The specified file "%1$" cannot be opened, either because it does not exist, or it is being used by another process. */
|
||||
#define CLS_err_opening_file ( CLS0CLASSIFICATION_ERROR_BASE + 16 )
|
||||
|
||||
/** The specified upgrade path "%1$" is not supported for the current version. */
|
||||
#define CLS_err_unsupported_upgrade_path ( CLS0CLASSIFICATION_ERROR_BASE + 17 )
|
||||
|
||||
/** Not able to parse the object. */
|
||||
#define CLS_err_parse_json_object ( CLS0CLASSIFICATION_ERROR_BASE + 18 )
|
||||
|
||||
/** The selected functionality cannot be used because the BMIDE template "%1$" is not deployed. */
|
||||
#define CLS_err_missing_template ( CLS0CLASSIFICATION_ERROR_BASE + 19 )
|
||||
|
||||
/** An invalid classification definition type was specified. */
|
||||
#define CLS_invalid_classification_definition ( CLS0CLASSIFICATION_ERROR_BASE + 20 )
|
||||
|
||||
/** The value provided is invalid: %1$. Please refer to the syslog for more details. */
|
||||
#define CLS_err_invalid_value ( CLS0CLASSIFICATION_ERROR_BASE + 99 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Context errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_CONTEXT_ERROR_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 100 )
|
||||
|
||||
/** The Context ID was not specified. */
|
||||
#define CLS_err_missing_context_id ( CLS0CLASSIFICATION_CONTEXT_ERROR_BASE + 1 )
|
||||
|
||||
/** The Context name was not specified. */
|
||||
#define CLS_err_missing_context_name ( CLS0CLASSIFICATION_CONTEXT_ERROR_BASE + 2 )
|
||||
|
||||
/** A required reference to the containing Context was not specified. */
|
||||
#define CLS_err_missing_context ( CLS0CLASSIFICATION_CONTEXT_ERROR_BASE + 3 )
|
||||
|
||||
/** The default Classification Context with ID "%1$" cannot be deleted. */
|
||||
#define CLS_err_context_cannot_delete_default ( CLS0CLASSIFICATION_CONTEXT_ERROR_BASE + 4 )
|
||||
|
||||
/** The Context with ID "%1$" cannot be saved because it would violate the uniqueness criteria. Please specify unique values. */
|
||||
#define CLS_err_context_violates_uniqueness ( CLS0CLASSIFICATION_CONTEXT_ERROR_BASE + 5 )
|
||||
|
||||
/** The Context with ID "%1$" cannot be deleted, because it contains Hierarchy views. Please delete these Hierarchy views first, or invoke the delete operation again on this Context, using the "Recursive Delete" option. */
|
||||
#define CLS_err_context_cannot_delete_views_exist ( CLS0CLASSIFICATION_CONTEXT_ERROR_BASE + 6 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Hierarchy scheme errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_SCHEME_ERROR_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 200 )
|
||||
|
||||
/** The Scheme name is not specified. */
|
||||
#define CLS_err_missing_scheme_name ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 1 )
|
||||
|
||||
/** A required reference to the containing Context is not specified. */
|
||||
#define CLS_err_missing_context_tag ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 2 )
|
||||
|
||||
/** The specified Scheme cannot be found. */
|
||||
#define CLS_err_scheme_not_found ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 3 )
|
||||
|
||||
/** A required reference to the configuration Scheme was not specified. */
|
||||
#define CLS_err_scheme_missing_hierarchy_scheme ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 4 )
|
||||
|
||||
/** The default Classification Scheme of Type "%1$" cannot be deleted. */
|
||||
#define CLS_err_scheme_cannot_delete_default ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 5 )
|
||||
|
||||
/** The Scheme of Type "%1$" cannot be saved because it would violate the uniqueness criteria. Please specify unique values. */
|
||||
#define CLS_err_scheme_violates_uniqueness ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 6 )
|
||||
|
||||
/** A required reference to the classification scheme was not specified. Please report this error to your system administrator. */
|
||||
#define CLS_err_missing_scheme ( CLS0CLASSIFICATION_SCHEME_ERROR_BASE + 7 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Hierarchy view errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0HIERARCHY_VIEW_ERROR_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 300 )
|
||||
|
||||
/** The Hierarchy view ID was not specified. */
|
||||
#define CLS_err_missing_hierarchy_view_id ( CLS0HIERARCHY_VIEW_ERROR_BASE + 1 )
|
||||
|
||||
/** The Hierarchy view name was not specified. */
|
||||
#define CLS_err_missing_hierarchy_view_name ( CLS0HIERARCHY_VIEW_ERROR_BASE + 2 )
|
||||
|
||||
/** An invalid Hierarchy view reference was specified. */
|
||||
#define CLS_err_invalid_hierarchy_view ( CLS0HIERARCHY_VIEW_ERROR_BASE + 3 )
|
||||
|
||||
/** A required reference to the Hierarchy view was not specified. */
|
||||
#define CLS_err_missing_hierarchy_view ( CLS0HIERARCHY_VIEW_ERROR_BASE + 4 )
|
||||
|
||||
/** A Hierarchy view with ID "%1$" could not be created. Please refer to the syslog file for additional information. */
|
||||
#define CLS_err_hierarchy_view_creation_failed ( CLS0HIERARCHY_VIEW_ERROR_BASE + 5 )
|
||||
|
||||
/** The default Hierarchy view with ID "%1$" cannot be deleted. */
|
||||
#define CLS_err_hierarchy_view_cannot_delete_default ( CLS0HIERARCHY_VIEW_ERROR_BASE + 6 )
|
||||
|
||||
/** The Hierarchy view with ID "%1$" cannot be saved because it would violate the uniqueness criteria. Please specify unique values. */
|
||||
#define CLS_err_hierarchy_view_violates_uniqueness ( CLS0HIERARCHY_VIEW_ERROR_BASE + 7 )
|
||||
|
||||
/** The Hierarchy view with ID "%1$" cannot be deleted, because it contains Hierarchy nodes. Please delete these Hierarchy nodes first, or invoke the delete operation again on this Hierarchy view, using the "Recursive Delete" option. */
|
||||
#define CLS_err_hierarchy_view_cannot_delete_nodes_exist ( CLS0HIERARCHY_VIEW_ERROR_BASE + 8 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Hierarchy node errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0HIERARCHY_NODE_ERROR_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 400 )
|
||||
|
||||
/** The Hierarchy node ID was not specified. */
|
||||
#define CLS_err_hierarchy_node_id_unspecified ( CLS0HIERARCHY_NODE_ERROR_BASE + 1 )
|
||||
|
||||
/** The Hierarchy node name was not specified. */
|
||||
#define CLS_err_hierarchy_node_name_unspecified ( CLS0HIERARCHY_NODE_ERROR_BASE + 2 )
|
||||
|
||||
/** No parental reference is specified for the Hierarchy node with ID "%1$". Please specify either a parent Hierarchy node or Hierarchy view if this is a top-level node. */
|
||||
#define CLS_err_orphaned_hierarchy_node ( CLS0HIERARCHY_NODE_ERROR_BASE + 3 )
|
||||
|
||||
/** An invalid parent node was specified for the Hierarchy node with ID "%1$". Please specify a parent node of type defined in the associated scheme. */
|
||||
#define CLS_err_invalid_parent_node ( CLS0HIERARCHY_NODE_ERROR_BASE + 4 )
|
||||
|
||||
/** Conflicting parental references are specified for the Hierarchy node with ID "%1$". Please specify only one parental reference. */
|
||||
#define CLS_err_conflicting_parents ( CLS0HIERARCHY_NODE_ERROR_BASE + 5 )
|
||||
|
||||
/** A circular ancestor lineage is defined for the Hierarchy node with ID "%1$". Please specify parental references that do not result in a circular lineage. */
|
||||
#define CLS_err_circular_parental_lineage ( CLS0HIERARCHY_NODE_ERROR_BASE + 6 )
|
||||
|
||||
/** The specified Hierarchy node with ID "%1$" cannot be added as a child of the parent Hierarchy node with ID "%2$", because it is marked as a leaf node. */
|
||||
#define CLS_err_cannot_add_child_to_parent_node ( CLS0HIERARCHY_NODE_ERROR_BASE + 7 )
|
||||
|
||||
/** The specified attachment type "%1$" is invalid for the Hierarchy node with ID "%2$". */
|
||||
#define CLS_err_node_unknown_attachment_type ( CLS0HIERARCHY_NODE_ERROR_BASE + 8 )
|
||||
|
||||
/** The Hierarchy node with ID "%1$" cannot be saved because it would violate the uniqueness criteria. Please specify unique values. */
|
||||
#define CLS_err_node_violates_uniqueness ( CLS0HIERARCHY_NODE_ERROR_BASE + 9 )
|
||||
|
||||
/** The specified node characteristic does not exist. */
|
||||
#define CLS_err_unknown_characteristic ( CLS0HIERARCHY_NODE_ERROR_BASE + 10 )
|
||||
|
||||
/** A storage class was specified for the Group node with ID "%1$". A Group node cannot be associated with a storage class. Please create a Group node without specifying the storage class. */
|
||||
#define CLS_err_storage_specified_for_group_node ( CLS0HIERARCHY_NODE_ERROR_BASE + 11 )
|
||||
|
||||
/** The associated storage class of ID "%1$" has already been consumed by the Master node of ID "%2$". Please specify a storage class that is not already consumed by any Master node. */
|
||||
#define CLS_err_master_node_storage_already_used ( CLS0HIERARCHY_NODE_ERROR_BASE + 12 )
|
||||
|
||||
/** The creation of hierarchy nodes of type "%1$" is not supported. */
|
||||
#define CLS_err_node_type_not_supported ( CLS0HIERARCHY_NODE_ERROR_BASE + 13 )
|
||||
|
||||
/** The master node namespace was not specified. */
|
||||
#define CLS_err_master_node_namespace_unspecified ( CLS0HIERARCHY_NODE_ERROR_BASE + 14 )
|
||||
|
||||
/** The parent node is of type "%1$" which cannot accept Hierarchy nodes of type "%2$". Please specify a child node of one of these types: %3$.*/
|
||||
#define CLS_err_cannot_add_unsupported_child_to_parent_node ( CLS0HIERARCHY_NODE_ERROR_BASE + 15 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Classification object (data) errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_DATA_ERROR_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 600 )
|
||||
|
||||
/** The Classification object ID is not specified. */
|
||||
#define CLS_err_classification_object_id_unspecified ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 1 )
|
||||
|
||||
/** The Classification object name is not specified. */
|
||||
#define CLS_err_classification_object_name_unspecified ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 2 )
|
||||
|
||||
/** A required Hierarchy node reference is not specified. */
|
||||
#define CLS_err_missing_hierarchy_node_tag ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 3 )
|
||||
|
||||
/** The specified Workspace Object "%1$" of type "%2$" is not classifiable. Please verify that the preference "%3$" contains this type of Workspace Object. */
|
||||
#define CLS_err_workspce_object_not_classifiable ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 4 )
|
||||
|
||||
/** The specified Object "%1$" of type "%2$" cannot be classified into the Hierarchy node with ID "%3$" because this node is abstract. */
|
||||
#define CLS_err_cannot_classify_to_abstract_node ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 5 )
|
||||
|
||||
/** Multiple classification of the given Object "%1$" of type "%2$" is not allowed in the specified Hierarchy node with ID "%3$". Please verify the value of the 'Multiple Classification' characteristic for the specified node. */
|
||||
#define CLS_err_multiple_classification_not_allowed ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 6 )
|
||||
|
||||
/** Please use an object ID or a name which can be used to uniquely identify for classification. The provided information "%1$" does not work out. */
|
||||
#define CLS_err_object_to_classify_not_unique ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 7 )
|
||||
|
||||
/** The specified Object "%1$" of type "%2$" cannot be classified into the Hierarchy node with ID "%3$", because this node is a Group node. Please specify a Master node to classify an Object. */
|
||||
#define CLS_err_cannot_classify_to_group_node ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 8)
|
||||
|
||||
/** The specified Object "%1$" of type "%2$" cannot be classified into the Hierarchy node with ID "%3$", because this node is a Reference node. Please specify a Master node to classify an Object. */
|
||||
#define CLS_err_cannot_classify_to_reference_node ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 9)
|
||||
|
||||
/** The specified Workspace Object with name "%1$" cannot be found. */
|
||||
#define CLS_err_workspace_object_not_found ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 10 )
|
||||
|
||||
/** The specified Item with ID "%1$" cannot be found. */
|
||||
#define CLS_err_item_not_found ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 11 )
|
||||
|
||||
/** The operation has failed, because a Classification object reference is required and not specified. */
|
||||
#define CLS_err_missing_classification_object_tag ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 12 )
|
||||
|
||||
/** The specified Workspace object "%1$" is invalid, because it is not an Item or Item Revision. */
|
||||
#define CLS_err_invalid_workspace_object_tag ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 13 )
|
||||
|
||||
/** A standalone object with the given ID "%1$" already exists. Please specify another ID to create a standalone object or specify a Workspace Object if you want to connect it to the existing Classification object with this ID. */
|
||||
#define CLS_err_duplicate_standalone_object ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 14 )
|
||||
|
||||
/** "%1$" cannot be classified into the Hierarchy node of ID "%2$" because no storage class is attached to this node. */
|
||||
#define CLS_err_cannot_classify_to_node_without_storage ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 15 )
|
||||
|
||||
/** "%1$" cannot be classified using Classification Standard Taxonomy (CST) because the object is already classified as "%2$" in the ICS/SML Classification system. */
|
||||
#define CLS_err_cannot_classify_in_cst_due_to_sml_classification ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 16 )
|
||||
|
||||
/** The object "%1$" is already migrated and in released status.*/
|
||||
#define CLS_err_already_migrated_and_released ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 17 )
|
||||
|
||||
/** A namespace has not been specified for the migration. Please assign a namespace in the "CST_default_namespace" preference.*/
|
||||
#define CLS_err_migration_missing_namespace ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 18 )
|
||||
|
||||
/** A status has not been specified for the migration. Please assign a status in the "CST_default_migration_status" preference.*/
|
||||
#define CLS_err_migration_missing_status ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 19 )
|
||||
|
||||
/** The object "%1$" is already migrated using namespace "%2$" and therefore cannot be migrated using the namespace "%3$".*/
|
||||
#define CLS_err_object_already_migrated_in_different_namespace ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 20 )
|
||||
|
||||
/** The status defined in "CST_default_migration_status" is invalid. Valid values are "Develop" and "Released". */
|
||||
#define CLS_err_migration_preference_wrong ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 21 )
|
||||
|
||||
/** "%1$" cannot be classified because no master node is attached with the storage class "%2$". Please contact your system administrator. */
|
||||
#define CLS_err_cannot_classify_to_storage_without_master_node ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 22 )
|
||||
|
||||
/** Some partial errors have occurred. Refer to the result information for each object. */
|
||||
#define CLS_err_partial_errors_for_request ( CLS0CLASSIFICATION_DATA_ERROR_BASE + 23 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Search and enquiry errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_SEARCH_ERROR_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 700 )
|
||||
|
||||
/** A Classification search result set could not be found. */
|
||||
#define CLS_err_result_set_not_found ( CLS0CLASSIFICATION_SEARCH_ERROR_BASE + 1 )
|
||||
|
||||
/** The Classification search cannot be performed, because the specified search expression "%1$" contains unsupported date format. Please specify the value in the following format: "%2$". */
|
||||
#define CLS_err_search_unsupported_date_format ( CLS0CLASSIFICATION_SEARCH_ERROR_BASE + 2 )
|
||||
|
||||
/** The Classification search cannot be performed, because the specified property "%1$" does not belong to the storage class with ID "%2$" associated with the node. Please specify the property which belongs to a storage class associated with the node. */
|
||||
#define CLS_err_search_property_not_of_storage_class ( CLS0CLASSIFICATION_SEARCH_ERROR_BASE + 3 )
|
||||
|
||||
/** The Search index %1$ is out of range. Please specify a value between 1 and %2$.*/
|
||||
#define CLS_err_search_index_out_of_range ( CLS0CLASSIFICATION_SEARCH_ERROR_BASE + 4 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Node Image errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_NODE_IMAGE_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 800 )
|
||||
|
||||
/** An internal error has occurred when working with the Hierarchy node image "%1$". Please refer to the syslog for additional details. */
|
||||
#define CLS_err_image_internal_error ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 1 )
|
||||
|
||||
/** A Hierarchy node is not specified for this relation. */
|
||||
#define CLS_err_image_missing_node ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 2 )
|
||||
|
||||
/** An image dataset is not specified for this relation. */
|
||||
#define CLS_err_image_missing_image_dataset ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 3 )
|
||||
|
||||
/** A relation type is not specified for this node image attachment. */
|
||||
#define CLS_err_image_missing_relation_type ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 4 )
|
||||
|
||||
/** The specified image index of "%1$" is not valid. Please select another index. */
|
||||
#define CLS_err_image_index_not_valid ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 5 )
|
||||
|
||||
/** The specified image index of "%1$" is already used. Please select another index. */
|
||||
#define CLS_err_image_index_conflict ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 6 )
|
||||
|
||||
/** A primary image already exists for this Hierarchy node with ID "%1$". */
|
||||
#define CLS_err_image_primary_already_exists ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 7 )
|
||||
|
||||
/** A primary image does not exist for this Hierarchy node with ID "%1$". */
|
||||
#define CLS_err_image_primary_does_not_exist ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 8 )
|
||||
|
||||
/** The existing association between the given Hierarchy node with ID "%1$" and its image "%2$" cannot be changed. */
|
||||
#define CLS_err_image_cannot_change ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 9 )
|
||||
|
||||
/** The primary image cannot be unassigned. This can only be achieved implicitly when another image is assigned as the new primary. */
|
||||
#define CLS_err_cannot_unassign_primary ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 10 )
|
||||
|
||||
/** The specified image "%1$" is not attached to the given Hierarchy node with ID "%2$". */
|
||||
#define CLS_err_image_not_attached_to_node ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 11 )
|
||||
|
||||
/** A primary image cannot be removed while secondary images are still associated with the given Hierarchy node with ID "%1$". Please remove the secondary images or assign a new primary image before proceeding. */
|
||||
#define CLS_err_image_cannot_remove_primary_b4_secondary ( CLS0CLASSIFICATION_NODE_IMAGE_BASE + 12 )
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
/**
|
||||
@name Cls0NodeIcon errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_NODE_ICON_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 850 )
|
||||
|
||||
/** An internal error has occurred when working with the Hierarchy node icon "%1$". Please refer to the syslog for additional details. */
|
||||
#define CLS_err_icon_internal_error ( CLS0CLASSIFICATION_NODE_ICON_BASE + 1 )
|
||||
|
||||
/** The specified Hierarchy node with ID "%1$" has more than one icon attached. Please contact your system administrator to resolve this conflict. */
|
||||
#define CLS_err_icon_multiple_icons_for_node ( CLS0CLASSIFICATION_NODE_ICON_BASE + 2 )
|
||||
|
||||
/** The existing association between the given Hierarchy node with ID "%1$" and its icon "%2$" cannot be changed. */
|
||||
#define CLS_err_icon_cannot_change ( CLS0CLASSIFICATION_NODE_ICON_BASE + 3 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name Runtime type errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_RUNTIME_TYPE_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 900 )
|
||||
|
||||
/** Required 'Type name' parameter not supplied when creating Runtime type in "%1$". */
|
||||
#define CLS_err_runtime_type_missing_type_name ( CLS0CLASSIFICATION_RUNTIME_TYPE_BASE + 1 )
|
||||
|
||||
/** Parent type tag not provided for creation of the specified specified type "%1$". */
|
||||
#define CLS_err_runtime_missing_parent_type_ref ( CLS0CLASSIFICATION_RUNTIME_TYPE_BASE + 2 )
|
||||
|
||||
/** The required "Class name" parameter was not provided when creating the runtime type "%1$". */
|
||||
#define CLS_err_runtime_type_missing_class_name ( CLS0CLASSIFICATION_RUNTIME_TYPE_BASE + 3 )
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
@name License errors
|
||||
@{
|
||||
*/
|
||||
#define CLS0CLASSIFICATION_LICENSE_BASE ( CLS0CLASSIFICATION_ERROR_BASE + 950 )
|
||||
|
||||
/** The required "Classification User" license is missing or not installed. Please contact your system administrator. */
|
||||
#define CLS_err_user_license_missing ( CLS0CLASSIFICATION_LICENSE_BASE + 1 )
|
||||
|
||||
/** The required "Eclass User" license is missing or not installed. Please contact your system administrator. */
|
||||
#define CLS_err_eclass_license_missing ( CLS0CLASSIFICATION_LICENSE_BASE + 2 )
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,195 @@
|
||||
/*Copyright 2020 Siemens Digital Industries Software
|
||||
**==================================================
|
||||
**Copyright $2012.
|
||||
**Siemens Product Lifecycle Management Software Inc.
|
||||
**All Rights Reserved.
|
||||
**==================================================
|
||||
**Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file classification_datatypes.h
|
||||
|
||||
This file contains the definition of data structures used by Cls0Classification calls
|
||||
To use these functions, include classification_datatypes.h
|
||||
*/
|
||||
|
||||
#ifndef __INCLUDED_CLASSIFICATION_DATATYPES_H__
|
||||
#define __INCLUDED_CLASSIFICATION_DATATYPES_H__
|
||||
|
||||
/*
|
||||
* Hierarchy node types
|
||||
*/
|
||||
typedef enum Cls0NodeType_e
|
||||
{
|
||||
CLS_NODE_undefined = -1,
|
||||
CLS_NODE_group,
|
||||
CLS_NODE_master,
|
||||
CLS_NODE_custom,
|
||||
CLS_NODE_all,
|
||||
CLS_NODE_cst_master
|
||||
}Cls0NodeType;
|
||||
|
||||
|
||||
/*
|
||||
* Hierarchy node attachments types
|
||||
*/
|
||||
typedef enum Cls0NodeAttachmentType_e
|
||||
{
|
||||
CLS_NODE_icon = 0,
|
||||
CLS_NODE_image
|
||||
}Cls0NodeAttachmentType;
|
||||
|
||||
/*
|
||||
* Hierarchy node characteristic types
|
||||
*/
|
||||
typedef enum Cls0NodeCharacteristicType_e
|
||||
{
|
||||
CLS_NODE_isAssembly = 0,
|
||||
CLS_NODE_hasMultipleInstances,
|
||||
CLS_NODE_isLeaf
|
||||
}Cls0NodeCharacteristicType;
|
||||
|
||||
/*
|
||||
* Supported classification types
|
||||
*/
|
||||
typedef enum ClassifyType_e
|
||||
{
|
||||
CLS_TYPE_Item = 0,
|
||||
CLS_TYPE_Item_Revision,
|
||||
CLS_TYPE_Dataset,
|
||||
CLS_TYPE_Others
|
||||
}Cls0ClassifyType;
|
||||
|
||||
/*
|
||||
* Supported Classification attribute types
|
||||
*/
|
||||
typedef enum Cls0AttributeType_e
|
||||
{
|
||||
CLS_ATTR_TYPE_keylov = -1,
|
||||
CLS_ATTR_TYPE_string,
|
||||
CLS_ATTR_TYPE_integer,
|
||||
CLS_ATTR_TYPE_real,
|
||||
CLS_ATTR_TYPE_date,
|
||||
CLS_ATTR_TYPE_time,
|
||||
}Cls0AttributeType;
|
||||
|
||||
/*
|
||||
* Classification search types to filter searching.
|
||||
*/
|
||||
typedef enum ClsSearchOptionType_e
|
||||
{
|
||||
CLS_SEARCH_default = 0,
|
||||
CLS_SEARCH_in_class_only = (1 << 0 )
|
||||
}ClsSearchOptions;
|
||||
|
||||
typedef enum Cls0ElementType_e
|
||||
{
|
||||
CLS_ELEM_Undefined = -1,
|
||||
CLS_ELEM_Node,
|
||||
CLS_ELEM_Member
|
||||
} Cls0ElementType;
|
||||
|
||||
/**
|
||||
* Forward synchronization Operation types
|
||||
* TODO: These should be consumed by internal functions only; so move into an internal / un-kitted header.
|
||||
*/
|
||||
typedef enum Cls0OperationType_e
|
||||
{
|
||||
CLS_OP_Undefined = -1, /**< Default value to be used for initialization. */
|
||||
CLS_OP_Save, /**< Indicates that a "Save" operation was performed on underlying Storage hierarchy. */
|
||||
CLS_OP_Delete, /**< Indicates that a "Delete" operation was performed on underlying Storage hierarchy. */
|
||||
CLS_OP_SyncL10n /**< Indicates that a "L10N" values structure was updated on the underlying Storage hierarchy. */
|
||||
} Cls0OperationType;
|
||||
|
||||
/**
|
||||
* Hierarchy node params
|
||||
*/
|
||||
typedef struct HierarchyNodeParams_s
|
||||
{
|
||||
std::string nodeId; /**< Identifier of the hierarchy node. */
|
||||
std::string nodeName; /**< Name of the hierarchy node. */
|
||||
std::string nodeDescr; /**< Description of the hierarchy node. */
|
||||
logical isGroup; /**< Flag indicating whether the hierarchy node is a group node or not. */
|
||||
tag_t parentNodeTag; /**< Reference to the parent hierarchy node. */
|
||||
tag_t hierarchyTag; /**< Reference to the hierarchy view. */
|
||||
logical isLeafNode; /**< Flag indicating whether the hierarchy node is a leaf node or not.*/
|
||||
int sortLevel; /**< Indicates the position of the hierarchy node among its peers. */
|
||||
std::string storageClassType; /**< The Type name of the Storage class associated with the hierarchy node. */
|
||||
|
||||
HierarchyNodeParams_s() : nodeId(), nodeName(), nodeDescr(), isGroup( false ),
|
||||
parentNodeTag( 0 ), hierarchyTag( 0 ), isLeafNode( false ), sortLevel( 0 ), storageClassType(){}
|
||||
} HierarchyNodeParams;
|
||||
|
||||
/**
|
||||
* Node Member (Classification data) params
|
||||
*/
|
||||
typedef struct NodeMemberParams_s
|
||||
{
|
||||
std::string memberId; /**< Identifier of a classification object. This is a mandatory field. */
|
||||
std::string memberName; /**< Name of a classification object. This is a mandatory field. */
|
||||
std::string memberDescr; /**< Description of a classification object. This is an optional field. */
|
||||
tag_t owningNodeTag; /**< Reference to a node, where a classification object is classified. This is a mandatory field. */
|
||||
tag_t classifiedObjTag; /**< Reference to a classified object (catalog data).This is an optional field. */
|
||||
|
||||
NodeMemberParams_s() : memberId(), memberName(), memberDescr(),
|
||||
owningNodeTag( 0 ), classifiedObjTag( 0 ){}
|
||||
} NodeMemberParams;
|
||||
|
||||
/**
|
||||
* Cls0Object params
|
||||
*/
|
||||
typedef struct NodeMemberIcoParams_s
|
||||
{
|
||||
NodeMemberParams* baseMemberParams; /**< Base 'node params' structure */
|
||||
tag_t icoTag; /**< underlying ICO tag which 'Cls0Object' will have in addition to the base 'node params' */
|
||||
|
||||
NodeMemberIcoParams_s() : baseMemberParams( 0 ), icoTag( 0 ){}
|
||||
} NodeMemberIcoParams;
|
||||
|
||||
/**
|
||||
* Classification object migration status types
|
||||
*/
|
||||
typedef enum Cls0MigrationStatus_e
|
||||
{
|
||||
CLS_MIGRATE_UNPROCESSED = -1, /**< Default value to be used for initialization. */
|
||||
CLS_MIGRATE_Success, /**< Indicates that migration operation performed on underlying Storage hierarchy is sucessful. */
|
||||
CLS_MIGRATE_Failure, /**< Indicates that migration operation performed on underlying Storage hierarchy is failed. */
|
||||
CLS_MIGRATE_Skipped /**< Indicates that migration operation performed on underlying Storage hierarchy is skipped. */
|
||||
} Cls0MigrationStatus_t;
|
||||
|
||||
/**
|
||||
* Individual Classification object migration record
|
||||
*/
|
||||
typedef struct Cls0ObjectMigrationRecord_e
|
||||
{
|
||||
tag_t objectTag; /**< Reference to a class or group or ICO being migrated. */
|
||||
Cls0MigrationStatus_t migrationStatus; /**< Classification object migration status. */
|
||||
int errorCode; /**< Error code of migration operation. */
|
||||
|
||||
Cls0ObjectMigrationRecord_e( tag_t theObjectTag, Cls0MigrationStatus_t theMigrationStatus, int theErrorCode )
|
||||
: objectTag( theObjectTag ), migrationStatus( theMigrationStatus ), errorCode( theErrorCode ){}
|
||||
Cls0ObjectMigrationRecord_e()
|
||||
: objectTag( 0 ), migrationStatus( CLS_MIGRATE_UNPROCESSED ), errorCode( 0 ){}
|
||||
} Cls0ObjectMigrationRecord_t;
|
||||
|
||||
|
||||
/**
|
||||
* Classification CST property types
|
||||
* Since Property Data Type is handled via "enum" in the CST interface, I have copied over the enum def here and then added the "CLS_" prefix
|
||||
* Any changes here should be kept in sync with the 'solutions\cst0classification\server\Cst0classification\Cst0Object.hxx'
|
||||
*/
|
||||
typedef enum {
|
||||
CLS_CST_property_type_undefined,
|
||||
CLS_CST_property_type_string,
|
||||
CLS_CST_property_type_string_array,
|
||||
CLS_CST_property_type_logical,
|
||||
CLS_CST_property_type_int,
|
||||
CLS_CST_property_type_double,
|
||||
CLS_CST_property_type_tag,
|
||||
CLS_CST_property_type_tag_array,
|
||||
CLS_CST_property_type_json,
|
||||
CLS_CST_property_type_date
|
||||
} CLS_CST_property_type;
|
||||
|
||||
#endif /* __INCLUDED_CLASSIFICATION_DATATYPES_H__ */
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,58 @@
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
//==================================================
|
||||
//Copyright $2012.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Dispatch Library Cls0classification
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCls0classification
|
||||
|
||||
#if !defined(LIBCLS0CLASSIFICATION) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCLS0CLASSIFICATION is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CLS0CLASSIFICATION_API, not CLS0CLASSIFICATIONEXPORT */
|
||||
|
||||
#define CLS0CLASSIFICATION_API CLS0CLASSIFICATIONEXPORT
|
||||
|
||||
#if IPLIB==libCls0classification || defined(LIBCLS0CLASSIFICATION)
|
||||
# if defined(__lint)
|
||||
# define CLS0CLASSIFICATIONEXPORT __export(Cls0classification)
|
||||
# define CLS0CLASSIFICATIONGLOBAL extern __global(Cls0classification)
|
||||
# define CLS0CLASSIFICATIONPRIVATE extern __private(Cls0classification)
|
||||
# elif defined(_WIN32)
|
||||
# define CLS0CLASSIFICATIONEXPORT __declspec(dllexport)
|
||||
# define CLS0CLASSIFICATIONGLOBAL extern __declspec(dllexport)
|
||||
# define CLS0CLASSIFICATIONPRIVATE extern
|
||||
# else
|
||||
# define CLS0CLASSIFICATIONEXPORT
|
||||
# define CLS0CLASSIFICATIONGLOBAL extern
|
||||
# define CLS0CLASSIFICATIONPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CLS0CLASSIFICATIONEXPORT __export(Cls0classification)
|
||||
# define CLS0CLASSIFICATIONGLOBAL extern __global(Cls0classification)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CLS0CLASSIFICATIONEXPORT __declspec(dllimport)
|
||||
# define CLS0CLASSIFICATIONGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CLS0CLASSIFICATIONEXPORT
|
||||
# define CLS0CLASSIFICATIONGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,25 @@
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
//==================================================
|
||||
//Copyright $2012.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCLS0CLASSIFICATION) && !defined(IPLIB)
|
||||
# error IPLIB orLIBCLS0CLASSIFICATION is not defined
|
||||
#endif
|
||||
|
||||
#undef CLS0CLASSIFICATION_API
|
||||
#undef CLS0CLASSIFICATIONEXPORT
|
||||
#undef CLS0CLASSIFICATIONGLOBAL
|
||||
#undef CLS0CLASSIFICATIONPRIVATE
|
@ -0,0 +1,48 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Error codes that are used by the Cpc0cpdcm module
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TEAMCENTER_CPC0CPDCM_ERRORS_H
|
||||
#define TEAMCENTER_CPC0CPDCM_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CPC0CPDCM_ERRORS Change Management for 4GD Errors
|
||||
@ingroup CPC0CPDCM
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Workset "%1$" cannot be related to the Engineering Change Notice (ECN) "%2$", because it has contents from ECNs that are not concurrent to the ECN "%2$".
|
||||
*/
|
||||
#define CPC0CPDCM_relation_creation_not_allowed (EMH_CPC0CPDCM_error_base + 0)
|
||||
|
||||
/**
|
||||
* The subset cannot be created in the Workset "%1$", because the Engineering Change Notice (ECN) "%2$" associated with the subset is not concurrent to the ECN "%3$" of the Workset "%1$".
|
||||
*/
|
||||
#define CPC0CPDCM_subset_creation_not_allowed (EMH_CPC0CPDCM_error_base + 1)
|
||||
|
||||
/**
|
||||
* The Design Element "%1$" is not allowed in the subset "%2$", because the associated Engineering Change Notice (ECN) "%3$" of "%1$" is not concurrent to the ECN "%4$" of the Workset "%5$".
|
||||
*/
|
||||
#define CPC0CPDCM_subset_content_not_allowed (EMH_CPC0CPDCM_error_base + 2)
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,64 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the export declarations for the library Cpc0cpdcm
|
||||
|
||||
This file should be obsoleted once the autogenerated version is created in out/meta/Cpc0cpdcm folder.
|
||||
The autogenerated version will be generated after any metamodel operation is defined or overridden
|
||||
in the cpdcm template.
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libCpc0cpdcm
|
||||
|
||||
#if !defined(LIBCPC0CPDCM) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCPC0CPDCM is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use CPC0CPDCM_API, not CPC0CPDCMEXPORT */
|
||||
|
||||
#define CPC0CPDCM_API CPC0CPDCMEXPORT
|
||||
|
||||
#if IPLIB==libCpc0cpdcm || defined(LIBCPC0CPDCM)
|
||||
# if defined(__lint)
|
||||
# define CPC0CPDCMEXPORT __export(Cpc0cpdcm)
|
||||
# define CPC0CPDCMGLOBAL extern __global(Cpc0cpdcm)
|
||||
# define CPC0CPDCMPRIVATE extern __private(Cpc0cpdcm)
|
||||
# elif defined(_WIN32)
|
||||
# define CPC0CPDCMEXPORT __declspec(dllexport)
|
||||
# define CPC0CPDCMGLOBAL extern __declspec(dllexport)
|
||||
# define CPC0CPDCMPRIVATE extern
|
||||
# else
|
||||
# define CPC0CPDCMEXPORT
|
||||
# define CPC0CPDCMGLOBAL extern
|
||||
# define CPC0CPDCMPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define CPC0CPDCMEXPORT __export(Cpc0cpdcm)
|
||||
# define CPC0CPDCMGLOBAL extern __global(Cpc0cpdcm)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define CPC0CPDCMEXPORT __declspec(dllimport)
|
||||
# define CPC0CPDCMGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define CPC0CPDCMEXPORT
|
||||
# define CPC0CPDCMGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file undefines the export declarations for the library Cpc0cpdcm
|
||||
|
||||
This file should be obsoleted once the autogenerated version is created in out/meta/Cpc0cpdcm folder.
|
||||
The autogenerated version will be generated after any metamodel operation is defined or overridden
|
||||
in the cpdcm template.
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBCPC0CPDCM) && !defined(IPLIB)
|
||||
# error IPLIB or LIBCPC0CPDCM is not defined
|
||||
#endif
|
||||
|
||||
#undef CPC0CPDCM_API
|
||||
#undef CPC0CPDCMEXPORT
|
||||
#undef CPC0CPDCMGLOBAL
|
||||
#undef CPC0CPDCMPRIVATE
|
@ -0,0 +1,127 @@
|
||||
/*Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2011.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software*/
|
||||
|
||||
#ifndef SOACPD0CD_ERRORS_H
|
||||
#define SOACPD0CD_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
#define SOACPD0CD_ERROR_BASE EMH_SOA_CPD0CD_error_base
|
||||
|
||||
/**
|
||||
* An internal SOA error has occurred in the SOA Collaborative Design module.
|
||||
*/
|
||||
#define SOACPD0CD_internal_error ( SOACPD0CD_ERROR_BASE + 1 )
|
||||
|
||||
/**
|
||||
* The input Business Object type name is "%1$". A type name of Cpd0DesignSubsetElement (Design Subset Element) or one of its sub-types is expected.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_botype_error ( SOACPD0CD_ERROR_BASE + 2 )
|
||||
|
||||
/**
|
||||
* The Revision Rule "%1$" specified in the business constant "%2$" is not a valid Revision Rule for Workset Model objects. Please contact your Teamcenter administrator to update the business constant with a valid Revision Rule.
|
||||
*/
|
||||
#define CPD0_invalid_default_revision_rule ( SOACPD0CD_ERROR_BASE + 3 )
|
||||
|
||||
/**
|
||||
* The relation attribute "%1$" is not yet implemented. Only the attribute "mdl0cs_id" is currently supported.
|
||||
*/
|
||||
#define CPD_relation_attribute_not_implemented ( SOACPD0CD_ERROR_BASE + 4 )
|
||||
|
||||
/**
|
||||
* An invalid relation traversal input is specified. The source object cannot be NULL.
|
||||
*/
|
||||
#define CPD0_invalid_relation_traversal_input_s ( SOACPD0CD_ERROR_BASE + 5 )
|
||||
|
||||
/**
|
||||
* An invalid relation traversal input is specified. The size of input objects cannot be 0.
|
||||
*/
|
||||
#define CPD0_invalid_relation_traversal_input_i ( SOACPD0CD_ERROR_BASE + 6 )
|
||||
|
||||
/**
|
||||
* An invalid relation traversal input is specified. The attribute type can only be a string and the attribute values can only have string values.
|
||||
*/
|
||||
#define CPD0_invalid_relation_traversal_input_a ( SOACPD0CD_ERROR_BASE + 7 )
|
||||
|
||||
/**
|
||||
* The object "%1$" cannot be updated because it has been modified in a different session by the same user. Refresh the object before making new modifications.
|
||||
*/
|
||||
#define CPD0_object_is_modified ( SOACPD0CD_ERROR_BASE + 8 )
|
||||
|
||||
/**
|
||||
* No target Application Model was provided for the model-to-model instantiation.
|
||||
*/
|
||||
|
||||
#define SOACPD0CD_instantiation_no_target_model_provided_as_input ( SOACPD0CD_ERROR_BASE + 9 )
|
||||
|
||||
/**
|
||||
* No source Application Model was provided for the model-to-model instantiation.
|
||||
*/
|
||||
#define SOACPD0CD_instantiation_no_source_model_provided_as_input ( SOACPD0CD_ERROR_BASE + 10 )
|
||||
|
||||
/**
|
||||
* A preview dataset must be provided as input for the Easy 4G preview-based Item Realization.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_preview_dataset ( SOACPD0CD_ERROR_BASE + 11 )
|
||||
|
||||
/**
|
||||
* A mapping dataset must be provided as input for the Easy 4G preview-based Item Realization.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_mapping_dataset ( SOACPD0CD_ERROR_BASE + 12 )
|
||||
|
||||
/**
|
||||
* A valid Revision Rule must be provided.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_revision_rule ( SOACPD0CD_ERROR_BASE + 13 )
|
||||
|
||||
/**
|
||||
* The operation has failed because some input objects are neither Item Revisions (ItemRevision) nor Design Elements (Cpd0DesignElement).
|
||||
*/
|
||||
#define SOACPD0CD_invalid_object_type_design_context ( SOACPD0CD_ERROR_BASE + 14 )
|
||||
|
||||
/**
|
||||
* Design Contexts can only be created using Items (Item) and Worksets (Cpd0Workset).
|
||||
*/
|
||||
#define SOACPD0CD_invalid_object_type_name_design_context ( SOACPD0CD_ERROR_BASE + 15 )
|
||||
|
||||
/**
|
||||
* Please provide value for either Shape Design Element or Business Object type.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_input_for_create_or_update_shape ( SOACPD0CD_ERROR_BASE + 16 )
|
||||
|
||||
/**
|
||||
* The Product Name and Product Namespace supplied to service operation "%1$" must not be empty.
|
||||
*/
|
||||
#define SOACPD0CD_productinfo_empty_error ( SOACPD0CD_ERROR_BASE + 17 )
|
||||
|
||||
/**
|
||||
* The Design Feature creation or update has failed because either the Design Model Element and/or the Copy Stable ID are not specified.
|
||||
*/
|
||||
#define SOACPD0CD_create_or_update_design_feature_failed ( SOACPD0CD_ERROR_BASE + 18 )
|
||||
|
||||
/**
|
||||
* The Design Feature creation or update has failed because no Design Feature object is specified.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_design_feature_object ( SOACPD0CD_ERROR_BASE + 19 )
|
||||
|
||||
/**
|
||||
* The creation or processing of a Connected Information has failed because no Connected Element is specified.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_connected_element ( SOACPD0CD_ERROR_BASE + 20 )
|
||||
|
||||
/**
|
||||
* The Connected object "%1$" do not exist in the same Collaborative Design "%2$" as the Design Feature "%3$".
|
||||
*/
|
||||
#define SOACPD0CD_invalid_connected_object_design_feature_relation ( SOACPD0CD_ERROR_BASE + 21 )
|
||||
|
||||
/**
|
||||
* The creation of the Design Feature has failed because no Business Object type is specified.
|
||||
*/
|
||||
#define SOACPD0CD_invalid_business_object_type ( SOACPD0CD_ERROR_BASE + 22 )
|
||||
|
||||
#endif
|
@ -0,0 +1,22 @@
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
//==================================================
|
||||
//Copyright $2010.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
|
||||
#ifndef SOACPD0WORKSET_ERRORS_H
|
||||
#define SOACPD0WORKSET_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/*================================================================================================*/
|
||||
#define SOACPD0WORKSET_ERROR_BASE EMH_SOA_CPD0WORKSET_error_base
|
||||
|
||||
#define SOACPD0WORKSET_internal_error ( SOACPD0WORKSET_ERROR_BASE + 1 )
|
||||
#define SOACPD0WORKSET_expansion_invalid_object ( SOACPD0WORKSET_ERROR_BASE + 2 )
|
||||
#define SOACPD0WORKSET_invalid_page_size ( SOACPD0WORKSET_ERROR_BASE + 3 )
|
||||
#define SOACPD0WORKSET_expansion_unsupported_level ( SOACPD0WORKSET_ERROR_BASE + 4 )
|
||||
|
||||
#endif
|
@ -0,0 +1,260 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2014.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Validation Contract errors
|
||||
|
||||
*/
|
||||
|
||||
#ifndef CRT0VALIDATIONCONTRACT_ERRORS_H
|
||||
#define CRT0VALIDATIONCONTRACT_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
|
||||
/**
|
||||
@defgroup CRT0VALIDATIONCONTRACT_ERRORS Validation Contract Errors
|
||||
@ingroup CRT0VALIDATIONCONTRACT
|
||||
@{
|
||||
*/
|
||||
|
||||
#define VC_ERROR_BASE EMH_VC_error_base
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid, because either the XML contains a syntax error or it does not confirm to the Analysis Request schema (which can be found in the dataset Crt0ContractPkgSchema). The validation error message is: %2$
|
||||
*/
|
||||
#define VC_invalid_contract_package_syntax_or_schema (VC_ERROR_BASE + 1)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid, because the specified Teamcenter business object "%2$" does not exist.
|
||||
*/
|
||||
#define VC_invalid_contract_package_bus_obj (VC_ERROR_BASE + 2)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid, because the specified property "%2$" for the Teamcenter business object "%3$" in section "%4$" does not exist.
|
||||
*/
|
||||
#define VC_invalid_contract_package_bus_obj_prop (VC_ERROR_BASE + 3)
|
||||
|
||||
/**
|
||||
The following exception has occurred during the initialization of the XML reader for the Analysis Request Package "%1$": %2$
|
||||
*/
|
||||
#define VC_error_during_xml_reader_init (VC_ERROR_BASE + 4)
|
||||
|
||||
/**
|
||||
No Analysis Request Package is associated to the Analysis Definition object "%1$".
|
||||
*/
|
||||
#define VC_no_contract_package (VC_ERROR_BASE + 5)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid, because the property "%3$" is duplicated in the section "%2$".
|
||||
*/
|
||||
#define VC_invalid_contract_package_duplicate_prop (VC_ERROR_BASE + 6)
|
||||
|
||||
/**
|
||||
An Analysis Request Definition with the name "%1$" already exists. Please provide a unique Analysis Request Definition name.
|
||||
*/
|
||||
#define VC_duplicated_vcdef_name_error ( VC_ERROR_BASE + 7 )
|
||||
|
||||
/**
|
||||
The license "%1$" for the Analysis Request module is not available. Please contact the system administrator.
|
||||
*/
|
||||
#define VC_validate_license_failed ( VC_ERROR_BASE + 8 )
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid, because the specified quantity %2$ is invalid for the Teamcenter business object "%3$".
|
||||
*/
|
||||
#define VC_invalid_contract_package_quantity ( VC_ERROR_BASE + 9 )
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid, because the group "%2$" has a duplicate section "%3$".
|
||||
*/
|
||||
#define VC_invalid_contract_package_duplicate_section (VC_ERROR_BASE + 10)
|
||||
|
||||
/**
|
||||
The object "%1$" cannot be added to the Analysis Request, because it has already been added to it.
|
||||
*/
|
||||
#define VC_cannot_add_since_previously_added (VC_ERROR_BASE + 11)
|
||||
|
||||
/**
|
||||
The preference "PLE_DisabledDefnStatusList" does not contain any value. Add a list of release statuses to it.
|
||||
*/
|
||||
#define VC_disabled_defn_status_pref_no_values (VC_ERROR_BASE + 12)
|
||||
|
||||
/**
|
||||
The Analysis Request was not created because "%1$" has not been released.
|
||||
*/
|
||||
#define VC_cannot_create_since_not_a_usable_definition (VC_ERROR_BASE + 13)
|
||||
|
||||
/*
|
||||
The Analysis Request was not created because “%1$” is not of type Analysis Definition.
|
||||
*/
|
||||
#define VC_cannot_create_since_wrong_configuration (VC_ERROR_BASE + 14)
|
||||
|
||||
/**
|
||||
The Analysis Request was not created because "%1$" has not been released.
|
||||
*/
|
||||
#define VC_cannot_create_since_no_usable_definition_for_rev (VC_ERROR_BASE + 15)
|
||||
|
||||
/**
|
||||
The preference "PLE_EnabledDefnStatusList" does not contain any value. Add a list of release statuses to it.
|
||||
*/
|
||||
#define VC_enabled_defn_status_pref_no_values (VC_ERROR_BASE + 16)
|
||||
|
||||
/**
|
||||
The value "%2$" for the property "%1$" cannot be changed, because objects have already been added to the Analysis Request.
|
||||
*/
|
||||
#define VC_cannot_change_since_already_inuse (VC_ERROR_BASE + 17)
|
||||
|
||||
/**
|
||||
"%1$" cannot be modified in the "%2$" state.
|
||||
*/
|
||||
#define VC_modification_not_allowed (VC_ERROR_BASE + 18)
|
||||
|
||||
/**
|
||||
A Study with name "%1$" cannot be created, because the Analysis Request "%2$" already has a Study with the same name.
|
||||
*/
|
||||
#define VC_cannot_create_study_with_same_name (VC_ERROR_BASE + 19)
|
||||
|
||||
/**
|
||||
The name of the Study "%1$" cannot be changed to "%2$", because the Analysis Request "%3$" already contains a Study with that name.
|
||||
*/
|
||||
#define VC_cannot_change_study_name (VC_ERROR_BASE + 20)
|
||||
|
||||
/**
|
||||
Edits to "%1$" were not saved because "%2$" is already used as the Domain Context in another Analysis Request.
|
||||
*/
|
||||
#define VC_analysisrequest_duplicate_smb (VC_ERROR_BASE + 21)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid because the specified Saved query "%2$" does not exist.
|
||||
*/
|
||||
#define VC_invalid_contract_package_saved_query (VC_ERROR_BASE + 22)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid because the specified transfer mode "%2$" does not exist.
|
||||
*/
|
||||
#define VC_invalid_contract_package_transfer_mode (VC_ERROR_BASE + 23)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid because the specified Revision Rule "%2$" does not exist.
|
||||
*/
|
||||
#define VC_invalid_contract_package_revision_rule (VC_ERROR_BASE + 24)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid because more than one Revision Rule is specified for the recipe.
|
||||
*/
|
||||
#define VC_invalid_contract_package_more_revision_rule (VC_ERROR_BASE + 25)
|
||||
|
||||
/**
|
||||
The Analysis Request Package "%1$" is invalid because invalid entries are specified for the recipe.
|
||||
*/
|
||||
#define VC_invalid_contract_package_invalid_recipe_entries (VC_ERROR_BASE + 26)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because the current user does not have correct privileges.
|
||||
*/
|
||||
#define VC_create_current_user_invalid_privileges (VC_ERROR_BASE + 27)
|
||||
|
||||
/**
|
||||
Verification Request not created because specified Verification Request name not valid.
|
||||
*/
|
||||
#define VC_create_invalid_name (VC_ERROR_BASE + 28)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified Verification Request type not valid.
|
||||
*/
|
||||
#define VC_create_invalid_type (VC_ERROR_BASE + 29)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified element not valid.
|
||||
*/
|
||||
#define VC_create_invalid_element (VC_ERROR_BASE + 30)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified element context not valid.
|
||||
*/
|
||||
#define VC_create_invalid_element_context (VC_ERROR_BASE + 31)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified element data not valid.
|
||||
*/
|
||||
#define VC_create_invalid_element_data (VC_ERROR_BASE + 32)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified Verification Request for revise not valid.
|
||||
*/
|
||||
#define VC_create_invalid_vr_for_revise (VC_ERROR_BASE + 33)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified parameter copy options not valid.
|
||||
*/
|
||||
#define VC_create_invalid_parameter_copy_option (VC_ERROR_BASE + 34)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified parameter data not valid.
|
||||
*/
|
||||
#define VC_create_invalid_parameter_data (VC_ERROR_BASE + 35)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified parameter direction not valid.
|
||||
*/
|
||||
#define VC_create_invalid_parameter_direction (VC_ERROR_BASE + 36)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified recipe not valid.
|
||||
*/
|
||||
#define VC_create_invalid_recipe (VC_ERROR_BASE + 37)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified recipe data not valid.
|
||||
*/
|
||||
#define VC_create_invalid_recipe_data (VC_ERROR_BASE + 38)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified workflow not valid.
|
||||
*/
|
||||
#define VC_create_invalid_workflow (VC_ERROR_BASE + 39)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified parent Verification Request not valid.
|
||||
*/
|
||||
#define VC_create_invalid_parent_vr (VC_ERROR_BASE + 40)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified Verification Request Definition not valid.
|
||||
*/
|
||||
#define VC_create_invalid_vr_definition (VC_ERROR_BASE + 41)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified participant user not valid.
|
||||
*/
|
||||
#define VC_create_invalid_participant_user (VC_ERROR_BASE + 42)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified participant type not valid.
|
||||
*/
|
||||
#define VC_create_invalid_participant_type (VC_ERROR_BASE + 43)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified value "%2$" for property "%3$" not valid.
|
||||
*/
|
||||
#define VC_create_invalid_value_for_property (VC_ERROR_BASE + 44)
|
||||
|
||||
/**
|
||||
Verification Request "%1$" not created because specified value for "%2$" not valid.
|
||||
*/
|
||||
#define VC_create_invalid_input (VC_ERROR_BASE + 45)
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
@ -0,0 +1,229 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2017.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
The Classification Standard Taxonomy (CST) related errors.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef CST_ERRORS_H
|
||||
#define CST_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup CST_ERRORS Errors
|
||||
@ingroup CST
|
||||
@{
|
||||
*/
|
||||
|
||||
/** An unknown place holder error */
|
||||
#define CST_err_unknown (EMH_CST_error_base + 0)
|
||||
|
||||
/** A schema validation error has occurred. */
|
||||
#define CST_err_schema_not_valid (EMH_CST_error_base + 1)
|
||||
|
||||
/** Neither IRDI nor ID is provided for this object. */
|
||||
#define CST_err_object_no_id_given (EMH_CST_error_base + 2)
|
||||
|
||||
/** Multiple objects were found for the given values. */
|
||||
#define CST_err_multiple_objects_found (EMH_CST_error_base + 3)
|
||||
|
||||
/** "%1$" could not be parsed. */
|
||||
#define CST_err_parse_json_error (EMH_CST_error_base + 4)
|
||||
|
||||
/** The property definition "%1$" could not be found. */
|
||||
#define CST_err_property_definition_not_found (EMH_CST_error_base + 5)
|
||||
|
||||
/** No namespace is provided for "%1$". */
|
||||
#define CST_err_object_no_namespace_given (EMH_CST_error_base + 6)
|
||||
|
||||
/** No revision is provided for "%1$". */
|
||||
#define CST_err_object_no_revision_given (EMH_CST_error_base + 7)
|
||||
|
||||
/** The property "%1$" does not exist in the class "%2$". */
|
||||
#define CST_err_property_does_not_exists_in_class (EMH_CST_error_base + 8)
|
||||
|
||||
/** The block definition "%1$" could not be found. */
|
||||
#define CST_err_block_not_found (EMH_CST_error_base + 9)
|
||||
|
||||
/** The file "%1$" could not be found. */
|
||||
#define CST_err_file_not_found (EMH_CST_error_base + 10)
|
||||
|
||||
/** The input request is not a valid JSON file. */
|
||||
#define CST_err_no_valid_json (EMH_CST_error_base + 11)
|
||||
|
||||
/** The schema file "%1$" for schema version "%2$" could not be found. */
|
||||
#define CST_err_schema_file_not_found (EMH_CST_error_base + 12)
|
||||
|
||||
/** The schema validation has failed. The path to the violated rule in the schema file is "%1$" and the violated schema keyword is "%2$". */
|
||||
#define CST_err_schema_validation (EMH_CST_error_base + 13)
|
||||
|
||||
/** New revisions are not allowed if one is in "Develop" status. */
|
||||
#define CST_err_new_revision_not_allowed_when_develop_exists (EMH_CST_error_base + 14)
|
||||
|
||||
/** Revisions not in "Develop" status cannot be updated.*/
|
||||
#define CST_err_save_not_possible_for_non_develop (EMH_CST_error_base + 15)
|
||||
|
||||
/** The status cannot be changed from "%1$" to "%2$".*/
|
||||
#define CST_err_update_status_not_allowed (EMH_CST_error_base + 16)
|
||||
|
||||
/** The status cannot be updated to "Released" because a referencing object "%1$" is in status "%2$". */
|
||||
#define CST_err_update_status_to_released_not_allowed (EMH_CST_error_base + 17)
|
||||
|
||||
/** New revisions cannot be auto-assigned.*/
|
||||
#define CST_err_auto_assign_revision (EMH_CST_error_base + 18)
|
||||
|
||||
/** The provided IRDI "%1$" is not valid. */
|
||||
#define CST_err_irdi_not_valid (EMH_CST_error_base + 19)
|
||||
|
||||
/** Multiple values are given for the non-VLA property "%1$". */
|
||||
#define CST_err_multivalue_given_for_nonvla (EMH_CST_error_base + 20)
|
||||
|
||||
/** Several objects cannot be saved/updated because they have the same namespace and ID. */
|
||||
#define CST_err_save_not_possible_for_duplicates (EMH_CST_error_base + 21)
|
||||
|
||||
/** Some partial errors have occurred. Refer to the result information for each object. */
|
||||
#define CST_err_partial_errors (EMH_CST_error_base + 22)
|
||||
|
||||
/** More than one entry is marked with "isMasterLocale:true". */
|
||||
#define CST_err_multiple_master_locales (EMH_CST_error_base + 23)
|
||||
|
||||
/** A localizable property cannot be created without any entry with "isMasterLocale:true". */
|
||||
#define CST_err_no_master_locale (EMH_CST_error_base + 24)
|
||||
|
||||
/** The defined master locale is different from the database master locale. */
|
||||
#define CST_err_wrong_master_locale (EMH_CST_error_base + 25)
|
||||
|
||||
/** Classification in the class "%1$" cannot be achieved because its status is "%2$". */
|
||||
#define CST_err_cannot_classify_in_not_released_class (EMH_CST_error_base + 26)
|
||||
|
||||
/** The attribute reference "%1$" is not unique in the class definition. */
|
||||
#define CST_err_attr_not_unique (EMH_CST_error_base + 27)
|
||||
|
||||
/** IRDI reference "%1$" is not a "%2$". */
|
||||
#define CST_err_reference_wrong_type (EMH_CST_error_base + 28)
|
||||
|
||||
/** The creation of a Classification class has failed because the out-of-the-box limit for the number of attributes (as set by the "dbindex" property) has been reached (up to 100 string, 60 integer, 140 double, 60 boolean and 10 date attributes). Please contact your system administrator in order to change these limitations. */
|
||||
#define CST_err_no_free_dbindex (EMH_CST_error_base + 29)
|
||||
|
||||
/** %1$ "%2$" cannot be deleted because it is referenced by "%3$".*/
|
||||
#define CST_err_delete_referenced_obj_not_allowed (EMH_CST_error_base + 30)
|
||||
|
||||
/** The classification has failed because the class "%1$" is abstract. */
|
||||
#define CST_err_cannot_classify_in_abstract_class (EMH_CST_error_base + 31)
|
||||
|
||||
/** The classification in the class "%1$" has failed because it is not an "Application" class. */
|
||||
#define CST_err_cannot_classify_in_non_application_class (EMH_CST_error_base + 32)
|
||||
|
||||
/** No object with %1$ "%2$" exists in the system.*/
|
||||
#define CST_err_object_does_not_exist (EMH_CST_error_base + 33)
|
||||
|
||||
/** The option "%1$" is not supported for "%2$".*/
|
||||
#define CST_err_option_not_supported (EMH_CST_error_base + 34)
|
||||
|
||||
/** The aspect definition "%1$" could not be found. */
|
||||
#define CST_err_aspect_not_found (EMH_CST_error_base + 35)
|
||||
|
||||
/** The "BlockReference" "%1$" references a class which is not of type "Aspect".*/
|
||||
#define CST_err_reference_no_aspect (EMH_CST_error_base + 36)
|
||||
|
||||
/** "Aspect" classes can only be referenced in "Application" classes.*/
|
||||
#define CST_err_aspect_in_non_app_class (EMH_CST_error_base + 37)
|
||||
|
||||
/** The value for property "%1$" of attribute "%2$" must be of type "%3$". */
|
||||
#define CST_err_prop_value_wrong_datatype (EMH_CST_error_base + 38)
|
||||
|
||||
/** The value "%1$" of the property "%2$" is less than the minimum constraint value "%3$". */
|
||||
#define CST_err_prop_value_lesser_than_min (EMH_CST_error_base + 39)
|
||||
|
||||
/** The value "%1$" of the property "%2$" is more than the maximum constraint value "%3$". */
|
||||
#define CST_err_prop_value_greater_than_max (EMH_CST_error_base + 40)
|
||||
|
||||
/** New revisions cannot be set to the "Released" status if a revision already exists. */
|
||||
#define CST_err_new_released_revision_not_allowed_when_existing (EMH_CST_error_base + 41)
|
||||
|
||||
/** The required "Classification User" license is missing or not installed. Please contact your system administrator. */
|
||||
#define CST_err_user_license_missing (EMH_CST_error_base + 43)
|
||||
|
||||
/** The required "Eclass User" license is missing or not installed. Please contact your system administrator. */
|
||||
#define CST_err_eclass_license_missing (EMH_CST_error_base + 44)
|
||||
|
||||
/** Property values for PropertyDefinition "%1$" could not be copied because cardinality has changed in new released class "%2$". */
|
||||
#define CST_err_cannot_copy_all_property_values (EMH_CST_error_base + 45)
|
||||
|
||||
/** The property "%1$" is defined as cardinality controller but was not added to the class definition. */
|
||||
#define CST_err_cardinality_controller_not_added (EMH_CST_error_base + 46)
|
||||
|
||||
/** The attribute "%1$" defined as cardinality controller cannot have a "Cardinality" set. */
|
||||
#define CST_err_cardinality_set_on_cardinality_controller (EMH_CST_error_base + 47)
|
||||
|
||||
/** Key LOV "%1$" is of type "%2$" and cannot be assigned in Property Definition "%3$" of type "%4$" because there is a datatype mis-match. */
|
||||
#define CST_err_datatype_mismatch (EMH_CST_error_base + 48)
|
||||
|
||||
/** Key LOV "%1$" cannot be attached to Property Definition "%2$" because it does not exist. */
|
||||
#define CST_err_keylov_does_not_exist (EMH_CST_error_base + 49)
|
||||
|
||||
/** The view "%1$" of type "%2$" has attribute "%3$" which does not exist in class "%4$". */
|
||||
#define CST_err_view_attribute_does_not_exist (EMH_CST_error_base + 50)
|
||||
|
||||
/** The base view attributes provided for class "%1$" are not valid. Regardless of the ordering, all class attributes must be provided for creating a base view. */
|
||||
#define CST_err_base_view_attributes_not_valid (EMH_CST_error_base + 51)
|
||||
|
||||
/** The view cannot be created for the class "%1$" because its status is "%2$". The status of the class must be "Released" for creating its view. */
|
||||
#define CST_err_cannot_create_view_for_not_released_class (EMH_CST_error_base + 52)
|
||||
|
||||
/** The view cannot be created for the class "%1$" because its type is "%2$". The type of the class must be "Application Class" for creating its view. */
|
||||
#define CST_err_cannot_create_view_for_not_application_class (EMH_CST_error_base + 53)
|
||||
|
||||
/** No View Object exists in the system with value "%2$" for the property "%1$". */
|
||||
#define CST_err_view_object_one_input_does_not_exist (EMH_CST_error_base + 54)
|
||||
|
||||
/** No View Object exists in the system with value "%2$" for the property "%1$" and value "%4$" for the property "%3$". */
|
||||
#define CST_err_view_object_two_inputs_does_not_exist (EMH_CST_error_base + 55)
|
||||
|
||||
/** No View Object exists in the system with value "%2$" for the property "%1$", value "%4$" for the property "%3$" and value "%6$" for the property "%5$". */
|
||||
#define CST_err_view_object_three_inputs_does_not_exist (EMH_CST_error_base + 56)
|
||||
|
||||
/** Class Definition "%1$" cannot be created because the attribute "%2$" already exists in parent class "%3$". */
|
||||
#define CST_err_duplicate_attribute (EMH_CST_error_base + 57)
|
||||
|
||||
/** Adding "%1$" to class "%2$" is not allowed as a class definition cannot be added as a child to itself or to any of its children. */
|
||||
#define CST_err_cannot_create_class_with_invalid_parent (EMH_CST_error_base + 58)
|
||||
|
||||
/** The enquiry with ID "%1$" does not exist. */
|
||||
#define CST_err_enquiry_name_does_not_exist (EMH_CST_error_base + 59)
|
||||
|
||||
/** The value for property "%1$" cannot be empty. */
|
||||
#define CST_err_enquiry_empty_value_specified (EMH_CST_error_base + 60)
|
||||
|
||||
/** The property "%1$" is defined as 'cardinal' or 'localizable'. Search on such a property is not supported. */
|
||||
#define CST_err_enquiry_search_not_supported (EMH_CST_error_base + 61)
|
||||
|
||||
/** The value of property "%1$" on the object "%2$" must be of type "%3$". */
|
||||
#define CST_err_wrong_property_value (EMH_CST_error_base + 62)
|
||||
|
||||
/** The property "%1$" does not exist on the object "%2$". */
|
||||
#define CST_err_property_does_not_exist (EMH_CST_error_base + 63)
|
||||
|
||||
/** The search on the property "LOVItems" in the key LOV definition is not supported. */
|
||||
#define CST_err_lovitems_search_not_supported (EMH_CST_error_base + 64)
|
||||
|
||||
/** The select operation on an array property is not supported. */
|
||||
#define CST_err_array_select_not_supported (EMH_CST_error_base + 65)
|
||||
|
||||
/** Access is denied because user does not have required privilege. Please contact your system administrator.*/
|
||||
#define CST_err_access_denied (EMH_CST_error_base + 66)
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
@ -0,0 +1,131 @@
|
||||
/*
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
// ==================================================
|
||||
// Copyright 2015
|
||||
// Siemens Product Lifecycle Management Software Inc.
|
||||
// All Rights Reserved.
|
||||
// ==================================================
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/**
|
||||
@file
|
||||
|
||||
This header file declares all functions, data types and constants to be used by diagramming.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef DIA0DIAGRAMMING_DIA0DIAGRAMMING_H
|
||||
#define DIA0DIAGRAMMING_DIA0DIAGRAMMING_H
|
||||
|
||||
#include <unidefs.h>
|
||||
#include <Dia0diagramming/libdia0diagramming_exports.h>
|
||||
|
||||
|
||||
/**
|
||||
@defgroup DIA0DIAGRAMMING Diagramming Application
|
||||
@ingroup TC
|
||||
To manage System Engineering Diagrams for the 4GD model elements specifically Logical and Requirements.
|
||||
<br/>This will allow designing interactions between different partition breakdowns diagrammatically.
|
||||
@{
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
Finds all the Diagrams associated to an object.
|
||||
<br/> If the value for the parameter @p partition is empty, all elements in the subset are returned.
|
||||
<br/> If the value for the parameter @p ctxt_obj is empty, all elements are returned.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#DIAGRAMMING_find_diagram_invalid_bo_type if the object is not of type Model Element, Ordered Element Group, or Conditional Element Group.
|
||||
<li>#POM_invalid_tag error if the input object is invalid.
|
||||
</ul>
|
||||
|
||||
*/
|
||||
extern DIA0DIAGRAMMING_API int DIA0_find_diagrams (
|
||||
tag_t object, /**< (I) The tag of the object to search the diagrams for. */
|
||||
tag_t partition, /**< (I) The tag of the Partition object */
|
||||
tag_t ctxt_obj, /**< (I) The tag of the configuration context object */
|
||||
int* count, /**< (O) The size of the found_diagram_tags array */
|
||||
tag_t** found_diagram_tags /**< (OF) count Array of found objects */
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Finds all the elements in a partition that are not part of any diagram sheet(s).
|
||||
<br/> If the value for the parameter @p ctxt_obj is empty, all elements are returned.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#DIAGRAMMING_missing_partition if no object is provided.
|
||||
<li>#POM_invalid_tag error if the input object is invalid.
|
||||
</ul>
|
||||
|
||||
*/
|
||||
extern DIA0DIAGRAMMING_API int DIA0_query_unassociated_partitioned_elements (
|
||||
int sheet_count, /**< (I) The size of the sheet_tags array. */
|
||||
const tag_t* sheet_tags, /**< (I) sheet_count array of the Sheet objects */
|
||||
tag_t partition, /**< (I) The tag of the Partition object */
|
||||
tag_t ctxt_obj, /**< (I) The tag of the configuration context object */
|
||||
int* count, /**< (O) Number of found objects */
|
||||
tag_t** found_element_tags /**< (OF) count Array of found objects */
|
||||
);
|
||||
|
||||
/**
|
||||
For a Schematic Sheet member of a Partition, finds the elements which belong to the Schematic Sheet and are not the members of the Partition.
|
||||
<br/>If the Schematic Sheet is not a member of a Partition, an error is returned.
|
||||
<br/> If the value for the parameter @p ctxt_obj is empty, all elements are returned.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#DIAGRAMMING_missing_sheet if an invalid Sheet is provided.
|
||||
<li>#DIAGRAMMING_missing_partition if the provided Sheet does not contain any Partition.
|
||||
<li>#MDC0MDC_no_unique_model_element if more than one associated partition exists for the Schematic Sheet.
|
||||
<li>#POM_invalid_tag error if the input object is invalid.
|
||||
</ul>
|
||||
|
||||
*/
|
||||
extern DIA0DIAGRAMMING_API int DIA0_query_sheet_elements_not_associated (
|
||||
tag_t sheet, /**< (I) The tag of the Schematic Sheet object */
|
||||
tag_t ctxt_obj, /**< (I) The tag of the configuration context object */
|
||||
int* count, /**< (O) Number of found objects */
|
||||
tag_t** found_element_tags /**< (OF) count Array of found objects */
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Finds the elements that belong to the Schematic Sheet and are in the @p element_tags list.
|
||||
<br/>If the value for the parameter @p element_tags is empty, all elements in the subset are returned.
|
||||
<br/>Otherwise, only the elements in both the subset and the @p element_tags list are returned.
|
||||
|
||||
@returns
|
||||
<ul>
|
||||
<li>#ITK_ok on success.
|
||||
<li>#DIAGRAMMING_missing_sheet the specified Schematic Sheet is invalid
|
||||
<li>#POM_invalid_tag error if the input object is invalid.
|
||||
</ul>
|
||||
|
||||
*/
|
||||
extern DIA0DIAGRAMMING_API int DIA0_query_sheet_elements_associated_with (
|
||||
tag_t sheet, /**< (I) The tag of the Schematic Sheet object */
|
||||
int element_count, /**< (I) The size of the element_tags array. */
|
||||
const tag_t* element_tags, /**< (I) element_count Array of the Conditional Elements object */
|
||||
int* count, /**< (O) Number of found objects */
|
||||
tag_t** found_element_tags /**< (OF) count Array of found objects */
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#include <Dia0diagramming/libdia0diagramming_undef.h>
|
||||
#endif
|
@ -0,0 +1,52 @@
|
||||
/*=============================================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2015
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
===============================================================================*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This header file declares all error codes to be used by Dia0Diagramming.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef DIAGRAMMING_ERRORS_H
|
||||
#define DIAGRAMMING_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
|
||||
/**
|
||||
@defgroup DIAGRAMMING_ERRORS Diagramming Errors
|
||||
@ingroup DIA0DIAGRAMMING
|
||||
@{
|
||||
*/
|
||||
|
||||
#define DIAGRAMMING_ERROR_BASE EMH_DIAGRAMMING_error_base
|
||||
|
||||
/**
|
||||
A partition object must be specified in order to find unassociated partition elements of a diagram.
|
||||
*/
|
||||
#define DIAGRAMMING_missing_partition (DIAGRAMMING_ERROR_BASE + 1)
|
||||
|
||||
/**
|
||||
The specified object is not of the correct type.
|
||||
Valid types are "Model Element", "Ordered Element Group" or "Conditional Element Group".
|
||||
*/
|
||||
#define DIAGRAMMING_find_diagram_invalid_bo_type (DIAGRAMMING_ERROR_BASE + 2)
|
||||
|
||||
|
||||
/**
|
||||
Elements cannot be queried without a Schematic Sheet object.
|
||||
*/
|
||||
#define DIAGRAMMING_missing_sheet (DIAGRAMMING_ERROR_BASE + 3)
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,59 @@
|
||||
/*
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
//==================================================
|
||||
//Copyright $2015.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the declaration for the Library diagramming
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libDia0diagramming
|
||||
|
||||
#if !defined(LIBDIA0DIAGRAMMING) && !defined(IPLIB)
|
||||
# error IPLIB or LIBMDC0MDC is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use DIA0DIAGRAMMING_API, not DIA0DIAGRAMMINGEXPORT */
|
||||
|
||||
#define DIA0DIAGRAMMING_API DIA0DIAGRAMMINGEXPORT
|
||||
|
||||
#if IPLIB==libDia0diagramming || defined(LIBDIA0DIAGRAMMING)
|
||||
# if defined(__lint)
|
||||
# define DIA0DIAGRAMMINGEXPORT __export(Dia0diagramming)
|
||||
# define DIA0DIAGRAMMINGGLOBAL extern __global(Dia0diagramming)
|
||||
# define DIA0DIAGRAMMINGPRIVATE extern __private(Dia0diagramming)
|
||||
# elif defined(_WIN32)
|
||||
# define DIA0DIAGRAMMINGEXPORT __declspec(dllexport)
|
||||
# define DIA0DIAGRAMMINGGLOBAL extern __declspec(dllexport)
|
||||
# define DIA0DIAGRAMMINGPRIVATE extern
|
||||
# else
|
||||
# define DIA0DIAGRAMMINGEXPORT
|
||||
# define DIA0DIAGRAMMINGGLOBAL extern
|
||||
# define DIA0DIAGRAMMINGPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define DIA0DIAGRAMMINGEXPORT __export(Dia0diagramming)
|
||||
# define DIA0DIAGRAMMINGGLOBAL extern __global(Dia0diagramming)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define DIA0DIAGRAMMINGEXPORT __declspec(dllimport)
|
||||
# define DIA0DIAGRAMMINGGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define DIA0DIAGRAMMINGEXPORT
|
||||
# define DIA0DIAGRAMMINGGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,26 @@
|
||||
/*
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
//==================================================
|
||||
//Copyright $2015.
|
||||
//Siemens Product Lifecycle Management Software Inc.
|
||||
//All Rights Reserved.
|
||||
//==================================================
|
||||
//Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBDIA0DIAGRAMMING) && !defined(IPLIB)
|
||||
# error IPLIB orLIBMDC0MDC is not defined
|
||||
#endif
|
||||
|
||||
#undef DIA0DIAGRAMMING_API
|
||||
#undef DIA0DIAGRAMMINGEXPORT
|
||||
#undef DIA0DIAGRAMMINGGLOBAL
|
||||
#undef DIA0DIAGRAMMINGPRIVATE
|
@ -0,0 +1,32 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
#===============================================================================
|
||||
# Copyright 2019.
|
||||
# Siemens Product Lifecycle Management Software Inc.
|
||||
# All Rights Reserved.
|
||||
#===============================================================================
|
||||
# Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
/**
|
||||
@file
|
||||
EBM0ENTERPRISEBOM Master Error Codes Declaration
|
||||
*/
|
||||
|
||||
#ifndef EBM0ERRORS_H
|
||||
#define EBM0ERRORS_H
|
||||
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup EBMENT_ERRORS Errors
|
||||
@ingroup EBMENT
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* An internal error has occurred. Report this error to your system administrator.
|
||||
*/
|
||||
#define EBM0ENTERPRISEBOM_internal_error (EMH_EBM0ENTERPRISEBOM_error_base + 1)
|
||||
|
||||
/** @} */
|
||||
#endif
|
@ -0,0 +1,34 @@
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
// ==================================================
|
||||
// Copyright 2013.
|
||||
// Siemens Product Lifecycle Management Software Inc.
|
||||
// All Rights Reserved.
|
||||
// ==================================================
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Epl0edalibrary errors
|
||||
|
||||
*/
|
||||
|
||||
#ifndef EPL0EDALIBRARY_ERRORS_H
|
||||
#define EPL0EDALIBRARY_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
#include <Epl0edalibrary/libEpl0edalibrary_exports.h>
|
||||
|
||||
/**
|
||||
@defgroup EPL0EDALIBRARY_ERRORS EPL0EDALIBRARY Errors
|
||||
@ingroup EPL0EDALIBRARY
|
||||
@{
|
||||
*/
|
||||
|
||||
/** An internal error has occurred in EDA library module: %1$. Please contact your system administrator. */
|
||||
#define EPL0EDALIBRARY_internal_error (EMH_EPL0EDALIBRARY_error_base + 1)
|
||||
|
||||
/** @} */
|
||||
|
||||
#include <Epl0edalibrary/libEpl0edalibrary_undef.h>
|
||||
#endif
|
@ -0,0 +1,62 @@
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
// ==================================================
|
||||
// Copyright 2013.
|
||||
// Siemens Product Lifecycle Management Software Inc.
|
||||
// All Rights Reserved.
|
||||
// ==================================================
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
|
||||
|
||||
/**
|
||||
@libEpl0edalibrary_exports.h
|
||||
Export defines for the EDA library
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libEpl0edalibrary
|
||||
|
||||
#if !defined(IPLIB)
|
||||
# error IPLIB is not defined
|
||||
#endif
|
||||
|
||||
#define EPL0EDALIBRARY_LIBRARY_NAME libEpl0edalibrary
|
||||
#define EPL0EDALIBRARY_LIBRARY_ID_NAME Epl0edalibrary
|
||||
|
||||
/* Handwritten code should use EPL0EDALIBRARY_API, not EPL0EDALIBRARYEXPORT */
|
||||
|
||||
#define EPL0EDALIBRARY_API EPL0EDALIBRARYEXPORT
|
||||
|
||||
/* Support EPL0EDALIBRARYEXPORT for autogenerated schema/pif code only */
|
||||
|
||||
#if IPLIB==EPL0EDALIBRARY_LIBRARY_NAME
|
||||
# if defined(__lint)
|
||||
# define EPL0EDALIBRARYEXPORT __export(EPL0EDALIBRARY_LIBRARY_ID_NAME)
|
||||
# define EPL0EDALIBRARYGLOBAL extern __global(EPL0EDALIBRARY_LIBRARY_ID_NAME)
|
||||
# define EPL0EDALIBRARYPRIVATE extern __private(EPL0EDALIBRARY_LIBRARY_ID_NAME)
|
||||
# elif defined(_WIN32)
|
||||
# define EPL0EDALIBRARYEXPORT __declspec(dllexport)
|
||||
# define EPL0EDALIBRARYGLOBAL extern __declspec(dllexport)
|
||||
# define EPL0EDALIBRARYPRIVATE extern
|
||||
# else
|
||||
# define EPL0EDALIBRARYEXPORT
|
||||
# define EPL0EDALIBRARYGLOBAL extern
|
||||
# define EPL0EDALIBRARYPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define EPL0EDALIBRARYEXPORT __export(EPL0EDALIBRARY_LIBRARY_ID_NAME)
|
||||
# define EPL0EDALIBRARYGLOBAL extern __global(EPL0EDALIBRARY_LIBRARY_ID_NAME)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define EPL0EDALIBRARYEXPORT __declspec(dllimport)
|
||||
# define EPL0EDALIBRARYGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define EPL0EDALIBRARYEXPORT
|
||||
# define EPL0EDALIBRARYGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,33 @@
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
// ==================================================
|
||||
// Copyright 2013.
|
||||
// Siemens Product Lifecycle Management Software Inc.
|
||||
// All Rights Reserved.
|
||||
// ==================================================
|
||||
// Copyright 2020 Siemens Digital Industries Software
|
||||
|
||||
/**
|
||||
@libEpl0edalibrary_undef.h
|
||||
undefines for the EDA library
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(IPLIB)
|
||||
# error IPLIB is not defined
|
||||
#endif
|
||||
|
||||
#undef EPL0EDALIBRARY_API
|
||||
#undef EPL0EDALIBRARYEXPORT
|
||||
#undef EPL0EDALIBRARYGLOBAL
|
||||
#undef EPL0EDALIBRARYPRIVATE
|
||||
|
@ -0,0 +1,442 @@
|
||||
/*HEAD Error_Exception HXX SYSS */
|
||||
/*===============================================================================
|
||||
|
||||
Copyright (c) 2003-2004 UGS Corp.
|
||||
Unpublished - All rights reserved
|
||||
|
||||
=================================================================================
|
||||
File description:
|
||||
|
||||
Base class for all exception objects that are created and thrown within NX.
|
||||
|
||||
=================================================================================
|
||||
Date Name Description of Change
|
||||
NX3
|
||||
02-Jul-2003 Lavarini
|
||||
30-Sep-2003 Lavarini Implement the validate method.
|
||||
17-Oct-2003 Lavarini Make methods public for ERROR_FINALLY macros
|
||||
Make m_bAcknowledged mutable and tighten const
|
||||
09-Jan-2004 Lavarini Implement initialize/reset methods
|
||||
19-Jan-2004 Lavarini Replace NX namespace with UGS namespace
|
||||
Use va_list in constructor to remove SM dependence
|
||||
23-Jan-2004 Lavarini Change signature of throwException method
|
||||
25-Aug-2004 Jack Marr Remove ERROR_CAUGHT_EXCEPTION from ERROR_RECOVER/END for qaz
|
||||
03-Dec-2004 Lavarini Convert ERROR functions to macros
|
||||
Remove qaz changes from 25-Aug-2004
|
||||
31-Aug-2005 Lavarini Implement QAZ version of the ERROR macros
|
||||
$HISTORY$
|
||||
===============================================================================*/
|
||||
|
||||
#ifndef ERROR_EXCEPTION_HXX_INCLUDED
|
||||
#define ERROR_EXCEPTION_HXX_INCLUDED
|
||||
|
||||
#ifdef __lint
|
||||
# pragma uginclude only_in_error "error_c_cxx_interface.h","Error_*.hxx",\
|
||||
"*.cxx","*.cpp";
|
||||
#endif
|
||||
|
||||
#include <exception>
|
||||
|
||||
// <string> must be included to define the std::string type for member variable
|
||||
// data of the Exception class. Unfortunately, a few of our platforms have
|
||||
// not implemented the header file properly. These platforms are SUN and IBM.
|
||||
//
|
||||
// On SUN, <string> cannot be included because clock_t is used in the header
|
||||
// but not completely defined; <time.h> is included here to define clock_t
|
||||
// before it is needed by <string>
|
||||
//
|
||||
// On IBM, some classes need forward declarations before they are used somewhere
|
||||
// within <string>. This can be accomplished by defining __OS400__, but since it
|
||||
// is unknown what defining this macro implies, the decision was to include
|
||||
// <sys/localedef.h> directly which defines the classes needed.
|
||||
#if defined ( __sun )
|
||||
# include <time.h>
|
||||
#endif
|
||||
|
||||
#if defined ( _AIX )
|
||||
# include <sys/localedef.h>
|
||||
#endif
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <error_datatypes.h>
|
||||
#include <stdarg.h>
|
||||
#include <libsyss_exports.h>
|
||||
|
||||
#if defined ( WNT )
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable : 4275)
|
||||
#endif
|
||||
|
||||
namespace UGS
|
||||
{
|
||||
namespace Error
|
||||
{
|
||||
class Exception;
|
||||
}
|
||||
}
|
||||
|
||||
class SYSSEXPORT UGS::Error::Exception : public std::exception
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
// Defines the default action taken at the start of a catch block.
|
||||
// This method prints a line to the syslog stating where the invoking
|
||||
// exception was caught.
|
||||
virtual void doDefaultStartAction
|
||||
(
|
||||
const char * file_name, // Name of file where the invoking
|
||||
// exception was caught.
|
||||
int line_number, // Line number in file where the
|
||||
// invoking exception was caught.
|
||||
ERROR_recover_type_t type // Type of recover block that is
|
||||
// invoking the method.
|
||||
) const ;
|
||||
|
||||
// Defines the default action taken at the end of a catch block.
|
||||
// This specific action taken is determined by the type of recover
|
||||
// block
|
||||
virtual void doDefaultEndAction
|
||||
(
|
||||
ERROR_recover_type_t type // Type of recover block that is
|
||||
// invoking the method.
|
||||
) const;
|
||||
|
||||
// Return the data member m_iErrorCode of the invoking exception
|
||||
int askCode ( ) const;
|
||||
|
||||
// Acknowledge the invoking exception.
|
||||
// Not every exception can be can be acknowledged, so this base method will
|
||||
// generate an Internal exception if it is invoked with checking on. If a
|
||||
// derived exception class can be acknowledged, then that class must implement
|
||||
// this method to call Exception::setAcknowledged().
|
||||
virtual void acknowledge ( ) const;
|
||||
|
||||
// Re-throw the invoking exception.
|
||||
// This member function is only valid within the scope of a catch block as
|
||||
// it calls the C++ throw method without any arguments. With checking on,
|
||||
// this method will throw an Internal exception if the invoking exception
|
||||
// has already been acknowledged.
|
||||
void reThrow ( ) const;
|
||||
|
||||
// Return the data member m_bAcknowledged of the invoking exception
|
||||
logical isAcknowledged ( ) const;
|
||||
|
||||
// Return null-terminated string from the data member m_sFileName of the
|
||||
// invoking exception
|
||||
const char *askFileName ( ) const;
|
||||
|
||||
// Return the data member m_iLineNumber of the invoking exception
|
||||
int askLineNumber ( ) const;
|
||||
|
||||
// Return null-terminated string from the data member m_sSyslogText of the
|
||||
// invoking exception
|
||||
const char *askSyslogMessage ( ) const;
|
||||
|
||||
// Return a translated error message to output to the User. This error
|
||||
// message is determined by the error code of the invoking exception.
|
||||
const char *askUserMessage ( ) const;
|
||||
|
||||
// Return the exception type of the invoking exception. As there are really
|
||||
// only two types here, this default method returns the value ERROR_ERROR.
|
||||
// Redefined in the Escape class to return ERROR_ESCAPE
|
||||
virtual ERROR_exception_type_t askType ( ) const;
|
||||
|
||||
// Return static data member pThrownException, which is a copy of the last
|
||||
// exception object that was thrown.
|
||||
static const Exception * askLastException ( );
|
||||
|
||||
// Check to see if a Callback exception has been saved.
|
||||
static logical hasCallbackException ( );
|
||||
|
||||
// Process any saved Callback exception. If one has been saved, then this
|
||||
// method will throw that exception. If nothing has been saved, then this
|
||||
// method will do nothing.
|
||||
static void throwCallbackException ( );
|
||||
|
||||
// Set the function pointer to determine if a particular error code is
|
||||
// to be suppressed, and return a pointer to the existing function so
|
||||
// that it can be restored if required.
|
||||
static ERROR_suppression_fn_p_t setSuppressor
|
||||
(
|
||||
ERROR_suppression_fn_p_t query_function
|
||||
);
|
||||
|
||||
// Set the debug handler and the data that it requires.
|
||||
static ERROR_debug_handler_t setDebugHandler
|
||||
(
|
||||
const ERROR_debug_handler_t &handler
|
||||
);
|
||||
|
||||
// Reset the Error Exception mechanism.
|
||||
static void reset ( );
|
||||
|
||||
// Set a raise handler. This function will return the ID of the raise handler
|
||||
// so that it can be later canceled.
|
||||
static ERROR_raise_handler_id_t setRaiseHandler
|
||||
(
|
||||
ERROR_raise_handler_fn_p_t raise_handler
|
||||
);
|
||||
|
||||
// Cancel a raise handler. This function takes the ID returned by setRaiseHandler()
|
||||
// to cancel that handler set by that call.
|
||||
static void cancelRaiseHandler
|
||||
(
|
||||
ERROR_raise_handler_id_t id
|
||||
);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// The copy constructor needs to be public in VC7.1 on the WNT platform
|
||||
// to allow the derived exception classes to be caught by the statement:
|
||||
// catch ( UGS::Error::Exception & ERROR_CAUGHT_EXCEPTION ). I don't
|
||||
// know why this is so.
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Copy constructor
|
||||
Exception ( const Exception & right ) throw ( );
|
||||
|
||||
// Throw the invoking exception. This method makes a copy of the exception
|
||||
// before it is thrown.
|
||||
// This is a public method to support the ERROR_FINALLY macros
|
||||
virtual void throwException ( ) const;
|
||||
|
||||
// Make a copy of the invoking exception.
|
||||
// Each instantiable class derived from this base class needs to define
|
||||
// this method to be { return ( new Class_name ( *this ) ); }
|
||||
// This is a public method to support the ERROR_FINALLY macros
|
||||
virtual Exception * makeCopy ( ) const = 0;
|
||||
|
||||
// Destructor
|
||||
// This is a public method to support the ERROR_FINALLY macros
|
||||
virtual ~Exception ( ) throw ( );
|
||||
|
||||
protected:
|
||||
|
||||
// Default constructor
|
||||
Exception ( ) throw ( );
|
||||
|
||||
// Normal constructor when the syslog string is already created
|
||||
Exception
|
||||
(
|
||||
const char * file_name, // Name of file where the exception
|
||||
// was thrown.
|
||||
int line_number, // Line number in file where exception
|
||||
// was thrown.
|
||||
int error_code, // Error code of exception.
|
||||
// Can be a negative number to effect
|
||||
// suppression.
|
||||
logical do_traceback, // Output a traceback to the syslog for
|
||||
// this exception
|
||||
const char * syslog_text // Message that was thrown with the
|
||||
// exception.
|
||||
);
|
||||
|
||||
// Normal constructor when the syslog string needs to be created
|
||||
Exception
|
||||
(
|
||||
const char * file_name, // Name of file where the exception
|
||||
// was thrown.
|
||||
int line_number, // Line number in file where exception
|
||||
// was thrown.
|
||||
int error_code, // Error code of exception.
|
||||
// Can be a negative number to effect
|
||||
// suppression.
|
||||
logical do_traceback, // Output a traceback to the syslog for
|
||||
// this exception
|
||||
const char * control_string, // Format of the message to be thrown
|
||||
// with the exception.
|
||||
va_list ap // Arguments of the message
|
||||
);
|
||||
|
||||
// Assignment operator
|
||||
Exception & operator= ( const Exception & right ) throw ( );
|
||||
|
||||
// Set the data member m_bAcknowledged of the invoking exception to true.
|
||||
// This method also sets data member m_bAcknowledged of the static data
|
||||
// member pThrownException to true.
|
||||
void setAcknowledge ( ) const;
|
||||
|
||||
// Satisfies the requirement of the base std::exception class. This method
|
||||
// should not be used, and that is why it is protected. Use the public member
|
||||
// functions askSyslogMessage() or askUserMessage().
|
||||
const char *what ( ) const throw ( );
|
||||
|
||||
// Validates the invoking exception with the pThrownException exception,
|
||||
// and uses ASSERT_INTERNAL to raise an exception if these are not the same
|
||||
// exception
|
||||
void validate ( ) const;
|
||||
|
||||
// Return the data member m_bSuppressed of the invoking exception
|
||||
logical isSuppressed ( ) const;
|
||||
|
||||
// Output a traceback of where the invoking exception was thrown to the
|
||||
// System Log file
|
||||
void doTraceback
|
||||
(
|
||||
logical do_traceback // Output a traceback to the syslog for
|
||||
// this exception
|
||||
) const;
|
||||
|
||||
private:
|
||||
|
||||
// Value to determine if this error has been acknowledged. Set to false
|
||||
// when object is constructed, the field is set to true within a catch
|
||||
// block via a method call. Not every exception can be acknowledged.
|
||||
mutable logical m_bAcknowledged;
|
||||
|
||||
// This value is set by the constructor to be initially false, but it
|
||||
// is really defined in the member function throwException(). This value
|
||||
// determines how much information about the exception is placed in the
|
||||
// System Log file.
|
||||
logical m_bSuppressed;
|
||||
|
||||
// The error code asscociated with this exception.
|
||||
int m_iErrorCode;
|
||||
|
||||
// Name of file where the exception was initially thrown.
|
||||
std::string m_sFileName;
|
||||
|
||||
// Line number in file where exception was initially thrown.
|
||||
int m_iLineNumber;
|
||||
|
||||
// Message that was thrown with the exception. This is the text that gets
|
||||
// output to the System Log file.
|
||||
std::string m_sSyslogText;
|
||||
|
||||
// A pointer to the last exception that was thrown. This static data member
|
||||
// is assigned in the member function throwException() and is accessed via
|
||||
// static inquiry member functions.
|
||||
static const Exception * pThrownException;
|
||||
|
||||
// A pointer to the last exception that the member function
|
||||
// doCallbackEndAction() was invoked on. This static data member is assigned
|
||||
// in the member function doCallbackEndAction() and thrown in the static
|
||||
// member function throwCallbackException().
|
||||
static const Exception * pCallbackException;
|
||||
|
||||
// A flag to determine if the static data member pCallbackException needs to
|
||||
// be thrown. This variable is set to true in the member function
|
||||
// doCallbackEndAction(). If is value is true, then the static member
|
||||
// function throwCallbackException() will reset the variable to false and
|
||||
// throw the exception pCallbackException.
|
||||
static logical bCallbackException;
|
||||
|
||||
// A pointer to a function to determine if an exception with a particular
|
||||
// error code is to be suppressed.
|
||||
static ERROR_suppression_fn_p_t
|
||||
pfnAskErrorSuppression;
|
||||
|
||||
// The debug handler. If present, the debug handler function will be
|
||||
// excecuted in throwException() prior to the exception being thrown
|
||||
static ERROR_debug_handler_t
|
||||
tDebugHandler;
|
||||
|
||||
// Do the actual throw.
|
||||
// Each instantiable class derived from this base class needs to define
|
||||
// this method to be { throw (*this); }
|
||||
virtual void doThrow ( ) const = 0;
|
||||
|
||||
// Print a leader line to the System Log file regarding information about the
|
||||
// invoking exception.
|
||||
void printLeaderLine ( ) const;
|
||||
|
||||
// Return an exception-specific text string regarding the invoking exception.
|
||||
virtual const char * askLeaderLine ( ) const = 0;
|
||||
|
||||
// Defines the action taken at the end of the ERROR_RECOVER catch block.
|
||||
// This default member function simply throws the exception to the next
|
||||
// catch block. To get a different behavior, a derived class will need
|
||||
// to redefine this member function.
|
||||
virtual void doErrorEndAction ( ) const;
|
||||
|
||||
// Defines the action taken at the end of the ERROR_ESCAPE_RECOVER catch block.
|
||||
// This default member function is identical to Exception::doErrorEndAction().
|
||||
virtual void doEscapeEndAction ( ) const;
|
||||
|
||||
// Defines the action taken within a CALLBACK_END macro.
|
||||
// This method will copy the invoking exception to the static data member
|
||||
// pCallbackException and set the static data member bCallbackException to
|
||||
// true.
|
||||
virtual void doCallbackEndAction ( ) const;
|
||||
|
||||
// Initialize the exception. This is required to perform common tasks for
|
||||
// the excepion that has multiple constructors
|
||||
void initialize ( );
|
||||
};
|
||||
|
||||
#if defined ( WNT )
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
// To facilitate the catching of a particular object, this macro is implemented
|
||||
// to define a variable name that can be used in all error handling macros and
|
||||
// can be used in application code within the context of a recover block.
|
||||
#define ERROR_CAUGHT_EXCEPTION _exc
|
||||
|
||||
// The following three macros are the default versions of those macros that
|
||||
// application code uses for error handling. These macros must not be placed
|
||||
// directly in application code; this macros are strictly used to provide a
|
||||
// basis for other macros defined in other header files.
|
||||
// <DJL> 31-Aug-2005
|
||||
// Implement _lint versions of these macros so as to generate QAZ warning [#429]
|
||||
// if a return statement is located within a ERROR_PROTECT or ERROR_RECOVER block
|
||||
#ifdef _lint
|
||||
# define ERROR_DEFAULT_PROTECT \
|
||||
try\
|
||||
{\
|
||||
char * INVALID_RETURN_FROM_ERROR_PROTECT_BLOCK = new char;
|
||||
|
||||
# define ERROR_DEFAULT_RECOVER(type) \
|
||||
/*NOTREACHED*/delete INVALID_RETURN_FROM_ERROR_PROTECT_BLOCK;\
|
||||
}\
|
||||
catch ( const UGS::Error::Exception & ERROR_CAUGHT_EXCEPTION )\
|
||||
{\
|
||||
char * INVALID_RETURN_FROM_ERROR_RECOVER_BLOCK = new char;\
|
||||
|
||||
# define ERROR_DEFAULT_END(type) \
|
||||
/*NOTREACHED*/delete INVALID_RETURN_FROM_ERROR_RECOVER_BLOCK;\
|
||||
}
|
||||
#else // _lint
|
||||
# define ERROR_DEFAULT_PROTECT \
|
||||
try\
|
||||
{
|
||||
|
||||
# define ERROR_DEFAULT_RECOVER(type) \
|
||||
}\
|
||||
catch ( const UGS::Error::Exception & ERROR_CAUGHT_EXCEPTION )\
|
||||
{\
|
||||
ERROR_CAUGHT_EXCEPTION.doDefaultStartAction ( ERROR_line, type );
|
||||
|
||||
# define ERROR_DEFAULT_END(type) \
|
||||
ERROR_CAUGHT_EXCEPTION.doDefaultEndAction ( type );\
|
||||
}
|
||||
#endif // _lint
|
||||
|
||||
// The following macros used to be functions to either reraise an error, or make
|
||||
// inquiries concerning an error. In the case of the reraise function, this ONLY
|
||||
// works if done within a catch block, so it is defined here as a macro to insure
|
||||
// that it is only used in that context. The other inquiry functions are defined
|
||||
// as macros because it just makes sense to make inquiries of an exception when
|
||||
// at the time that the exception is caught.
|
||||
#define ERROR_ask_failure_code ERROR_CAUGHT_EXCEPTION.askCode
|
||||
|
||||
#define ERROR_reraise ERROR_CAUGHT_EXCEPTION.reThrow
|
||||
|
||||
#define ERROR_ask_exception_type ERROR_CAUGHT_EXCEPTION.askType
|
||||
|
||||
#define ERROR_acknowledge_handled ERROR_CAUGHT_EXCEPTION.acknowledge
|
||||
|
||||
//extern SYSSEXPORT const char *ERROR_ask_file_name ( void );
|
||||
#define ERROR_ask_file_name ERROR_CAUGHT_EXCEPTION.askFileName
|
||||
|
||||
//extern SYSSEXPORT int ERROR_ask_line_number ( void );
|
||||
#define ERROR_ask_line_number ERROR_CAUGHT_EXCEPTION.askLineNumber
|
||||
|
||||
//extern SYSSEXPORT const char *ERROR_ask_syslog_message ( void );
|
||||
#define ERROR_ask_syslog_message ERROR_CAUGHT_EXCEPTION.askSyslogMessage
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#endif /* ERROR_EXCEPTION_HXX_INCLUDED */
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2019.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
#ifndef EVM0VIEWMGMT_ERRORS_H
|
||||
#define EVM0VIEWMGMT_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup EVM0VIEWMGMT_ERRORS Errors
|
||||
@ingroup EVM0VIEWMGMT
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
The query string does not specify the needed input objects for the "%1$" class with "%2$" alias.
|
||||
*/
|
||||
#define EVM0VIEWMGMT_missing_query_input_objs ( EMH_EVM0VIEWMGMT_error_base + 1 )
|
||||
|
||||
/**
|
||||
The query string could not be parsed because its syntax is incorrect.
|
||||
*/
|
||||
#define EVM0VIEWMGMT_failed_to_parse_query_string ( EMH_EVM0VIEWMGMT_error_base + 2 )
|
||||
|
||||
/**
|
||||
A Recipe with the name "%1$" already exists.
|
||||
*/
|
||||
#define EVM0VIEWMGMT_recipe_already_exists ( EMH_EVM0VIEWMGMT_error_base + 3 )
|
||||
|
||||
/**
|
||||
The closure rule "%1$" does not exist in the database. Please import it and try again.
|
||||
*/
|
||||
#define EVM0VIEWMGMT_closurerule_not_exist ( EMH_EVM0VIEWMGMT_error_base + 4 )
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
@ -0,0 +1,65 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2019.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
===============================================================================
|
||||
File Description:
|
||||
|
||||
The header file that defines the export symbols for the
|
||||
evm0viewmgmt library
|
||||
|
||||
===============================================================================
|
||||
Date Name Description
|
||||
|
||||
$HISTORY$
|
||||
=============================================================================*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libEvm0ViewMgmt
|
||||
|
||||
#if !defined(LIBEVM0VIEWMGMT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBEVM0VIEWMGMT is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use the EVM0VIEWMGMT_API version, not EVM0VIEWMGMTEXPORT */
|
||||
|
||||
#define EVM0VIEWMGMT_API EVM0VIEWMGMTEXPORT
|
||||
|
||||
/* Support EVM0VIEWMGMTEXPORT for autogenerated schema/pif code only */
|
||||
|
||||
#if IPLIB==libEvm0ViewMgmt || defined(LIBEVM0VIEWMGMT)
|
||||
# if defined(__lint)
|
||||
# define EVM0VIEWMGMTEXPORT __export(Evm0ViewMgmt)
|
||||
# define EVM0VIEWMGMTGLOBAL extern __global(Evm0ViewMgmt)
|
||||
# define EVM0VIEWMGMTPRIVATE extern __private(Evm0ViewMgmt)
|
||||
# elif defined(_WIN32)
|
||||
# define EVM0VIEWMGMTEXPORT __declspec(dllexport)
|
||||
# define EVM0VIEWMGMTGLOBAL extern __declspec(dllexport)
|
||||
# define EVM0VIEWMGMTPRIVATE extern
|
||||
# else
|
||||
# define EVM0VIEWMGMTEXPORT
|
||||
# define EVM0VIEWMGMTGLOBAL extern
|
||||
# define EVM0VIEWMGMTPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define EVM0VIEWMGMTEXPORT __export(Evm0ViewMgmt)
|
||||
# define EVM0VIEWMGMTGLOBAL extern __global(Evm0ViewMgmt)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define EVM0VIEWMGMTEXPORT __declspec(dllimport)
|
||||
# define EVM0VIEWMGMTGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define EVM0VIEWMGMTEXPORT
|
||||
# define EVM0VIEWMGMTGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,36 @@
|
||||
/* Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2019.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
===============================================================================
|
||||
File Description:
|
||||
|
||||
The header file that undefines the export symbols for the
|
||||
USER_EXITS library
|
||||
|
||||
===============================================================================
|
||||
Date Name Description
|
||||
|
||||
$HISTORY$
|
||||
=============================================================================*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBEVM0VIEWMGMT) && !defined(IPLIB)
|
||||
# error IPLIB or LIBEVM0VIEWMGMT is not defined
|
||||
#endif
|
||||
|
||||
#undef EVM0VIEWMGMT_API
|
||||
#undef EVM0VIEWMGMTEXPORT
|
||||
#undef EVM0VIEWMGMTGLOBAL
|
||||
#undef EVM0VIEWMGMTPRIVATE
|
@ -0,0 +1,38 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
Error codes that are used by the Change Management 4th Generation Interface module
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TEAMCENTER_FGC0CM4G_ERRORS_H
|
||||
#define TEAMCENTER_FGC0CM4G_ERRORS_H
|
||||
|
||||
#include <common/emh_const.h>
|
||||
|
||||
/**
|
||||
@defgroup FGC0CM4G_ERRORS Change Management 4th Generation Interface module Errors
|
||||
@ingroup FGC0CM4G
|
||||
@{
|
||||
*/
|
||||
|
||||
/**
|
||||
* An internal error has occurred: %1$. Please report it to your system administrator.
|
||||
*/
|
||||
#define FGC0CM4G_internal_error ( EMH_FGC0CM4G_error_base + 0 )
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -0,0 +1,64 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file contains the export declarations for the library Fgc0cm4g
|
||||
|
||||
This file should be obsoleted once the autogenerated version is created in out/meta/Fgc0cm4g folder.
|
||||
The autogenerated version will be generated after any metamodel operation is defined or overridden
|
||||
in the fgc0cm4g template.
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#ifdef EXPORTLIBRARY
|
||||
#define EXPORTLIBRARY something else
|
||||
#error ExportLibrary was already defined
|
||||
#endif
|
||||
|
||||
#define EXPORTLIBRARY libFgc0cm4g
|
||||
|
||||
#if !defined(LIBFGC0CM4G) && !defined(IPLIB)
|
||||
# error IPLIB or LIBFGC0CM4G is not defined
|
||||
#endif
|
||||
|
||||
/* Handwritten code should use FGC0CM4G_API, not FGC0CM4GEXPORT */
|
||||
|
||||
#define FGC0CM4G_API FGC0CM4GEXPORT
|
||||
|
||||
#if IPLIB==libFgc0cm4g || defined(LIBFGC0CM4G)
|
||||
# if defined(__lint)
|
||||
# define FGC0CM4GEXPORT __export(Fgc0cm4g)
|
||||
# define FGC0CM4GGLOBAL extern __global(Fgc0cm4g)
|
||||
# define FGC0CM4GPRIVATE extern __private(Fgc0cm4g)
|
||||
# elif defined(_WIN32)
|
||||
# define FGC0CM4GEXPORT __declspec(dllexport)
|
||||
# define FGC0CM4GGLOBAL extern __declspec(dllexport)
|
||||
# define FGC0CM4GPRIVATE extern
|
||||
# else
|
||||
# define FGC0CM4GEXPORT
|
||||
# define FGC0CM4GGLOBAL extern
|
||||
# define FGC0CM4GPRIVATE extern
|
||||
# endif
|
||||
#else
|
||||
# if defined(__lint)
|
||||
# define FGC0CM4GEXPORT __export(Fgc0cm4g)
|
||||
# define FGC0CM4GGLOBAL extern __global(Fgc0cm4g)
|
||||
# elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
|
||||
# define FGC0CM4GEXPORT __declspec(dllimport)
|
||||
# define FGC0CM4GGLOBAL extern __declspec(dllimport)
|
||||
# else
|
||||
# define FGC0CM4GEXPORT
|
||||
# define FGC0CM4GGLOBAL extern
|
||||
# endif
|
||||
#endif
|
@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
==================================================
|
||||
Copyright 2016.
|
||||
Siemens Product Lifecycle Management Software Inc.
|
||||
All Rights Reserved.
|
||||
==================================================
|
||||
Copyright 2020 Siemens Digital Industries Software
|
||||
*/
|
||||
|
||||
/**
|
||||
@file
|
||||
|
||||
This file undefines the export declarations for the library Fgc0cm4g
|
||||
|
||||
This file should be obsoleted once the autogenerated version is created in out/meta/Fgc0cm4g folder.
|
||||
The autogenerated version will be generated after any metamodel operation is defined or overridden
|
||||
in the fgc0cm4g template.
|
||||
|
||||
*/
|
||||
|
||||
#include <common/library_indicators.h>
|
||||
|
||||
#if !defined(EXPORTLIBRARY)
|
||||
# error EXPORTLIBRARY is not defined
|
||||
#endif
|
||||
|
||||
#undef EXPORTLIBRARY
|
||||
|
||||
#if !defined(LIBFGC0CM4G) && !defined(IPLIB)
|
||||
# error IPLIB or LIBFGC0CM4G is not defined
|
||||
#endif
|
||||
|
||||
#undef FGC0CM4G_API
|
||||
#undef FGC0CM4GEXPORT
|
||||
#undef FGC0CM4GGLOBAL
|
||||
#undef FGC0CM4GPRIVATE
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue