edmiRemoteGetMethodSignature

EdmiError edmiRemoteGetMethodSignature(SdaiServerContext serverContextId,
                                        SdaiInstance      methodId,
                                        SdaiString        *methodType,
                                        SdaiString        *methodName,
                                        SdaiString        *schemaName, 
                                        SdaiString        *methodClass, 
                                        SdaiInteger       *arguments,
                                        SdaiPrimitiveType *returnValueDatatype,
                                        SdaiInstance      *returnValueDomainId,
                                        SdaiString        **argumentNames, 
                                        SdaiPrimitiveType **argumentDatatypes,
                                        SdaiInstance      **argumentDomainIds,
                                        SdaiString        *description, 
                                        SdaiString        *textualSignature,
                                        SdaiInvocationId  *edmiInvocationId);


Reads the additional information / documentation of a method, identified by its methodId, in a remote EDMdatabase. The purpose of the user defined method signatures is to provide information about the methods and their input parameters to the users. The methods in question are Express-X mapping schemas and query functions.

Arguments


TypeNameComment
SdaiServerContext

serverContextId

Context identification, from edmiDefineServerContext

SdaiInstance

methodId

The instance Id of that uniquely identifies the method in the remote EDMdatabase. This Id is an instance of the EDM_METHOD entity in the ExpressDataManager model.

SdaiString

methodType

Variable that will receive the type of method. Values are:

  • "XPX" if the method is an Express-X Schema Map.
  • "QEX" if the method is a Query Function.
SdaiString

methodName

Variable that will receive the name that was assigned to the method when it was defined with edmiRemoteDefineMethodSignature. If the method is a Query Function, the method name will be the name of the query function it self.

SdaiString

schemaName

If the method is an Express-X Schema Map, this variable will receive the name of the mapping schema. If the method is a query function, the variable will receive the name of the query schema containing the query in question, qualified with the name of the parent Express schema. E.g: "MySchema.MyQuerySchema"

SdaiString

methodClass

Variable that will receive the optional and user defined method class. Method classification may be used to organize methods in the EDMdatabase

SdaiInteger

arguments

This variable will receive the number of input parameters for the given method.

SdaiPrimitiveType

returnValueDatatype

Variable that will receive the type of the return value from the method. This parameter is only applicable for query function methods.

SdaiInstance

returnValueDomainId

 

SdaiString

argumentNames

A buffer that will receive a null terminated list of input parameter names.

SdaiPrimitiveType

argumentDatatypes

A buffer that will receive a list of the input parameter types that correspond to the argument names in <argumentNames>

SdaiInstance

argumentDomainIds

 

SdaiString

description

Variable that will receive the user defined description of the method.

SdaiString

textualSignature

Optional, method signature in text.

SdaiInvocationId

edmiInvocationId

Currently not used.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

 

Options


  

 

Example


 

 int i;
 EdmiError rstat;
 SdaiServerContext myContext;
 SdaiPrimitiveType type;
 SdaiInteger nModInst, nInst, nMethod;
 SdaiAggr methodAggr;
 SdaiInstance *methodBuff;
  
 /* Define Remote Server Context */
 rstat = edmiDefineServerContext("MyRemoteServerContext",
 "Johnny", "Supervisor", "cf37ftr", 
 "TCP", "9090", "MyServerHost", 
 NULL, NULL, NULL, NULL, NULL, &myContext); 
  
 rstat = edmiRemoteGetEntityExtentBN(myContext, "SystemRepository",
 "ExpressDataManager", "EDM_METHOD", 0,  
 &methodAggr, &nInst, &nModInst, NULL); 
  
 nMethod = 100;
 rstat = edmiRemoteReadAggrElements(myContext, methodAggr,
 0, 0, 100, &nMethod, &type, NULL,  
 &methodBuff, NULL); 
  
 for (i=0;i<nMethod;i++) {
 SdaiString _methodType; 
 SdaiString _methodName; 
 SdaiString _schemaName; 
 SdaiString _methodClass; 
 SdaiInteger _nArgs; 
 SdaiPrimitiveType _returnType; 
 SdaiString *_argNames; 
 SdaiPrimitiveType *_argTypes; 
 SdaiString _methodDesc; 
  
 rstat = edmiRemoteGetMethodSignature(myContext, methodBuff[i], 
 &_methodType, &_methodName, &_schemaName,  
 &_methodClass, &_nArgs, &_returnType,  
 &_argNames, &_argTypes, &_methodDesc, NULL); 
  
 printf("\n%d : Method %s\n %s", i, _methodName, _methodDesc); 
 }
 . . .

 

See also

Filter by label

There are no items with the selected labels at this time.




 

Â