Add provider registry support.
diff --git a/provider.go b/provider.go
new file mode 100644
index 0000000..f2249c3
--- /dev/null
+++ b/provider.go
@@ -0,0 +1,24 @@
+package gophercloud
+
+import (
+)
+
+type Provider struct {
+ // empty.
+}
+
+var providerMap = make(map[string]*Provider)
+
+func (c *Context) RegisterProvider(name string, p *Provider) error {
+ c.providerMap[name] = p
+ return nil
+}
+
+func (c *Context) ProviderByName(name string) (p *Provider, err error) {
+ for provider, descriptor := range c.providerMap {
+ if name == provider {
+ return descriptor, nil
+ }
+ }
+ return nil, ErrProvider
+}
\ No newline at end of file