2. The OmniMark Interface to External Functions
2.1 OmniMark Data Types
2.2 Functions that Support Immediate Actions
2.3 Functions that Support a Sequence of Actions
2.3.1 External Output
2.3.2 External Source
2.3.3 Opaque Data Function
3. The C Interface to External Functions
3.1 A Caution To Clever Programmers
3.2 Overview
3.2.1 Shared Libraries
3.2.2 Library Entry Points and Exits
3.2.2.1 External Function Entry
3.2.2.2 External Function Exit
3.2.3 Subfunctions
3.2.4 Abnormal Termination
3.3 Data and Constants
3.3.1 API Version Constants
3.3.2 Primitive Data Types and OmniMark String Type
3.3.3 Enumerated Types
3.4 Fundamentals of the API
3.4.1 Objects, Methods, and Function Entry Points
3.4.2 Getting API Objects
3.4.2.1 Getting API Objects in Subfunctions
3.4.2.2 Example: Obtaining One API Object from Another
3.4.3 Failure Indicators and Exceptions
3.4.4 Version Information
3.4.5 String Allocator Methods
3.4.6 Writing to Current Output
3.5 Access to OmniMark Arguments
3.5.1 Getting Descriptive Information About Shelf Arguments
3.5.1.1 The ArgumentInfo Object
3.5.1.2 Obtaining the ArgumentInfo Object
3.5.1.3 Example: Using the OMXF_ArgumentInfo_type Object
3.5.2 Shelf Access
3.5.2.1 Getting the Shelf Object for an Argument
3.5.2.1.1 Getting a Shelf Object By Position and Type
3.5.2.1.2 Optional Arguments
3.5.2.2 Accessing Data in the Selected Shelf Item
3.5.2.2.1 Access to Counter Data
3.5.2.2.2 Access to Opaque Data
3.5.2.2.3 Access to Stream Data
3.5.2.2.4 Access to Switch Data
3.5.3 Managing a Shelf
3.5.3.1 Choosing a Shelf Item
3.5.3.2 Inserting or Removing Shelf Items
3.5.3.3 Managing the Keys of Shelf Items
3.5.3.4 Example: Removing a Keyed Switch Item
3.5.3.5 Example: Inserting a Keyed Counter Item
3.5.4 Managing Stream Items
3.5.4.1 Opening, Closing and Discarding Stream Items
3.5.4.1.1 Setting the Open Options
3.5.4.1.2 Opening and Reopening Stream Items
3.5.4.1.3 Closing and Discarding Streams
3.5.4.2 Reading Stream Data
3.5.4.3 Writing Stream Data
3.5.4.4 Getting Information about a Stream Item
3.5.5 Managing Opaque Data Items
3.5.5.1 Accessing User-Defined Data in Opaque Objects
3.5.5.2 Replacing Opaque Data in an Opaque Shelf Item
3.5.5.3 Copying and Releasing Opaque Data Objects
3.6 External Counter Functions
3.7 Opaque Data Functions
3.8 External Switch Functions
3.9 External Stream Functions
3.10 External Functions that Return No Data
3.11 External Sources
3.11.1 External Source Function
3.11.2 External Source Read Subfunction
3.11.3 External Source Terminate Subfunction
3.11.4 Example: External Source
3.12 External Outputs
3.12.1 External Output Function
3.12.2 External Output Stream Open Options
3.12.3 External Output Connect and Reconnect Subfunctions
3.12.4 External Output Disconnect Subfunction
3.12.5 External Output Name Subfunctions
3.12.6 External Output Terminate Subfunction
3.12.7 External Output Write Subfunction
3.12.8 Example: External Output
3.13 Opaque Data Functions and Values
3.13.1 Opaque Data Create Function
3.13.2 Opaque Data Copy Subfunction
3.13.3 Opaque Data Release Subfunction
3.13.4 Using Opaque Data in External Functions
3.13.5 Opaque Data Resource Management
3.13.6 Example: Opaque Data
3.13.7 Example: External Functions Using Opaque Data
3.14 Safe Programming Practices
3.15 Development and Debugging Tools
3.15.1 Checking for Null Pointers
3.15.2 Tiny OmniMark Interpreter
4. External Function API Reference
4.1 Symbolic Constant Reference
4.1.1 Symbolic Constant OMXF_API_VersionNumber
4.1.2 Symbolic Constant OMXF_API_VersionString
4.2 Type Definition and Structure Reference
4.2.1 Type OMXF_char
4.2.2 Type OMXF_int
4.2.3 Structure OMXF_OpaqueHeader_type
4.2.4 Structure OMXF_String_type
4.3 Enumerated Type Reference
4.3.1 Enumerated Type OMXF_ArgumentClass_type
4.3.2 Enumerated Type OMXF_ArgumentObjectType_type
4.3.3 Enumerated Type OMXF_FailureIndicator_type
4.3.4 Enumerated Type OMXF_OptionBlockFormatModifier_type
4.3.5 Enumerated Type OMXF_ReturnValueType_type
4.3.6 Enumerated Type OMXF_StreamAttachmentType_type
4.3.7 Enumerated Type OMXF_StreamState_type
4.3.8 Enumerated Type OMXF_SwitchValue_type
4.4 Shared Methods Reference
4.4.1 Shared Base Methods
4.4.2 Shared Exception Handler Methods
4.4.3 Shared Shelf Methods
4.4.4 Shared String Allocator Methods
4.5 Object Reference
4.5.1 The Argument Info Object
4.5.2 The Counter Shelf Object
4.5.3 The Environment Object
4.5.4 The External Output Options Object
4.5.5 The External Output Object
4.5.6 The External Source Object
4.5.7 The Opaque Shelf Object
4.5.8 The Sink Object
4.5.9 The Source Object
4.5.10 The Stream Open Option Block Object
4.5.11 The Stream Shelf Object
4.5.12 The Sub Environment Object
4.5.13 The Switch Shelf Object
4.6 Function Prototype Reference
4.6.1 Prototype -- OMXF_Connect_fun
4.6.2 Prototype -- OMXF_Disconnect_fun
4.6.3 Prototype -- OMXF_HasName_fun
4.6.4 Prototype -- OMXF_NameLength_fun
4.6.5 Prototype -- OMXF_NameOf_fun
4.6.6 Prototype -- OMXF_OpaqueCopy_fun
4.6.7 Prototype -- OMXF_OpaqueCreator_fun
4.6.8 Prototype -- OMXF_OpaqueRelease_fun
4.6.9 Prototype -- OMXF_Read_fun
4.6.10 Prototype -- OMXF_Reconnect_fun
4.6.11 Prototype -- OMXF_Terminate_fun
4.6.12 Prototype -- OMXF_Write_fun
4.7 Method Reference
4.7.1 Method -- OMXF_AllocateStreamOpenOptionBlock
4.7.2 Method -- OMXF_ArgumentIsOptional
4.7.3 Method -- OMXF_ArgumentIsSpecified
4.7.4 Method -- OMXF_CheckOmniMarkVersion
4.7.5 Method -- OMXF_ClearFormatModifiers
4.7.6 Method -- OMXF_ClearShelf
4.7.7 Method -- OMXF_CloseStreamItem
4.7.8 Method -- OMXF_CopyCharArrayToTmp_OMXF_String
4.7.9 Method -- OMXF_CopyCharArrayTo_OMXF_String
4.7.10 Method -- OMXF_Copy_C_StringToTmp_OMXF_String
4.7.11 Method -- OMXF_Copy_C_StringTo_OMXF_String
4.7.12 Method -- OMXF_CreateExternalOutput
4.7.13 Method -- OMXF_CreateExternalSource
4.7.14 Method -- OMXF_DiscardReturnValue
4.7.15 Method -- OMXF_DiscardStreamItem
4.7.16 Method -- OMXF_FreeExternalOutput
4.7.17 Method -- OMXF_FreeExternalSource
4.7.18 Method -- OMXF_FreeSink
4.7.19 Method -- OMXF_FreeSource
4.7.20 Method -- OMXF_FreeStreamOpenOptionBlock
4.7.21 Method -- OMXF_Free_OMXF_String
4.7.22 Method -- OMXF_GetAppendingOptionValue
4.7.23 Method -- OMXF_GetArgumentClass
4.7.24 Method -- OMXF_GetArgumentInfo
4.7.25 Method -- OMXF_GetArgumentInfoByPosition
4.7.26 Method -- OMXF_GetArgumentName
4.7.27 Method -- OMXF_GetArgumentObjectType
4.7.28 Method -- OMXF_GetArgumentPosition
4.7.29 Method -- OMXF_GetArgumentTypeName
4.7.30 Method -- OMXF_GetBinaryOrderingValue
4.7.31 Method -- OMXF_GetCounterArgument
4.7.32 Method -- OMXF_GetCounterArgumentByPosition
4.7.33 Method -- OMXF_GetCounterItemValue
4.7.34 Method -- OMXF_GetDefaultItem
4.7.35 Method -- OMXF_GetExternalOutputOptions
4.7.36 Method -- OMXF_GetFailureIndicator
4.7.37 Method -- OMXF_GetInitialLengthOfSource
4.7.38 Method -- OMXF_GetItemNumberOfKey
4.7.39 Method -- OMXF_GetKeyOfShelfItem
4.7.40 Method -- OMXF_GetLengthOfStreamItem
4.7.41 Method -- OMXF_GetNameOfOmniMarkFunction
4.7.42 Method -- OMXF_GetNameOfReturnType
4.7.43 Method -- OMXF_GetNameOfStreamItem
4.7.44 Method -- OMXF_GetNumberOfArguments
4.7.45 Method -- OMXF_GetNumberOfShelfItems
4.7.46 Method -- OMXF_GetOmniMarkVersion
4.7.47 Method -- OMXF_GetOpaqueArgumentByPosition
4.7.48 Method -- OMXF_GetOpaqueCopySubfunction
4.7.49 Method -- OMXF_GetOpaqueItemReference
4.7.50 Method -- OMXF_GetOpaqueReleaseSubfunction
4.7.51 Method -- OMXF_GetSinkFromStreamItem
4.7.52 Method -- OMXF_GetSourceFromStreamItem
4.7.53 Method -- OMXF_GetStateOfStreamItem
4.7.54 Method -- OMXF_GetStreamArgument
4.7.55 Method -- OMXF_GetStreamArgumentByPosition
4.7.56 Method -- OMXF_GetSwitchArgument
4.7.57 Method -- OMXF_GetSwitchArgumentByPosition
4.7.58 Method -- OMXF_GetSwitchItemValue
4.7.59 Method -- OMXF_GetTypeOfReturnValue
4.7.60 Method -- OMXF_GetTypeOfStreamItemAttachment
4.7.61 Method -- OMXF_InitializeOpaqueHeader
4.7.62 Method -- OMXF_InsertNewShelfItem
4.7.63 Method -- OMXF_LogMessage
4.7.64 Method -- OMXF_OpenStreamItemAsBuffer
4.7.65 Method -- OMXF_OpenStreamItemAsFile
4.7.66 Method -- OMXF_ReadDataFromSource
4.7.67 Method -- OMXF_RemoveKeyOfShelfItem
4.7.68 Method -- OMXF_RemoveShelfItem
4.7.69 Method -- OMXF_ReopenStreamItem
4.7.70 Method -- OMXF_ResetAppending
4.7.71 Method -- OMXF_ResetBinaryOrdering
4.7.72 Method -- OMXF_ResetBreakWidth
4.7.73 Method -- OMXF_ResetDomainFree
4.7.74 Method -- OMXF_ResetStreamOpenOptionBlock
4.7.75 Method -- OMXF_SetAppending
4.7.76 Method -- OMXF_SetBinaryBinTextMode
4.7.77 Method -- OMXF_SetBinaryOrdering
4.7.78 Method -- OMXF_SetConnectFunOfExternalOutput
4.7.79 Method -- OMXF_SetCounterItemValue
4.7.80 Method -- OMXF_SetCounterReturnValue
4.7.81 Method -- OMXF_SetDefaultBinTextMode
4.7.82 Method -- OMXF_SetDisconnectFunOfExternalOutput
4.7.83 Method -- OMXF_SetDomainFree
4.7.84 Method -- OMXF_SetExternalOutputReturnValue
4.7.85 Method -- OMXF_SetExternalSourceReturnValue
4.7.86 Method -- OMXF_SetFormatModifiers
4.7.87 Method -- OMXF_SetHasNameFunOfExternalOutput
4.7.88 Method -- OMXF_SetKeyOfShelfItem
4.7.89 Method -- OMXF_SetMaximumBreakWidth
4.7.90 Method -- OMXF_SetNameLengthFunOfExternalOutput
4.7.91 Method -- OMXF_SetNameOfFunOfExternalOutput
4.7.92 Method -- OMXF_SetOpaqueItem
4.7.93 Method -- OMXF_SetOpaqueReturnValue
4.7.94 Method -- OMXF_SetPreferredBreakWidth
4.7.95 Method -- OMXF_SetReadFunOfExternalSource
4.7.96 Method -- OMXF_SetReconnectFunOfExternalOutput
4.7.97 Method -- OMXF_SetSwitchItemValue
4.7.98 Method -- OMXF_SetSwitchReturnValue
4.7.99 Method -- OMXF_SetTerminateFunOfExternalOutput
4.7.100 Method -- OMXF_SetTerminateFunOfExternalSource
4.7.101 Method -- OMXF_SetTextBinTextMode
4.7.102 Method -- OMXF_SetUserInfoOfExternalOutput
4.7.103 Method -- OMXF_SetUserInfoOfExternalSource
4.7.104 Method -- OMXF_SetWriteFunOfExternalOutput
4.7.105 Method -- OMXF_SignalExternalFunctionException
4.7.106 Method -- OMXF_SourceAtEnd
4.7.107 Method -- OMXF_StreamItemHasName
4.7.108 Method -- OMXF_ToggleSwitchItemValue
4.7.109 Method -- OMXF_Write_C_chars_ToCurrentOutput
4.7.110 Method -- OMXF_Write_C_chars_ToSink
4.7.111 Method -- OMXF_Write_C_chars_ToStreamReturnValue
4.7.112 Method -- OMXF_Write_OMXF_chars_ToCurrentOutput
4.7.113 Method -- OMXF_Write_OMXF_chars_ToSink
4.7.114 Method -- OMXF_Write_OMXF_chars_ToStreamReturnValue
Copyright © 1988-1999 OmniMark Technologies Corporation All rights reserved.
EUM44, release 1, 1997/11/21.