Index: mojo/public/go/application/describer.go |
diff --git a/mojo/public/go/application/describer.go b/mojo/public/go/application/describer.go |
deleted file mode 100644 |
index 09eceb1a08df09a75fc8dba2febcd7b64e3b6d84..0000000000000000000000000000000000000000 |
--- a/mojo/public/go/application/describer.go |
+++ /dev/null |
@@ -1,119 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package application |
- |
-import ( |
- "fmt" |
- "log" |
- |
- "mojo/public/go/bindings" |
- |
- "mojo/public/interfaces/bindings/mojom_types" |
- "mojo/public/interfaces/bindings/service_describer" |
-) |
- |
-// ServiceDescriberFactory implements ServiceFactory for ServiceDescriber. |
-// For cleanup purposes, it is also the implementation of a ServiceDescriber. |
-type ServiceDescriberFactory struct { |
- // mapping holds the map from interface names to ServiceDescription's. |
- mapping map[string]service_describer.ServiceDescription |
- // stubs stores the stubs for connections opened to this factory. |
- stubs []*bindings.Stub |
- // descriptionFactories maps interface names to ServiceDescriptionFactory's. |
- descriptionFactories map[string]*ServiceDescriptionFactory |
-} |
- |
-func newServiceDescriberFactory(mapping map[string]service_describer.ServiceDescription) *ServiceDescriberFactory { |
- return &ServiceDescriberFactory{ |
- mapping: mapping, |
- descriptionFactories: make(map[string]*ServiceDescriptionFactory), |
- } |
-} |
- |
-func (sd *ServiceDescriberFactory) Create(request service_describer.ServiceDescriber_Request) { |
- stub := service_describer.NewServiceDescriberStub(request, sd, bindings.GetAsyncWaiter()) |
- sd.stubs = append(sd.stubs, stub) |
- go func() { |
- for { |
- if err := stub.ServeRequest(); err != nil { |
- connectionError, ok := err.(*bindings.ConnectionError) |
- if !ok || !connectionError.Closed() { |
- log.Println(err) |
- } |
- break |
- } |
- } |
- }() |
-} |
- |
-func (sd *ServiceDescriberFactory) Close() { |
- for _, stub := range sd.stubs { |
- stub.Close() |
- } |
- for _, factory := range sd.descriptionFactories { |
- for _, stub := range factory.stubs { |
- stub.Close() |
- } |
- } |
-} |
- |
-// Helper method for DescribeService |
-func (sd *ServiceDescriberFactory) getServiceDescriptionFactory(inInterfaceName string) *ServiceDescriptionFactory { |
- // Assumes the interface name is in the mapping. |
- if desc, ok := sd.descriptionFactories[inInterfaceName]; ok { |
- return desc |
- } |
- sd.descriptionFactories[inInterfaceName] = &ServiceDescriptionFactory{ |
- impl: sd.mapping[inInterfaceName], |
- } |
- return sd.descriptionFactories[inInterfaceName] |
-} |
- |
-func (sd *ServiceDescriberFactory) DescribeService(inInterfaceName string, inDescriptionRequest service_describer.ServiceDescription_Request) (err error) { |
- if _, ok := sd.mapping[inInterfaceName]; ok { |
- sd.getServiceDescriptionFactory(inInterfaceName).Create(inDescriptionRequest) |
- return nil |
- } |
- return fmt.Errorf("The interface %s is unknown by this application", inInterfaceName) |
-} |
- |
-// ServiceDescriptionFactory implements ServiceFactory for ServiceDescription. |
-type ServiceDescriptionFactory struct { |
- // stubs stores the stubs for connections opened to this factory. |
- stubs []*bindings.Stub |
- // impl is the ServiceDescription implementation served by this factory. |
- impl service_describer.ServiceDescription |
-} |
- |
-func (serviceDescriptionFactory *ServiceDescriptionFactory) Create(request service_describer.ServiceDescription_Request) { |
- stub := service_describer.NewServiceDescriptionStub(request, serviceDescriptionFactory.impl, bindings.GetAsyncWaiter()) |
- serviceDescriptionFactory.stubs = append(serviceDescriptionFactory.stubs, stub) |
- go func() { |
- for { |
- if err := stub.ServeRequest(); err != nil { |
- connectionError, ok := err.(*bindings.ConnectionError) |
- if !ok || !connectionError.Closed() { |
- log.Println(err) |
- } |
- break |
- } |
- } |
- }() |
-} |
- |
-// ObjectWithMojomTypeSupport is an interface implemented by pointers to |
-// Mojo structs, enums, interface requests and union variants, but only if the |
-// support of runtime mojom type information was enabled at build time. |
-type ObjectWithMojomTypeSupport interface { |
- // MojomType returns the UserDefinedType that describes the Mojom |
- // type of this object. To obtain the UserDefinedType for Mojom types recursively |
- // contained in the returned UserDefinedType, look in the map returned |
- // by the function AllMojomTypes(). |
- MojomType() mojom_types.UserDefinedType |
- |
- // AllMojomTypes returns a map that contains the UserDefinedType for |
- // all Mojom types in the complete type graph of the Mojom type of this object. |
- AllMojomTypes() map[string]mojom_types.UserDefinedType |
-} |