All Frameworks  Class Hierarchy  This Framework  Previous  Next  Indexes

VPMInterfaces Interface ENOVIObjectServiceCode

System.IUnknown
  |
  +---System.IDispatch
    |
    +---System.CATBaseUnknown
      |
      +---ENOVIObjectServiceCode
 

Usage: you can freely reimplement this interface.


interface ENOVIObjectServiceCode

Interface to execute server code invoked with RunObjectService from (CATIA) client.

Role:Provide Customer Interface to implement a new service.
The client model is one element of the MVC paradigm deployed on the client side. It is bridged with the server model by the means of CORBA-based protocol, and provide support for mapping of objects between client and server.


Method Index


o RunObjectServiceCode(CATLISTV(CATBaseUnknown_var)&,char*,CATLISTV(CATBaseUnknown_var)&,char**)
Enable the server execution of a server function implemented by the customer.

Methods


o RunObjectServiceCode
public virtual HRESULT RunObjectServiceCode(CATLISTV(CATBaseUnknown_var)& iObjectIds,
const char* ipString,
CATLISTV(CATBaseUnknown_var)& oObjectIds,
char** opString) = 0
Enable the server execution of a server function implemented by the customer.
Role:This method support a C/S execution exchanging object & related information


this infrastructure does the marshalling of input and output arguments between the 2 process.
It does the adequate RPC call in the server and executing the service in calling the ENOVIObjectServiceCode using the service name as an object late type
Notice to the service userIt is strongly adviced not to modify object through a server service when the corresponding object is already loaded in client through long transaction. Instead the client modeler has to be used for client modification
Notice to the service implementer on server: A server OM object need to be implemented on server side whose late type is the exact name of the invokable service. This server object must implement interface ENOVIObjectServiceCode by which the execution takes place.
The Execution of the service only operates in a short transaction mode. It cannot operates if server already contain uncomited information. In case of modification achieved in the server by the service, modifications will be automatically comitted by the infrastructure otherwise if service fails to execute, a rollback will be insured by the infrastructure

Parameters:
iObjects
Input Object List provided as an input to the server code execution.
It has been marshalled from the client to the server, then object mapped to server model object The same list order & position is maintained during the transfer between the client and server
ipString
formatted char provided as an input information to the server code execution.
It has been marshalled from the client to the server
Contract for the string contain is established and documented by the service implementer, being it a xml or anything else. if needed, combining iObjects order as a local reference (Example#3)enable to safely combine information in such a string.
oObjects
output Object List returned to the client.
It is marshalled back to the client and provided as an output. The same list order & position is maintained during the transfer between the client and server
opString
formatted char returned to the client.
It is marshalled back to the client and provided as an output.
Contract for the string contain is established and documented by the service implementer, being it a xml or anything else. if needed, combining oObjects order as a local reference (Example#3)enable to safely combine information in such a string.
Standard life cycle rule applies, returned string will be deleted after transfer by the infrastructure
Returns:
  • S_OK: Service executed on server and returning output
  • E_FAIL: The Services has failed to Execute Possible error are:
    • Provided Objects or arguments as an input are not a valid for execution
    • Service does not execute correctly

This object is included in the file: ENOVIObjectServiceCode.h
If needed, your Imakefile.mk should include the module: GUIDVPMInterfaces

Copyright © 2003, Dassault Systèmes. All rights reserved.