aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark a. foltz <mfoltz@chromium.org>2019-05-01 16:34:00 -0700
committerCommit Bot <commit-bot@chromium.org>2019-05-02 20:30:52 +0000
commit513b5595a8c07d9814db163aaf869d9404413cda (patch)
tree472214d936ebb7178ff97bbdb9f07e53e2d0a128
parentf1e4bb71be2c8b58871cf4788528039d18cbab95 (diff)
downloadopenscreen-513b5595a8c07d9814db163aaf869d9404413cda.tar.gz
[libcast] Adds Cast folder structure.
This adds a basic folder structure for libcast code with README files and DEPS to enforce component layering per the design doc. Change-Id: I42555ae1f6b5f696bbbd4a8859da801740382304 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1592675 Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Max Yakimakha <yakimakha@google.com> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
-rw-r--r--DEPS2
-rw-r--r--cast/DEPS17
-rw-r--r--cast/README.md5
-rw-r--r--cast/common/DEPS6
-rw-r--r--cast/common/public/DEPS12
-rw-r--r--cast/common/public/README.md3
-rw-r--r--cast/receiver/DEPS7
-rw-r--r--cast/receiver/public/DEPS12
-rw-r--r--cast/receiver/public/README.md4
-rw-r--r--cast/sender/DEPS7
-rw-r--r--cast/sender/public/DEPS12
-rw-r--r--cast/sender/public/README.md5
-rw-r--r--cast/streaming/DEPS10
-rw-r--r--cast/streaming/README.md4
-rw-r--r--cast/third_party/DEPS8
-rw-r--r--cast/third_party/README.md4
16 files changed, 118 insertions, 0 deletions
diff --git a/DEPS b/DEPS
index 444ddeca..c33dd151 100644
--- a/DEPS
+++ b/DEPS
@@ -91,6 +91,8 @@ recursedeps = [
'third_party/chromium_quic/src',
]
+# TODO(mfoltz): Change to allow only base and third_party from the top level
+# once OSP code is moved into osp/.
include_rules = [
'+api',
'+osp_base',
diff --git a/cast/DEPS b/cast/DEPS
new file mode 100644
index 00000000..e8615f96
--- /dev/null
+++ b/cast/DEPS
@@ -0,0 +1,17 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # OSP code is strictly verboten.
+ '-api',
+ '-demo',
+ '-discovery',
+ '-go',
+ '-msgs',
+
+ # Intra-libcast dependencies must be explicit.
+ '-cast',
+
+ # All libcast code can use platform and cast/third_party.
+ '+cast/third_party',
+ '+platform'
+]
diff --git a/cast/README.md b/cast/README.md
new file mode 100644
index 00000000..1b890c5b
--- /dev/null
+++ b/cast/README.md
@@ -0,0 +1,5 @@
+# libcast
+
+libcast is an open source implementation of the Cast procotol supporting Cast
+applications and streaming to Cast-compatible devices.
+
diff --git a/cast/common/DEPS b/cast/common/DEPS
new file mode 100644
index 00000000..e1023950
--- /dev/null
+++ b/cast/common/DEPS
@@ -0,0 +1,6 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # libcast common code must depend on neither the sender nor the receiver.
+ '+cast/common'
+]
diff --git a/cast/common/public/DEPS b/cast/common/public/DEPS
new file mode 100644
index 00000000..7060c480
--- /dev/null
+++ b/cast/common/public/DEPS
@@ -0,0 +1,12 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # By default, openscreen implementation libraries should not be exposed
+ # through public APIs.
+ '-base',
+ '-platform',
+
+ # Dependencies on the implementation are not allowed in public/.
+ '-cast/common',
+ '+cast/common/public'
+]
diff --git a/cast/common/public/README.md b/cast/common/public/README.md
new file mode 100644
index 00000000..02043599
--- /dev/null
+++ b/cast/common/public/README.md
@@ -0,0 +1,3 @@
+# cast/common/public
+
+This component contains code shared between the sender and receiver modules of libcast.
diff --git a/cast/receiver/DEPS b/cast/receiver/DEPS
new file mode 100644
index 00000000..7bdadde7
--- /dev/null
+++ b/cast/receiver/DEPS
@@ -0,0 +1,7 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # libcast receiver code must not depend on the sender.
+ '+cast/common/public',
+ '+cast/receiver'
+]
diff --git a/cast/receiver/public/DEPS b/cast/receiver/public/DEPS
new file mode 100644
index 00000000..714c37a4
--- /dev/null
+++ b/cast/receiver/public/DEPS
@@ -0,0 +1,12 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # By default, openscreen implementation libraries should not be exposed
+ # through public APIs.
+ '-base',
+ '-platform',
+
+ # Dependencies on the implementation are not allowed in public/.
+ '-cast/receiver',
+ '+cast/receiver/public'
+]
diff --git a/cast/receiver/public/README.md b/cast/receiver/public/README.md
new file mode 100644
index 00000000..cba74b54
--- /dev/null
+++ b/cast/receiver/public/README.md
@@ -0,0 +1,4 @@
+# cast/receiver/public
+
+This module contains an implementation of the Cast "receiver", i.e. the server
+on a Cast device that receives requests to launch apps.
diff --git a/cast/sender/DEPS b/cast/sender/DEPS
new file mode 100644
index 00000000..e386f11a
--- /dev/null
+++ b/cast/sender/DEPS
@@ -0,0 +1,7 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # libcast sender code must not depend on the receiver.
+ '+cast/common/public',
+ '+cast/sender'
+]
diff --git a/cast/sender/public/DEPS b/cast/sender/public/DEPS
new file mode 100644
index 00000000..44de6584
--- /dev/null
+++ b/cast/sender/public/DEPS
@@ -0,0 +1,12 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # By default, openscreen implementation libraries should not be exposed
+ # through public APIs.
+ '-base',
+ '-platform',
+
+ # Dependencies on the implementation are not allowed in public/.
+ '-cast/sender',
+ '+cast/sender/public'
+]
diff --git a/cast/sender/public/README.md b/cast/sender/public/README.md
new file mode 100644
index 00000000..ace86163
--- /dev/null
+++ b/cast/sender/public/README.md
@@ -0,0 +1,5 @@
+# cast/receiver/public
+
+This module contains an implementation of the Cast "sender", i.e. the client
+that discovers Cast devices on the LAN and launches apps on them.
+
diff --git a/cast/streaming/DEPS b/cast/streaming/DEPS
new file mode 100644
index 00000000..6a332471
--- /dev/null
+++ b/cast/streaming/DEPS
@@ -0,0 +1,10 @@
+# -*- Mode: Python; -*-
+
+# In the future, the streaming code will likely split into sender and receiver
+# modules, at which point this can become finer-grained.
+include_rules = [
+ '+cast/common',
+ '+cast/receiver',
+ '+cast/sender',
+ '+cast/streaming'
+]
diff --git a/cast/streaming/README.md b/cast/streaming/README.md
new file mode 100644
index 00000000..a34f9ca2
--- /dev/null
+++ b/cast/streaming/README.md
@@ -0,0 +1,4 @@
+# cast/streaming
+
+This module contains an implementation of Cast Streaming, a real-time media
+streaming protocol between Cast senders and Cast receivers.
diff --git a/cast/third_party/DEPS b/cast/third_party/DEPS
new file mode 100644
index 00000000..33d2a399
--- /dev/null
+++ b/cast/third_party/DEPS
@@ -0,0 +1,8 @@
+# -*- Mode: Python; -*-
+
+include_rules = [
+ # No dependencies on libcast.
+ '-base',
+ '-platform',
+ '-third_party'
+]
diff --git a/cast/third_party/README.md b/cast/third_party/README.md
new file mode 100644
index 00000000..ce4cc5cf
--- /dev/null
+++ b/cast/third_party/README.md
@@ -0,0 +1,4 @@
+# cast/third_party
+
+Directory for third party dependencies of libcast.
+