From b0553c1b8d86b666d559ac69f39783380ac01907 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 1 Dec 2012 19:06:23 -0500 Subject: [PATCH] Renaming some stuff and starting on ch. 4 rpc example implemented in Go --- sylvilagus/go/Makefile | 5 +-- .../main.go | 0 .../main.go | 0 .../go/sylvilagus-ch04-rpc-server/main.go | 14 ++++++++ sylvilagus/go/sylvilagus/hello.go | 9 ----- sylvilagus/go/sylvilagus/rpc.go | 33 +++++++++++++++++++ sylvilagus/go/sylvilagus/uri.go | 14 ++++++++ 7 files changed, 64 insertions(+), 11 deletions(-) rename sylvilagus/go/{sylvilagus-chapter02-hello-world-consumer => sylvilagus-ch02-hello-world-consumer}/main.go (100%) rename sylvilagus/go/{sylvilagus-chapter02-hello-world-producer => sylvilagus-ch02-hello-world-producer}/main.go (100%) create mode 100644 sylvilagus/go/sylvilagus-ch04-rpc-server/main.go create mode 100644 sylvilagus/go/sylvilagus/rpc.go create mode 100644 sylvilagus/go/sylvilagus/uri.go diff --git a/sylvilagus/go/Makefile b/sylvilagus/go/Makefile index 8d5b0a8..f6efbf4 100644 --- a/sylvilagus/go/Makefile +++ b/sylvilagus/go/Makefile @@ -1,8 +1,9 @@ REPO_BASE := github.com/meatballhat/box-o-sand/sylvilagus/go PACKAGES := \ $(REPO_BASE)/sylvilagus-conntest \ - $(REPO_BASE)/sylvilagus-chapter02-hello-world-consumer \ - $(REPO_BASE)/sylvilagus-chapter02-hello-world-producer + $(REPO_BASE)/sylvilagus-ch02-hello-world-consumer \ + $(REPO_BASE)/sylvilagus-ch02-hello-world-producer \ + $(REPO_BASE)/sylvilagus-ch04-rpc-server test: build go test -x -v $(PACKAGES) diff --git a/sylvilagus/go/sylvilagus-chapter02-hello-world-consumer/main.go b/sylvilagus/go/sylvilagus-ch02-hello-world-consumer/main.go similarity index 100% rename from sylvilagus/go/sylvilagus-chapter02-hello-world-consumer/main.go rename to sylvilagus/go/sylvilagus-ch02-hello-world-consumer/main.go diff --git a/sylvilagus/go/sylvilagus-chapter02-hello-world-producer/main.go b/sylvilagus/go/sylvilagus-ch02-hello-world-producer/main.go similarity index 100% rename from sylvilagus/go/sylvilagus-chapter02-hello-world-producer/main.go rename to sylvilagus/go/sylvilagus-ch02-hello-world-producer/main.go diff --git a/sylvilagus/go/sylvilagus-ch04-rpc-server/main.go b/sylvilagus/go/sylvilagus-ch04-rpc-server/main.go new file mode 100644 index 0000000..4b32cb0 --- /dev/null +++ b/sylvilagus/go/sylvilagus-ch04-rpc-server/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "log" +) + +import ( + "github.com/meatballhat/box-o-sand/sylvilagus/go/sylvilagus" +) + +func main() { + log.Println("Would be using AMQP_URI =", sylvilagus.AMQP_URI) + log.Println("OH HAI RPC") +} diff --git a/sylvilagus/go/sylvilagus/hello.go b/sylvilagus/go/sylvilagus/hello.go index 77b2c29..04c2f71 100644 --- a/sylvilagus/go/sylvilagus/hello.go +++ b/sylvilagus/go/sylvilagus/hello.go @@ -2,21 +2,12 @@ package sylvilagus import ( "log" - "os" ) import ( "github.com/streadway/amqp" ) -var AMQP_URI = os.Getenv("SYLVILAGUS_AMQP_URI") - -func init() { - if len(AMQP_URI) < 1 { - log.Fatal("SYLVILAGUS_AMQP_URI is not defined!") - } -} - func CreateHelloTopology(connection *amqp.Connection) (*amqp.Channel, error) { channel, err := connection.Channel() if err != nil { diff --git a/sylvilagus/go/sylvilagus/rpc.go b/sylvilagus/go/sylvilagus/rpc.go new file mode 100644 index 0000000..0b9bb64 --- /dev/null +++ b/sylvilagus/go/sylvilagus/rpc.go @@ -0,0 +1,33 @@ +package sylvilagus + +import ( + "log" +) + +import ( + "github.com/streadway/amqp" +) + +func CreateRPCTopology(connection *amqp.Connection) (channel *amqp.Channel, err error) { + if channel, err = connection.Channel(); err != nil { + log.Println("Failed to get channel!: ", err) + return nil, err + } + + if err = channel.ExchangeDeclare("rpc", "direct", true, false, false, false, nil); err != nil { + log.Println("Failed to declare exchange!: ", err) + return nil, err + } + + if _, err = channel.QueueDeclare("ping", false, false, false, false, nil); err != nil { + log.Println("Failed to declare queue!: ", err) + return nil, err + } + + if err = channel.QueueBind("ping", "ping", "rpc", false, nil); err != nil { + log.Println("Failed to bind to queue!: ", err) + return nil, err + } + + return channel, nil +} diff --git a/sylvilagus/go/sylvilagus/uri.go b/sylvilagus/go/sylvilagus/uri.go new file mode 100644 index 0000000..501dcf7 --- /dev/null +++ b/sylvilagus/go/sylvilagus/uri.go @@ -0,0 +1,14 @@ +package sylvilagus + +import ( + "log" + "os" +) + +var AMQP_URI = os.Getenv("SYLVILAGUS_AMQP_URI") + +func init() { + if len(AMQP_URI) < 1 { + log.Fatal("SYLVILAGUS_AMQP_URI is not defined!") + } +}