summaryrefslogtreecommitdiffstats
path: root/mojo/dbus
Commit message (Collapse)AuthorAgeFilesLines
* Mojo: split up service_provider.mojomdarin@chromium.org2014-07-312-2/+0
| | | | | | Review URL: https://codereview.chromium.org/423613002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286725 0039d316-1c4b-4281-b951-d872f2087c98
* Mojo: Use InterfaceFactory<Interface> for service registrationjamesr@chromium.org2014-07-241-3/+14
| | | | | | | | | | | | | | | | This adds an InterfaceFactory<Interface> type and allows registering a service through its provider. Using an InterfaceFactory allows the app to be in control of the lifetime of the implementation of the interface and hides all of the implementation details of the interface from the application library code (i.e. no subclassing impl classes or anything like that). The default binding behavior is to bind the lifetime of the impl to the lifetime of the pipe, but the application can also weakly bind to a service in cases where it needs to manage the lifetime explicitly. Review URL: https://codereview.chromium.org/380413003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285139 0039d316-1c4b-4281-b951-d872f2087c98
* Split ServiceProvider into 3davemoore@chromium.org2014-06-252-5/+12
| | | | | | | | | BUG= R=darin@chromium.org, qsr@chromium.org Review URL: https://codereview.chromium.org/347333002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279830 0039d316-1c4b-4281-b951-d872f2087c98
* Move channel_init out of mojo_common.qsr@chromium.org2014-06-192-4/+4
| | | | | | | | | | | | mojo_common can not depends on embedder, as standalone application must depends on it. channel_init is in fact a part of the embedder. R=viettrungluu@chromium.org TBR=darin@chromium.org Review URL: https://codereview.chromium.org/346633002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278357 0039d316-1c4b-4281-b951-d872f2087c98
* Shell / ShellClient -> ServiceProviderdavemoore@chromium.org2014-05-272-6/+7
| | | | | | | | | | | Try #2 of https://codereview.chromium.org/298653010/ Fixed newly introduced GN dependency. TBR=darin@chromium.org BUG= Review URL: https://codereview.chromium.org/298003008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272989 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 272983 "Change Shell / ShellClient to ServiceProvider"davemoore@chromium.org2014-05-272-7/+6
| | | | | | | | | | | | | | | > Change Shell / ShellClient to ServiceProvider > > BUG= > R=darin@chromium.org > > Review URL: https://codereview.chromium.org/298653010 TBR=davemoore@chromium.org Review URL: https://codereview.chromium.org/304593002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272984 0039d316-1c4b-4281-b951-d872f2087c98
* Change Shell / ShellClient to ServiceProviderdavemoore@chromium.org2014-05-272-6/+7
| | | | | | | | | BUG= R=darin@chromium.org Review URL: https://codereview.chromium.org/298653010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272983 0039d316-1c4b-4281-b951-d872f2087c98
* Mojo: Internalize ServiceConnector<>darin@chromium.org2014-05-161-1/+1
| | | | | | | | | | | Authored by davemoore@chromium.org, see https://codereview.chromium.org/275363002/ R=darin@chromium.org TBR=davemoore@chromium.org Review URL: https://codereview.chromium.org/287143003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270945 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 270867 "Mojo: Internalize ServiceConnector<>"jiayl@chromium.org2014-05-161-1/+1
| | | | | | | | | | | | | | | | | | | Suspected to cause compile failure on Win Builder: http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/20401 > Mojo: Internalize ServiceConnector<> > > Authored by davemoore@chromium.org, see https://codereview.chromium.org/275363002/ > > R=viettrungluu@chromium.org, darin@chromium.org > > Review URL: https://codereview.chromium.org/284113009 TBR=darin@chromium.org Review URL: https://codereview.chromium.org/287003004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270873 0039d316-1c4b-4281-b951-d872f2087c98
* Mojo: Internalize ServiceConnector<>darin@chromium.org2014-05-161-1/+1
| | | | | | | | | | Authored by davemoore@chromium.org, see https://codereview.chromium.org/275363002/ R=viettrungluu@chromium.org, darin@chromium.org Review URL: https://codereview.chromium.org/284113009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270867 0039d316-1c4b-4281-b951-d872f2087c98
* Mojo: Replace RemotePtr with InterfacePtr and InterfaceImpldarin@chromium.org2014-05-092-28/+25
| | | | | | | | | | | | | | | | | | | | | | Interfaces no longer have explicit Peer attributes. An interface may now optionally have a Client interface, in which case a SetClient method will be auto-generated. InterfacePtr is a proxy to a remote instance of an interface. InterfaceImpl is a base class used when implementing an interface. Both have facilities for binding to a pipe, etc. An InterfacePtr is movable but not copyable and looks a lot like RemotePtr save for how it gets initialized (via the Bind method now). I've added some new top-level functions: MakeProxy - makes it easy to initialize an InterfacePtr in say a member initializer list. BindToPipe - this is how you bind an InterfaceImpl to a pipe. once bound, they cannot be unbound until the object is destroyed or the pipe is closed. BindToProxy - builds on top of BindToPipe, however, it hides the details of the pipe. What you get back is an InterfacePtr. Generated C++ code now passes InterfacePtr instead of InterfaceHandle. As a result, we have far less need for typed subclasses of MessagePipeHandle, so I eliminated them. The code that needs to deal with raw handles generally has to deal with {Scoped}MessagePipeHandle, and adding strong typing to these handles doesn't seem helpful anymore. R=davemoore@chromium.org Review URL: https://codereview.chromium.org/265793015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269443 0039d316-1c4b-4281-b951-d872f2087c98
* Generalize DBus-Mojo bootstrapping codecmasone@chromium.org2014-05-013-0/+184
Most of the code to bootstrap a Mojo service over DBus is moved into a templated class under mojo/dbus. Simply implement your Mojo service and then specialize DBusExternalService with your service implementation. TBR=darin@chromium.org BUG=chromium:367816 TEST=run mojo_dbus_echo_service in one shell, and then ./out/Debug/mojo_shell --origin=http://127.0.0.1:4444 --disable-cache mojo:mojo_dbus_echo in the other. Review URL: https://codereview.chromium.org/245253004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267662 0039d316-1c4b-4281-b951-d872f2087c98