-
Notifications
You must be signed in to change notification settings - Fork 336
Multiple Module Sections in TSL - What is the proper coded workflow #356
Bin Shao (@shaobin) Dr. Shao, what is the correct coded workflow on the GE Client side when multiple "module" declarations exist in the TSL. Thinking logically, each module should be implemented via a separate .NET assembly, while on the GE Client side, the client could load one server module segment at a time. Is this correct?
All reactions
Replies: 1 comment 2 replies
Tavi Truman (@TaviTruman) Could you provide a simple scenario with a simplified TSL to show what you want to do?
All reactions
TSL Module Declarations:
I have one library where these modules are defined:
Here is my VS Project Structure:
module ContactGraphDataModelServerModule
{
protocol PushContactDataModelAsync;
protocol SaveContactDataModelAsync;
protocol RemoveContactDataModelAsync;
protocol UpdateContactDataModelAsync;
protocol QueryContactDataModelAsync;
}
module ServiceObjectsGraphDataServerModule
{
protocol SaveLeadValidationData;
protocol FetchLeadValidationData;
protocol RemoveLeadValidationData;
protocol UpdateLeadValidationData;
protocol PushLeadValidationData;
}
// Generate Trinity Modular Server Protocol Interfaces
module UserAuthenticationGraphDataServerModule
{
protocol SetUserAuthenticationDataAsync;
protocol PostSetUserAuthRequestComplete;
protocol FetchUserAuthenticationDataAsync;
protocol QueryUserAuthInfoAsync;
protocol UserAuthInfoQueryAnswerResponseAsync;
}
As you know the TSL Compiler generates the "Protocols.cs" file where the RPC Functions are stored. These server module implementations are bound to the host library
In my server-side code I have these statements:
I have been experimenting with this code as you can see some lines of code are commented out.
Here is the code I have on the Client-side:
This coded workflow does not seem to work as the RPC Message IDs get crossed and the calls are indexed into the wrong RPC code segments. As a workaround, I create separate assemblies for each module but that defeats the original design of the "module" concept.
So, I think I'm not using the API correctly.
All reactions
Bin Shao (@shaobin) Dr. Shao do you need a full set of working TSL code?