From 818e7b84e855862f3182eb212e229069ebc5feef Mon Sep 17 00:00:00 2001 From: Henrique Oelze Date: Thu, 26 Aug 2021 11:14:53 -0300 Subject: [PATCH] Reverting part of commit 08753ef6 that was major change --- pitaya-sharp/ExampleEFCore/src/App.cs | 1 + .../NPitaya/src/Models/BaseHandler.cs | 2 +- pitaya-sharp/NPitaya/src/Models/BaseRemote.cs | 2 +- pitaya-sharp/NPitaya/src/Models/IRemote.cs | 2 +- .../NPitaya/src/Models/RemoteMethod.cs | 4 +- pitaya-sharp/NPitaya/src/PitayaCluster.API.cs | 38 ++++++++----------- pitaya-sharp/exampleapp/Program.cs | 5 +++ 7 files changed, 26 insertions(+), 28 deletions(-) diff --git a/pitaya-sharp/ExampleEFCore/src/App.cs b/pitaya-sharp/ExampleEFCore/src/App.cs index dac37840..0942e871 100644 --- a/pitaya-sharp/ExampleEFCore/src/App.cs +++ b/pitaya-sharp/ExampleEFCore/src/App.cs @@ -51,6 +51,7 @@ private static void Main(string[] args) Environment.Exit(1); }); + PitayaCluster.RegisterHandler(new UserHandler()); PitayaCluster.SetSerializer(new JSONSerializer()); // Using json serializer for easier interop with pitaya-cli try diff --git a/pitaya-sharp/NPitaya/src/Models/BaseHandler.cs b/pitaya-sharp/NPitaya/src/Models/BaseHandler.cs index e3763e93..3877a3b5 100644 --- a/pitaya-sharp/NPitaya/src/Models/BaseHandler.cs +++ b/pitaya-sharp/NPitaya/src/Models/BaseHandler.cs @@ -4,7 +4,7 @@ namespace NPitaya.Models { - public class BaseHandler : IRemote + public class BaseHandler : IBaseRemote { public string GetName() { diff --git a/pitaya-sharp/NPitaya/src/Models/BaseRemote.cs b/pitaya-sharp/NPitaya/src/Models/BaseRemote.cs index 30bdf438..77af0d45 100644 --- a/pitaya-sharp/NPitaya/src/Models/BaseRemote.cs +++ b/pitaya-sharp/NPitaya/src/Models/BaseRemote.cs @@ -5,7 +5,7 @@ namespace NPitaya.Models { - public class BaseRemote : IRemote + public class BaseRemote : IBaseRemote { public string GetName() { diff --git a/pitaya-sharp/NPitaya/src/Models/IRemote.cs b/pitaya-sharp/NPitaya/src/Models/IRemote.cs index 4c6b6831..a654808b 100644 --- a/pitaya-sharp/NPitaya/src/Models/IRemote.cs +++ b/pitaya-sharp/NPitaya/src/Models/IRemote.cs @@ -3,7 +3,7 @@ namespace NPitaya.Models { - public interface IRemote + public interface IBaseRemote { string GetName(); Dictionary GetRemotesMap(); diff --git a/pitaya-sharp/NPitaya/src/Models/RemoteMethod.cs b/pitaya-sharp/NPitaya/src/Models/RemoteMethod.cs index a4f549e0..e6d23fd9 100644 --- a/pitaya-sharp/NPitaya/src/Models/RemoteMethod.cs +++ b/pitaya-sharp/NPitaya/src/Models/RemoteMethod.cs @@ -5,11 +5,11 @@ namespace NPitaya.Models { public class RemoteMethod { - public readonly IRemote Obj; + public readonly IBaseRemote Obj; internal MethodBase Method { get; } internal Type ReturnType { get; } internal Type ArgType { get; } - public RemoteMethod(IRemote obj, MethodBase method, Type returnType, Type argType){ + public RemoteMethod(IBaseRemote obj, MethodBase method, Type returnType, Type argType){ Obj = obj; Method = method; ReturnType = returnType; diff --git a/pitaya-sharp/NPitaya/src/PitayaCluster.API.cs b/pitaya-sharp/NPitaya/src/PitayaCluster.API.cs index 1f1df318..60a99ac8 100644 --- a/pitaya-sharp/NPitaya/src/PitayaCluster.API.cs +++ b/pitaya-sharp/NPitaya/src/PitayaCluster.API.cs @@ -87,25 +87,8 @@ public static void Initialize(GrpcConfig grpcCfg, ListenToIncomingRPCs(); } - private static List GetAllInheriting(Type type) - { - return AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()) - .Where(x => type.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract && x.FullName != type.FullName) - .Select(x => x).ToList(); - } - private static void ListenToIncomingRPCs() { - var handlers = GetAllInheriting(typeof(BaseHandler)); - foreach (var handler in handlers){ - RegisterHandler((BaseHandler)Activator.CreateInstance(handler)); - } - - var remotes = GetAllInheriting(typeof(BaseRemote)); - foreach (var remote in remotes){ - RegisterRemote((BaseRemote)Activator.CreateInstance(remote)); - } - for (int i = 0; i < ProcessorsCount; i++) { var threadId = i + 1; @@ -152,13 +135,18 @@ public static void Initialize(NatsConfig natsCfg, ListenToIncomingRPCs(); } - private static void RegisterRemote(BaseRemote remote) + public static void RegisterRemote(BaseRemote remote) { string className = DefaultRemoteNameFunc(remote.GetName()); RegisterRemote(remote, className, DefaultRemoteNameFunc); } - private static void RegisterRemote(BaseRemote remote, string name, RemoteNameFunc remoteNameFunc) // TODO remote function name func + public static void RegisterRemote(BaseRemote remote, string name) + { + RegisterRemote(remote, name, DefaultRemoteNameFunc); + } + + public static void RegisterRemote(BaseRemote remote, string name, RemoteNameFunc remoteNameFunc) // TODO remote function name func { Dictionary m = remote.GetRemotesMap(); foreach (KeyValuePair kvp in m) @@ -175,13 +163,17 @@ private static void RegisterRemote(BaseRemote remote, string name, RemoteNameFun } } - private static void RegisterHandler(BaseHandler handler) + public static void RegisterHandler(BaseHandler handler) { string className = DefaultRemoteNameFunc(handler.GetName()); RegisterHandler(handler, className, DefaultRemoteNameFunc); } - // TODO create method to override defaultRemoteNameFunc + public static void RegisterHandler(BaseHandler handler, string name) + { + RegisterHandler(handler, name, DefaultRemoteNameFunc); + } + public static void RegisterHandler(BaseHandler handler, string name, RemoteNameFunc remoteNameFunc) { Dictionary m = handler.GetRemotesMap(); @@ -329,11 +321,11 @@ public static unsafe Task Rpc(string serverId, Route route, object msg) if (!ok) // error { - if (retError.code == "PIT-504") + if (retError.code == "PIT-504") { throw new PitayaTimeoutException($"Timeout on RPC call: ({retError.code}: {retError.msg})"); } - if (retError.code == "PIT-404") + if (retError.code == "PIT-404") { throw new PitayaRouteNotFoundException($"Route not found on RPC call: ({retError.code}: {retError.msg})"); } diff --git a/pitaya-sharp/exampleapp/Program.cs b/pitaya-sharp/exampleapp/Program.cs index d77ef316..376faaae 100644 --- a/pitaya-sharp/exampleapp/Program.cs +++ b/pitaya-sharp/exampleapp/Program.cs @@ -110,6 +110,11 @@ static void Main(string[] args) Logger.Info("pitaya lib initialized successfully :)"); + var tr = new TestRemote(); + PitayaCluster.RegisterRemote(tr); + var th = new TestHandler(); + PitayaCluster.RegisterHandler(th); + Thread.Sleep(1000); TrySendRpc();