mirror of
https://github.com/tmrts/go-patterns.git
synced 2026-11-11 23:07:51 +03:00
Include more patterns and a logo
This commit is contained in:
1 parent
6257c096bb
commit
b10a4f9cac
4 files changed
+162
-47
No files matched your search
@@ -0,0 +1,62 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrTopicClosed = errors.New("Topic has been closed")
|
||||
)
|
||||
|
||||
// Message
|
||||
type Message string
|
||||
|
||||
// Topic
|
||||
type Topic struct {
|
||||
Subscribers []Authentication
|
||||
MessageHistory []struct {
|
||||
Author string
|
||||
Message Message
|
||||
Timestamp time.Time
|
||||
}
|
||||
}
|
||||
|
||||
// Subscribe
|
||||
func (t *Topic) Subscribe(Authentication) (Subscription, error) {
|
||||
// Implementation
|
||||
}
|
||||
|
||||
// Unsubscribe
|
||||
func (t *Topic) Unsubscribe(Subscription) error {
|
||||
// Implementation
|
||||
}
|
||||
|
||||
// Delete
|
||||
func (t *Topic) Delete() error {
|
||||
// Implementation
|
||||
}
|
||||
|
||||
type Subscription struct {
|
||||
ch chan<- Message
|
||||
|
||||
Inbox chan Message
|
||||
}
|
||||
|
||||
// Publish
|
||||
func (s *Subscription) Publish(msg Message) error {
|
||||
if _, ok := ch; !ok {
|
||||
return ErrTopicClosed
|
||||
}
|
||||
|
||||
ch <- msg
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Authentication
|
||||
type Authentication struct {
|
||||
}
|
||||
|
||||
func main() {
|
||||
}
|
||||
Reference in new issue
Block a user