Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagecpp
themeConfluence
EdmiError edmiRemoteOpenSession(SdaiServerContext serverContextId,
                                  SdaiInstance      *sessionId,
                                  SdaiInvocationId  *edmiInvocationId);  

Opens an

...

EDMserver

...

session. This feature has been implemented to provide all EDMInterface functionality through the remote EDMInterface calls. This function is only

...

applicable for the LOCAL_CONTEXT communication type.

...

No access to data in a local

...

EDMdatabase

...

_ is permitted before an

...

EDMserver

...

session is opened by this operation. If the caller is not already connected to an EDMserver

...

by the edmiRemoteConnect operation, this operation will connect the caller to the EDMserver

...

serverContextId

with the default EDMuser account 'sdai-user' and the EDMgroup account 'sdai-group'.

...



Arguments

...

TypeNameComment 
SdaiServerContext

serverContextId

 

Context identification, from edmiDefineServerContext

SdaiInstance

sessionId

 

A variable that will receive the sessionId. A sessionId is an instance of the entity SDAI_SESSION within the SDAI_SessionModel. This is a handle to all repositories and models in the EDMdatabase.

SdaiInvocationId

edmiInvocationId

 

Currently not used.

...

Return Value

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue

 

Options

...

  

 

Example

...

 

Code Block
languagecpp
EdmiError rstat;
 SdaiSession sessionId;
 SdaiServerContext myLocalContext;
 SdaiRepository repId;
 SdaiModel modId;
 SdaiAggr aggrId;
 SdaiInteger nInst;
 SdaiString unavailMsg;
  
 /* Define Remote Server Context */
 rstat = edmiDefineServerContext("MyLocalContext",

...


 NULL, NULL, NULL, "LOCAL_CONTEXT", NULL, NULL,

...

 
 NULL, NULL, NULL, NULL, NULL, &myLocalContext);

...

 
  
 /* Connect to a local database. This operation will

...


 connect the EDMthick client to the EDMserver.

...

 It 
 will fail if the server has no more available 
 named users. After the connect, the client may 
 be identified on the server by edmiRemoteWhoIsOn() */ 
 rstat = edmiRemoteConnect(myLocalContext, "Johnny",
 "Supervisor", "cf37ftr", &unavailMsg, NULL); 
  
 /* Open a session in the local database */
 rstat = edmiRemoteOpenSession(myLocalContext, &sessionId, NULL);
  
 /* Open the 'MyRepository' repository */
 rstat = edmiRemoteOpenRepository(myLocalContext,
 "MyRepository", sdaiRW, NULL, 0, 0, &repId, NULL);  
  
 /* Open the 'MyModel' model. This loads a
 copy of the model to the local file system. */ 
 rstat = edmiRemoteOpenModel(myLocalContext, "MyRepository",
 "MyModel", sdaiRW, NULL, 0, 0, &modId, NULL); 
  
 . . .
  
 /* The local copy of 'MyModel' is loaded when
 the model is opened. It remains unchanged 
 until a transaction is started. Then the local 
 copy will be syncronized with the EDMserver to 
 include any changes made by other users in the 
 meantime */ 
 rstat = edmiStartTransaction();
  
 /* Count the current number of instances
 of type MyEntity in MyModel */ 
 rstat = edmiRemoteGetEntityExtentBN(myLocalContext,
 "MyRepository", "MyModel", "MyEntity", 0,  
 &aggrId, &nInst, NULL, NULL); 
 printf("\n%d instances of MyEntity in MyModel.", nInst);
  
 /* Terminate the transaction */
 rstat = edmiAbortTransaction();
  
 /* Close the model. Some operations may not be
 performed on the model by other users for  
 as long as it is opened by this client. */ 
 rstat = edmiRemoteCloseModel(myLocalContext,
 "MyRepository", "MyModel", NULL, 0, 0, NULL); 
  
 . . .
  
 /* Close the repository. This would implicitely have
 closed the model as well. Some operations may not be 
 performed on the repository by other users for  
 as long as it is opened by this client. */ 
 rstat = edmiRemoteCloseRepository(myLocalContext,
 "MyRepository", NULL, 0, 0, NULL); 
  
 . . .
  
 /* Close the session. This will implicitely
 close all open models and repositories. */ 
 rstat = edmiRemoteCloseSession(myLocalContext, NULL);
  
 /* Disconnect. The occupied named user on the
 EDMserver will be released. */ 
 rstat = edmiRemoteDisconnect(myLocalContext, NULL);
 . . .

 

See also

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "model" and parent = "6062220"