Information
We are currently investigating an issue with the editor of some pages. Please save your work and avoid to create new pages until this banner is gone.
The Makefile is provided with the module generated from getTemplateForDirectory. In the case of Python server implementation, you need to configure the compilation and installation of a Python Package:
Code Block | ||
---|---|---|
| ||
PY_PACKAGES:=<PackageName> |
The first thing needed to implement a server, is to import the required modules and classes:
Code Block | ||||
---|---|---|---|---|
| ||||
#Client stubs and definitions, such as structs, enums, etc.
import <Module>
#Skeleton infrastructure for server implementation
import <Module>__POA
#Base component implementation
from Acspy.Servants.ACSComponent import ACSComponent
#Services provided by the container to the component
from Acspy.Servants.ContainerServices import ContainerServices
#Basic component lifecycle (initialize, execute, cleanUp and aboutToAbort methods)
from Acspy.Servants.ComponentLifecycle import ComponentLifecycle
#Error definitions for catching exceptions
import ServiceErr
import <Interface>Err
#Error definitions for creating and raising exceptions
import ServiceErrImpl
import <Interface>ErrImpl |
...
Code Block | ||||
---|---|---|---|---|
| ||||
#By Name comp = self.getComponent("<Name>") #By Interface. Must be at least one component configured as default! comp = self.getDefaultComponent("IDL:alma/<Module>/<Interface>:1.0") #Release Components self.releaseComponent(comp.name()) |
For logging, as you saw in the class constructor, there's a facility provided by the component. To use it, simply do as follows:
...
Code Block | ||||
---|---|---|---|---|
| ||||
#For catching exceptions except <Interface>Err.<ExceptionName>Ex as e: #For raising exceptions raise <Interface>ErrImpl.<ExceptionName>ExImpl().get<ExceptionName>Ex() #For raising exceptions with parameters err = <Interface>ErrImpl.<ExceptionName>ExImpl() err.set<ParamName>(<Value>) raise err.get<ExceptionName>Ex() #For logging an error message from the exceptions err = <Interface>ErrImpl.<ExceptionName>ExImpl() err.log() raise err.get<ExceptionName>Ex() |
Data types mapping:
To check how data types are mapped between IDL and implementation click here.