pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/events/examples_test.go (about)

     1  package events
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  //                                                                                    //
     5  //                         Copyright (c) 2022 ESSENTIAL KAOS                          //
     6  //      Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>     //
     7  //                                                                                    //
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  import (
    11  	"fmt"
    12  )
    13  
    14  // ////////////////////////////////////////////////////////////////////////////////// //
    15  
    16  func ExampleNewDispatcher() {
    17  	d := NewDispatcher()
    18  
    19  	d.AddHandler("myEvent", testHandler)
    20  
    21  	d.Dispatch("myEvent", "Hello!")
    22  }
    23  
    24  func ExampleDispatcher_AddHandler() {
    25  	d := NewDispatcher()
    26  
    27  	d.AddHandler("myEvent", testHandler)
    28  	d.AddHandler("unknownEvent", testHandler)
    29  
    30  	err := d.Dispatch("myEvent", "Hello!")
    31  
    32  	fmt.Println(err) // nil
    33  }
    34  
    35  func ExampleDispatcher_RemoveHandler() {
    36  	d := NewDispatcher()
    37  
    38  	d.AddHandler("myEvent", testHandler)
    39  	d.RemoveHandler("myEvent", testHandler)
    40  
    41  	err := d.Dispatch("myEvent", "Hello!")
    42  
    43  	fmt.Println(err) // not nil
    44  }
    45  
    46  func ExampleDispatcher_HasHandler() {
    47  	d := NewDispatcher()
    48  
    49  	d.AddHandler("myEvent", testHandler)
    50  
    51  	fmt.Println("myEvent:", d.HasHandler("myEvent", testHandler))
    52  	fmt.Println("unknownEvent:", d.HasHandler("unknownEvent", testHandler))
    53  
    54  	// Output:
    55  	// myEvent: true
    56  	// unknownEvent: false
    57  }
    58  
    59  func ExampleDispatcher_Dispatch() {
    60  	d := NewDispatcher()
    61  
    62  	d.AddHandler("myEvent", testHandler)
    63  
    64  	err := d.Dispatch("myEvent", "Hello!")
    65  
    66  	fmt.Println(err) // nil
    67  }
    68  
    69  func ExampleDispatcher_DispatchAndWait() {
    70  	d := NewDispatcher()
    71  
    72  	d.AddHandler("myEvent", testHandler)
    73  
    74  	err := d.DispatchAndWait("myEvent", "Hello!")
    75  
    76  	fmt.Println(err) // nil
    77  }
    78  
    79  // ////////////////////////////////////////////////////////////////////////////////// //
    80  
    81  func testHandler(payload interface{}) {
    82  	fmt.Printf("Got payload: %v\n", payload)
    83  }