1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef MOJO_PUBLIC_APPLICATION_APPLICATION_DELEGATE_H_ 6 #define MOJO_PUBLIC_APPLICATION_APPLICATION_DELEGATE_H_ 7 8 #include <string> 9 10 #include "mojo/public/cpp/system/macros.h" 11 12 namespace mojo { 13 14 class ApplicationConnection; 15 class ApplicationImpl; 16 17 class ApplicationDelegate { 18 public: 19 ApplicationDelegate(); 20 virtual ~ApplicationDelegate(); 21 22 // Implement this method to create the specific subclass of 23 // ApplicationDelegate. Ownership is taken by the caller. It will be deleted. 24 static ApplicationDelegate* Create(); 25 26 virtual void Initialize(ApplicationImpl* app); 27 28 // Override this method to configure what services a connection supports when 29 // being connected to from an app. 30 // return false to reject the connection entirely. 31 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection); 32 33 // Override this method to configure what services a connection supports when 34 // connecting to another app. 35 // return false to reject the connection entirely. 36 virtual bool ConfigureOutgoingConnection(ApplicationConnection* connection); 37 38 private: 39 MOJO_DISALLOW_COPY_AND_ASSIGN(ApplicationDelegate); 40 }; 41 42 } // namespace mojo 43 44 #endif // MOJO_PUBLIC_APPLICATION_APPLICATION_DELEGATE_H_ 45