GemStone/S 64 Bit GemBuilder for C

  • 1. Introduction

    • 1.1 GemBuilder Application Overview

    • 1.2 Deciding Where to Do the Work

      • Representing GemStone Objects in C

      • Smalltalk Access to Objects

      • Environments

    • 1.3 Objects in GemStone and C data

    • 1.4 Garbage Collection

      • In-memory garbage collection

      • Unreferenced persistent object garbage collection

      • Releasing Objects

  • 2. Interacting with GemBuilder

    • 2.1 Session Control

      • Prepare for Login

      • Logging In and Out

      • Transaction Management

        • Committing a Transaction

        • Aborting a Transaction

        • Controlling Transactions Manually

    • 2.2 Representing Objects in C

      • GemStone-Defined Object Macros

      • GemStone Object Implementation Types

        • Special

        • Byte

        • Pointer

        • NSC

      • GemStone Data Types

        • Integers

        • Floating Points

        • Other Numeric Types

        • Character

        • Boolean

        • nil

        • Strings

      • Object Creation

    • 2.3 Performing work in GemStone

      • Executing Smalltalk Code in GemStone

      • Sending Messages to GemStone Objects

      • Interrupting GemStone Execution

    • 2.4 Structural Access to Objects

      • Direct Access to Metadata

        • Byte Objects

        • Pointer Objects

        • Nonsequenceable Collections (NSC Objects)

      • Efficient Fetching and Storing with Object Traversal

        • How Object Traversal Works

        • The Object Traversal Functions

      • Efficient Fetching And Storing with Path Access

    • 2.5 Nonblocking Functions

    • 2.6 Operating System Considerations for C Applications

      • Signal Handling in Your GemBuilder Application

      • Executing Host File Access Methods

      • Writing Portable Code

    • 2.7 Error Handling and Recovery

      • Polling for Errors

      • Error Jump Buffers

      • The Call Stack

      • GemStone System Errors

  • 3. Building GCI Applications

    • 3.1 Environment

    • 3.2 RPC and Linked applications

      • RPC for Debugging

      • Linked for Performance

      • The GemBuilder for C Shared Libraries

    • 3.3 GemBuilder Applications that load Shared Libraries

      • Building the Application

      • Searching for the Library

        • How UNIX Matches Search Names with Shared Library Files

    • 3.4 Building Statically Linked Applications

  • 4. Writing User Actions

    • 4.1 Shared User Action Libraries

    • 4.2 How User Actions Work

    • 4.3 Developing User Actions

      • 1. Write the User Action Functions

      • 2. Create a User Action Library

        • The gciua.hf Header File

        • The Initialization and Shutdown Functions

        • Defining the Initialization Function

        • Defining the Shutdown Function

        • Compiling and Linking Shared Libraries

        • Using Existing User Actions in a User Action Library

        • Using Third-party C Code with a User Action Library

      • 3. Loading User Actions

        • Loading User Action Libraries At Run Time

        • Session User Actions

        • Application User Actions

        • Specifying the User Action Library

        • Creating User Actions in Your C Application

        • Verify That Required User Actions Have Been Installed

      • 4. Write the Code That Calls Your User Actions

        • Limit on Circular Calls Among User Actions and Smalltalk

      • 5. Debug the User Action

    • 4.4 Executing User Actions

      • Choosing Between Session and Application User Actions

        • Remote Application and Gem Processes

        • Applications With Multiple Gems

      • Running User Actions with Applications

        • With an RPC Application

        • With a Linked Application

      • Running User Actions with Gems

  • 5. Compiling and Linking

    • 5.1 Development Environment and Standard Libraries

    • 5.2 Compiling and Linking C Source Code for GemStone

      • Compiling

        • The C++ Compiler

        • Compilation Options

      • Linking

        • Link options

      • Risk of Database Corruption

    • 5.3 Platform Specific versions and example options

      • Linux Compile and Link Information

        • Complier version

        • Listing the Compiler Version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • AIX Compile and Link Information

        • Complier version

        • Listing the Compiler Version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • DARWIN Compile and Link Information

        • Complier version

        • Listing the Compiler Version

        • Debugger version

        • Compiling a user action or GCI application

        • Linking a user action library

        • Linking a GCI application

      • Windows Compile and Link Information

        • Complier/Debugger version

        • Compiling a GCI application

        • Linking a GCI application

  • 6. GemBuilder for C Files and Data Structures

    • 6.1 GemBuilder for C Include Files

    • 6.2 Reserved Oops

    • 6.3 GemBuilder Data Types

      • Date/Time Structures

        • GciDateTimeSType

        • GciDateAndTime

        • GciPosixDateAndTime

        • GCI_SECONDS_PER_DAY

      • Error Report Structure - GciErrSType

      • Object Information Structure - GciObjInfoSType

      • Object Report Structure - GciObjRepSType

      • Object Report Header - GciObjRepHdrSType

      • Store Traversal Arguments - GciStoreTravDoArgsSType

      • Clamped Traversal Arguments - GciClampedTravArgsSType

      • Traversal Buffer - GciTravBufType

        • Functions

      • User Action Information Structure - GciUserActionSType

  • 7. GemBuilder C Function Reference

    • 7.1 Function Summary Tables

    • 7.2 Executing the examples

    • GciAbort

    • GciAddOopToNsc

    • GciAddOopsToNsc

    • GCI_ALIGN

    • GciAll7Bit

    • GciAllocTravBuf

    • GciAlteredObjs

    • GciAppendBytes

    • GciAppendChars

    • GciAppendOops

    • GciBegin

    • GCI_BOOL_TO_OOP

    • GciByteArrayToPointer

    • GciCallInProgress

    • GciCheckAuth

    • GCI_CHR_TO_OOP

    • GciClampedTrav

    • GciClassMethodForClass

    • GciClassNamedSize

    • GciClassRemoveAllMethods

    • GciClearStack

    • GciCommit

    • GciCompileMethod

    • GciCompress

    • GciCompressUsingLz4

    • GciContinue

    • GciContinueWith

    • GciCreateByteObj

    • GciCreateOopObj

    • GciCTimeToDateTime

    • GciDateTimeToCTime

    • GciDbgEstablish

    • GciDbgEstablishToFile

    • GciDbgLogString

    • GciDebugConnectToGem

    • GciDebugStartDebugService

    • GciDeclareAction

    • GCI_DECLARE_ACTION

    • GciDecodeOopArray

    • GciDecSharedCounter

    • GciDirtyExportedObjs

    • GciDirtyObjsInit

    • GciDirtySaveObjs

    • Gci_doubleToSmallDouble

    • GciEnableFreeOopEncoding

    • GciEnableFullCompression

    • GciEnableSignaledErrors

    • GciEncodeOopArray

    • GciEncrypt

    • GciErr

    • GciExecute

    • GciExecuteFromContext

    • GciExecuteStr

    • GciExecuteStrFetchBytes

    • GciExecuteStrFromContext

    • GciExecuteStrTrav

    • GciFetchByte

    • GciFetchBytes_

    • GciFetchChars_

    • GciFetchClass

    • GciFetchDateTime

    • GciFetchDateAndTime

    • GciFetchDateAndTimePosix

    • GciFetchDynamicIv

    • GciFetchDynamicIvs

    • GciFetchNamedOop

    • GciFetchNamedOops

    • GciFetchNamedSize

    • GciFetchNameOfClass

    • GciFetchNumEncodedOops

    • GciFetchNumSharedCounters

    • GciFetchObjectInfo

    • GciFetchObjImpl

    • GciFetchOop

    • GciFetchOops

    • GciFetchPaths

    • GciFetchSharedCounterValuesNoLock

    • GciFetchSize_

    • GciFetchUtf8Bytes_

    • GciFetchVaryingOop

    • GciFetchVaryingOops

    • GciFetchVaryingSize_

    • GciFindObjRep

    • GciFloatKind

    • GciFltToOop

    • GciGetFreeOop

    • GciGetFreeOops

    • GciGetFreeOopsEncoded

    • GciGetSessionId

    • GciHardBreak

    • GciHiddenSetIncludesOop

    • GciI32ToOop

    • GCI_I64_IS_SMALL_INT

    • GciI64ToOop

    • GciIncSharedCounter

    • GciInit

    • GciInit_

    • GciInitAppName

    • GciInstallUserAction

    • GciInstMethodForClass

    • GciInUserAction

    • GciIsKindOf

    • GciIsKindOfClass

    • GciIsRemote

    • GciIsSubclassOf

    • GciIsSubclassOfClass

    • GciIvNameToIdx

    • GciLoadUserActionLibrary

    • GciLogin

    • GciLoginEx

    • GciLogout

    • GciLongJmp

    • GciMoreTraversal

    • GciNbAbort

    • GciNbBegin

    • GciNbClampedTrav

    • GciNbCommit

    • GciNbContinue

    • GciNbContinueWith

    • GciNbEnd

    • GciNbEndPoll

    • GciNbExecute

    • GciNbExecuteFromContextDbg_

    • GciNbExecuteStr

    • GciNbExecuteStrFetchBytes

    • GciNbExecuteStrFromContext

    • GciNbExecuteStrTrav

    • GciNbLoginEx

    • GciNbMoreTraversal

    • GciNbPerform

    • GciNbPerformFetchBytes

    • GciNbPerformNoDebug

    • GciNbPerformTrav

    • GciNbStoreTrav

    • GciNbStoreTravDo_

    • GciNbStoreTravDoTrav_

    • GciNbStoreTravDoTravRefs_

    • GciNbTraverseObjs

    • GciNewByteObj

    • GciNewCharObj

    • GciNewDateTime

    • GciNewDateAndTime

    • GciNewDateAndTimePosix

    • GciNewOop

    • GciNewOops

    • GciNewOopUsingObjRep

    • GciNewString

    • GciNewSymbol

    • GciNewUtf8String

    • GciNscIncludesOop

    • GciObjExists

    • GciObjInCollection

    • GciObjIsCommitted

    • GciObjRepSize_

    • GCI_OOP_IS_BOOL

    • GCI_OOP_IS_CHAR

    • GCI_OOP_IS_SmallDate

    • GCI_OOP_IS_SmallDateAndTime

    • GCI_OOP_IS_SMALL_DOUBLE

    • GCI_OOP_IS_SMALL_FRACTION

    • GCI_OOP_IS_SMALL_INT

    • GCI_OOP_IS_SmallScaledDecimal

    • GCI_OOP_IS_SmallTime

    • GCI_OOP_IS_SPECIAL

    • GciOopToBool

    • GCI_OOP_TO_BOOL

    • GciOopToChar16

    • GciOopToChar32

    • GciOopToChr

    • GCI_OOP_TO_CHR

    • GciOopToFlt

    • GciOopToI32

    • GciOopToI64

    • GciPerform

    • GciPerformFetchBytes

    • GciPerformNoDebug

    • GciPerformSymDbg

    • GciPerformTrav

    • GciPerformTraverse

    • GciPointerToByteArray

    • GciPollForSignal

    • GciPollSocketForRead

    • GciPopErrJump

    • GciProcessDeferredUpdates_

    • GciProduct

    • GciPushErrJump

    • GciRaiseException

    • GciReadSharedCounter

    • GciReadSharedCounterNoLock

    • GciReleaseAllGlobalOops

    • GciReleaseAllOops

    • GciReleaseGlobalOops

    • GciReleaseOops

    • GciRemoveOopFromNsc

    • GciRemoveOopsFromNsc

    • GciReplaceOops

    • GciReplaceVaryingOops

    • GciResolveSymbol

    • GciResolveSymbolObj

    • GciRtlIsLoaded

    • GciRtlLoad

    • GciRtlUnload

    • GciSaveGlobalObjs

    • GciSaveObjs

    • GciServerIsBigEndian

    • GciSessionIsRemote

    • GciSetCacheName_

    • GciSetErrJump

    • GciSetHaltOnError

    • Gci_SETJMP

    • GciSetNet

    • GciSetNetEx

    • GciSetSessionId

    • GciSetSharedCounter

    • GciSetTraversalBufSwizzling

    • GciSetVaryingSize

    • GciShutdown

    • GciSoftBreak

    • GciStep

    • GciStoreByte

    • GciStoreBytes

    • GciStoreBytesInstanceOf

    • GciStoreChars

    • GciStoreDynamicIv

    • GciStoreIdxOop

    • GciStoreIdxOops

    • GciStoreNamedOop

    • GciStoreNamedOops

    • GciStoreOop

    • GciStoreOops

    • GciStorePaths

    • GciStoreTrav

    • GciStoreTravDo_

    • GciStoreTravDoTrav_

    • GciStoreTravDoTravRefs_

    • GciStringToInteger

    • GciStrKeyValueDictAt

    • GciStrKeyValueDictAtObj

    • GciStrKeyValueDictAtObjPut

    • GciStrKeyValueDictAtPut

    • GciSymDictAt

    • GciSymDictAtObj

    • GciSymDictAtObjPut

    • GciSymDictAtPut

    • GciTraverseObjs

    • GciUncompress

    • GciUncompressUsingLz4

    • GciUserActionInit

    • GciUserActionShutdown

    • GciUtf8To8Bit

    • GciVersion

    • GciX509Login

  • 8. GemStone C Statistics Interface

    • 8.1 Developing a GCSI Application

      • Required Header Files

      • The GCSI Shared Library

      • Compiling and Linking

      • Connecting to the Shared Page Cache

      • The Sample Program

    • 8.2 GCSI Data Types

      • The Structure for Representing the GCSI Function Result

    • GcsiAllGemStatsForGemKindRange

    • GcsiAllStatsForMask

    • GcsiAllGemStatsForRegexName

    • GcsiAttachSharedCache

    • GcsiAttachSharedCacheForStone

    • GcsiCacheIsAlive

    • GcsiDetachSharedCache

    • GcsiFetchMaxProcessesInCache

    • GcsiInit

    • GcsiStatsForGemSessionId

    • GcsiStatsForGemSessionWithName

    • GcsiStatsForPgsvrSessionId

    • GcsiStatsForProcessId

    • GcsiStatsForShrPcMon

    • GcsiStatsForStone

    • GCSI Errors

Copyright 2023 GemTalk Systems