From 5662b8732443890bce770bfc653a38e6d536afea Mon Sep 17 00:00:00 2001 From: mls-361 Date: Tue, 20 Apr 2021 23:41:21 +0200 Subject: [PATCH] =?UTF-8?q?En=20cours=20de=20d=C3=A9veloppement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Taskfile.yml | 2 ++ cmd/main.go | 9 +++++ go.mod | 2 ++ go.sum | 6 ++++ internal/demo/demo.go | 83 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 102 insertions(+) create mode 100644 internal/demo/demo.go diff --git a/Taskfile.yml b/Taskfile.yml index 36f4e03..9e3b1ba 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -15,6 +15,8 @@ tasks: - go get -u forge.chapril.org/armen/jw - go get -u forge.chapril.org/armen/memory - go get -u forge.chapril.org/armen/model + - go get -u forge.chapril.org/armen/runner + - go get -u forge.chapril.org/armen/workers - go get -u forge.chapril.org/mls-361/application - go get -u forge.chapril.org/mls-361/crypto - go get -u forge.chapril.org/mls-361/errors diff --git a/cmd/main.go b/cmd/main.go index e34ce77..9814224 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -21,6 +21,7 @@ import ( "forge.chapril.org/armen/armen/internal/components" "forge.chapril.org/armen/armen/internal/config" "forge.chapril.org/armen/armen/internal/crypto" + "forge.chapril.org/armen/armen/internal/demo" "forge.chapril.org/armen/armen/internal/logger" "forge.chapril.org/armen/armen/internal/model" "forge.chapril.org/armen/armen/internal/router" @@ -59,6 +60,10 @@ func createComponents(app components.Application) (components.Logger, components return nil, nil, errors.WithMessage(err, "model") ////////////////////////////////////////////////////////////// } + if err := demo.Build(app, logger, model); err != nil { + return nil, nil, errors.WithMessage(err, "demo") /////////////////////////////////////////////////////////////// + } + router := router.Build(logger) server, err := server.Build(config, logger, router) @@ -118,10 +123,14 @@ func run() error { group, endCh := waitEnd(server) + demo.Start() + err = server.Start() close(endCh) + demo.Stop() + group.Wait() logger.Info( //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: diff --git a/go.mod b/go.mod index afafbfc..15b4c77 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,8 @@ require ( forge.chapril.org/armen/jw v0.0.0-20210420182827-e84586d52e7d forge.chapril.org/armen/memory v0.0.0-20210420182951-aeef2431dd9a forge.chapril.org/armen/model v0.0.0-20210420183407-9aafd7a91b43 + forge.chapril.org/armen/runner v0.0.0-20210420200355-aae17dcd1c71 + forge.chapril.org/armen/workers v0.0.0-20210420200550-b0bb7a778ce8 forge.chapril.org/mls-361/application v0.0.0-20210420182525-553553ee79fd forge.chapril.org/mls-361/crypto v0.0.0-20210420182617-6b6e1d67ae49 forge.chapril.org/mls-361/errors v0.0.0-20210420182326-62f3fd4fd5e9 diff --git a/go.sum b/go.sum index d870644..aa1d7f5 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,15 @@ +forge.chapril.org/armen/factory v0.0.0-20210420185548-4a8d6eee6f1a h1:3akLeqhwfmdQ6s+LK5nwDzhoQqYULnS6Yu3bhZJLAZE= +forge.chapril.org/armen/factory v0.0.0-20210420185548-4a8d6eee6f1a/go.mod h1:8X6DFD/KePInb+qxq8fj19QLmvgJnRW6SGZS9OAXh1o= forge.chapril.org/armen/jw v0.0.0-20210420182827-e84586d52e7d h1:xtGaldnHe8gRdCRVR+tG6kYkklErNcnuJjldjijVkfU= forge.chapril.org/armen/jw v0.0.0-20210420182827-e84586d52e7d/go.mod h1:/493TkL40h/dcYibnL1dPOKD1sgLoChgLyQ8BiLPr6g= forge.chapril.org/armen/memory v0.0.0-20210420182951-aeef2431dd9a h1:a2JaoORflqK97IYY0lhO4T+SsWnCVXcxgXb/Z9QmR80= forge.chapril.org/armen/memory v0.0.0-20210420182951-aeef2431dd9a/go.mod h1:WHra3zbTsXiivHF1e7rmMFWvUOLYQuoaMG+VysjpG1A= forge.chapril.org/armen/model v0.0.0-20210420183407-9aafd7a91b43 h1:thA5ZEYqvu0MMHgQ88aWUdIAo4FhEgoYNfeUzMzq0GQ= forge.chapril.org/armen/model v0.0.0-20210420183407-9aafd7a91b43/go.mod h1:phzQDpT4AAIDu13oNpPPVGNeVa6alMi+0OCPQ9YF5m4= +forge.chapril.org/armen/runner v0.0.0-20210420200355-aae17dcd1c71 h1:SJUSfIkQaPpo/c9+DSihnA79cWnqMhMEWCC2xsZOU7c= +forge.chapril.org/armen/runner v0.0.0-20210420200355-aae17dcd1c71/go.mod h1:pX8rNP1WOYlxF1sY7cef9yIUPtuP/k8QLL7A5anmSPA= +forge.chapril.org/armen/workers v0.0.0-20210420200550-b0bb7a778ce8 h1:6uO/T9zbGHniqQyGzulRgZDSpNDIdasza2jmGAhxhwM= +forge.chapril.org/armen/workers v0.0.0-20210420200550-b0bb7a778ce8/go.mod h1:LIWGF3+qhCUHeKyqjblKAKxvgSQJ8ud4fLR+WLKpdaU= forge.chapril.org/mls-361/application v0.0.0-20210420182525-553553ee79fd h1:DS7paKa0kOu2tKZjAWRkhqtk49PsJJGYW4D1a2NRddU= forge.chapril.org/mls-361/application v0.0.0-20210420182525-553553ee79fd/go.mod h1:x7iBnk1CanvvKBkI1H3CZ5juSu/cyLz1lLZI1OrmQFQ= forge.chapril.org/mls-361/buffer v0.0.0-20210410182428-5dc7a7b2ae79 h1:Lh+y98uVFC7btl5FdxKNtokzHD2j14R4ZIgJECao6r4= diff --git a/internal/demo/demo.go b/internal/demo/demo.go new file mode 100644 index 0000000..d43b0b8 --- /dev/null +++ b/internal/demo/demo.go @@ -0,0 +1,83 @@ +/* +------------------------------------------------------------------------------------------------------------------------ +####### demo ####### Copyright (c) 2021 mls-361 #################################################### MIT License ####### +------------------------------------------------------------------------------------------------------------------------ +*/ + +package demo + +import ( + "forge.chapril.org/armen/runner" + "forge.chapril.org/armen/workers" + + "forge.chapril.org/armen/armen/internal/components" +) + +type demo struct { + logger components.Logger + pool *workers.Pool +} + +var _demo *demo + +func (d *demo) jt1(job *runner.Job) { +} + +func Build(app components.Application, logger components.Logger, model components.Model) error { + if _, ok := app.LookupEnv("CONFIG"); ok { + return nil + } + + if _, ok := app.LookupEnv("DEMO"); !ok { + return nil + } + + d := &demo{ + logger: logger, + } + r := runner.New("demo", model) + + if err := r.AddJobHandler("jt1", runner.JHF(d.jt1)); err != nil { + return err + } + + p, err := workers.NewPool(&workers.Config{ + Logger: logger, + PoolSize: 2, + Model: model, + }) + if err != nil { + return err + } + + if err := p.AddRunner(r); err != nil { + return err + } + + d.pool = p + _demo = d + + return nil +} + +func Start() { + if _demo == nil { + return + } + + _demo.pool.Start() + + _demo.logger.Notice("Demonstration mode is activated") //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +} + +func Stop() { + if _demo == nil { + return + } + + _demo.pool.Stop() +} + +/* +######################################################################################################## @(°_°)@ ####### +*/