Library dependencies in clients and services

C++

When creating clients or services, pay special attention to library dependencies.

Compiling your client and service

Symphony API headers

Include soam.h in any source code that needs to refer to the C++ Symphony API.

Binary execution headers

Include symexec.h in any source code that needs to refer to the C++ Symphony Binary Execution API.

Location of headers

Symphony API and Binary Execution API header files are in:

  • Windows: %SOAM_HOME%\4.1\include

  • Linux/UNIX: $SOAM_HOME/4.1/include

Symphony API implementations

Include the C++ implementation file SoamSrc.cpp in any of your implementation files (.cpp files) so that all C++ Symphony API wrapper implementations can be compiled and linked to your client or service code .

Symphony binary execution implementations

Include the C++ implementation file symexec.cpp in any of your implementation files (.cpp files) to enable proper linking of the Binary Execution API wrapper implementation to your client.

Location of implementations

Symphony API implementations and Binary Execution API implementations are in:

  • Windows: %SOAM_HOME%\4.1\src

  • Linux/UNIX: $SOAM_HOME/4.1/src

If you are developing in Microsoft Visual Studio, you can include implementations directly into your project or from your stdafx.cpp file.

If you are developing in Linux/UNIX, you can include implementations in your Makefile instead of in the source.

Important:

Do not include implementation files in more than one place. Doing so introduces duplicate symbols and causes link failures.

Linking

On Windows:

  • For Visual Studio compilers, use the /gr compiler option.

  • Link to the static link library file soambase.lib to establish dynamic links to the soambase.dll library.

  • This file is located in %SOAM_HOME%\4.1\%EGO_MACHINE_TYPE%\lib.

  • For 64-bit applications, this file is located in %SOAM_HOME%\4.1\%EGO_MACHINE_TYPE%\lib64.

On Linux/UNIX:

  • Do not disable the -rtti compiler option for gcc.

  • Link to the libsoambase.so file in your Makefile.

  • This file is located in $SOAM_HOME/4.1/$EGO_MACHINE_TYPE/lib.

  • For 64-bit applications, this file is located in $SOAM_HOME/4.1/$EGO_MACHINE_TYPE/lib64.

Java

When creating clients or services, pay special attention to library dependencies.

Building your client and service

Symphony API libraries

The Java Symphony API contains two layers: a Java layer, and a C++ layer. The Java API is in the package com.platform.symphony.soam. Its Java implementation is located in JavaSoamApi.jar, and its C++ implementation is located in:

Windows:

  • jnativesoamapi_4.1.0.dll(32-bit implementation)

  • jnativesoamapi_4.1.0_64.dll(64-bit implementation)

Linux:

  • libjnativesoamapi_4.1.0.so(32-bit implementation)

  • libjnativesoamapi_4.1.0_64.so(64-bit implementation)

Important:

The jnativesoamapi_4.1.0.dll and jnativesoamapi_4.1.0_64.dll have implementation specific to Symphony 4.1 and cannot be separated from JavaSoamApi.jar in the same location.

Symphony binary execution libraries

The Symphony Java Binary Execution API is in the package com.platform.symphony.symexec. Its implementation is located in the JavaSymexecApi.jar file.

Location of libraries

Symphony API libraries and Binary Execution API libraries are in:

  • Windows: %SOAM_HOME%\4.1\%EGO_MACHINE_TYPE%\lib

  • Linux: $SOAM_HOME/4.1/$EGO_MACHINE_TYPE/lib

For 64-bit applications, you can use the same libraries.

C# .NET

Building your client and service

Symphony API assembly

The .NET API is in the namespace Platform.Symphony.Soam.

Its implementation is in the Platform.Symphony.Soam.Net.dll assembly. This assembly will be typically installed in the GAC to accomodate the execution of client and service from any location on a host on which Symphony is installed.

If you do not have administrative privileges during installation, you will need to manually install the assembly to the GAC . If manual installation to the GAC is not possible, you can copy the assembly into the same location as your client and deploy it in your service package as another dependent library of your service.

For 64-bit applications, use the Platform.Symphony.Soam.Net_64.dll.

Location of assembly

The Platform.Symphony.Soam.Net.dll assembly is in:

  • %SOAM_HOME%\4.1\%EGO_MACHINE_TYPE%\lib

For 64-bit applications, the Platform.Symphony.Soam.Net_64.dll assembly is in:

  • %SOAM_HOME%\4.1\%EGO_MACHINE_TYPE%\lib64

COM

Building your client

Symphony API libraries

The COM API contains implementation applicable only to clients.

To access the COM API, add a reference to the Platform.Symphony.Soam.COM.dll file in your project.

Location of libraries

The Platform.Symphony.Soam.COM.dll is in:

  • %SOAM_HOME%\4.1\%EGO_MACHINE_TYPE%\lib\COM