Last change
on this file since 89 was 89, checked in by Bart Vastenhouw, 3 years ago |
refactor to help reusing partiesserver
|
File size:
1.3 KB
|
Rev | Line | |
---|
[89] | 1 | from tudelft_utilities_logging.Reporter import Reporter
|
---|
| 2 | from uri.uri import URI # type:ignore
|
---|
| 3 |
|
---|
| 4 | from geniusweb.profileconnection.FileProfileConnector import FileProfileConnector
|
---|
| 5 | from geniusweb.profileconnection.ProfileInterface import ProfileInterface
|
---|
| 6 | from geniusweb.profileconnection.WebSocketContainer import DefaultWebSocketContainer
|
---|
| 7 | from geniusweb.profileconnection.WebsocketProfileConnector import WebsocketProfileConnector
|
---|
| 8 |
|
---|
| 9 |
|
---|
| 10 | class ProfileConnectionFactory:
|
---|
| 11 | '''
|
---|
| 12 | * factory that provides a ProfileInterface given an URI, supporting both the ws
|
---|
| 13 | * and the file scheme for the uri
|
---|
| 14 | '''
|
---|
| 15 |
|
---|
| 16 | @staticmethod
|
---|
| 17 | def create( uri:URI, reporter:Reporter) -> ProfileInterface:
|
---|
| 18 | '''
|
---|
| 19 | @param uri the URI that can provide the {@link Profile}. Support
|
---|
| 20 | both the ws and the file scheme for the uri.
|
---|
| 21 | @param reporter the {@link Reporter} to log issues to
|
---|
| 22 | @return a {@link ProfileInterface}
|
---|
| 23 | @throws IOException if connection can't be made
|
---|
| 24 | @throws DeploymentException if endpoint can't be published
|
---|
| 25 | '''
|
---|
| 26 | scheme=str(uri.getScheme())
|
---|
| 27 | if "ws"==scheme:
|
---|
| 28 | return WebsocketProfileConnector(uri, reporter, DefaultWebSocketContainer())
|
---|
| 29 | if "file"==scheme:
|
---|
| 30 | return FileProfileConnector(uri.getPath());
|
---|
| 31 | raise ValueError("Unsupported profile scheme " + str(uri));
|
---|
| 32 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.