[hydra-commits] hydra/slice.git branch "master" updated.
Commits to the Hydra project code repositories
hydra-commits at lists.digium.com
Sun Aug 8 21:31:46 CDT 2010
branch "master" has been updated
via 9a272ca0b99d106a77522f46562c142be6582f9a (commit)
from 7a7064e15b100f8339b16a080549fbfec5022f0b (commit)
Summary of changes:
CMakeLists.txt | 3 +
Core/Bridging/BridgeServiceIf.ice | 35 +++++++++++------
Core/CMakeLists.txt | 3 -
Core/Channel/CMakeLists.txt | 2 -
Core/Channel/ChannelServiceIf.ice | 78 -------------------------------------
Core/Endpoint/EndpointIf.ice | 7 +++
Core/Routing/RoutingIf.ice | 2 +-
Media/CMakeLists.txt | 2 +-
Media/{MediaI.ice => MediaIf.ice} | 0
Session/CMakeLists.txt | 2 +
Session/SessionIf.ice | 65 ++++++++++++++++++++++++++++++
System/CMakeLists.txt | 2 +
System/Time/CMakeLists.txt | 2 +
System/Time/TimeIf.ice | 19 +++++++++
14 files changed, 125 insertions(+), 97 deletions(-)
delete mode 100644 Core/Channel/CMakeLists.txt
delete mode 100644 Core/Channel/ChannelServiceIf.ice
rename Media/{MediaI.ice => MediaIf.ice} (100%)
create mode 100644 Session/CMakeLists.txt
create mode 100644 Session/SessionIf.ice
create mode 100644 System/Time/CMakeLists.txt
create mode 100644 System/Time/TimeIf.ice
- Log -----------------------------------------------------------------
commit 9a272ca0b99d106a77522f46562c142be6582f9a
Author: Brent Eagles <beagles at digium.com>
Date: Sun Aug 8 23:58:13 2010 -0230
* Removed session oriented classes and interfaces from Bridging
* Moved Channel interface to Session/SessionIf.ice a-la UML.
* Renamed MediaI.ice to MediaIf.ice to matchi naming conventions.
* Fixed some include and build issues in other files. (The inheritance
hierarchy for endpoint managers results in a circular dependency,
so this will need to be revisited).
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 63aa4ba..c8abc9e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,3 +9,6 @@ add_subdirectory(Media)
# Slice definitions for system infrastructure
add_subdirectory(System)
+
+# Slice definitions for session-oriented communications
+add_subdirectory(Session)
diff --git a/Core/Bridging/BridgeServiceIf.ice b/Core/Bridging/BridgeServiceIf.ice
index 1ae02d8..7b41770 100644
--- a/Core/Bridging/BridgeServiceIf.ice
+++ b/Core/Bridging/BridgeServiceIf.ice
@@ -1,7 +1,7 @@
#pragma once
+#include <Core/Endpoint/EndpointIf.ice>
#include <System/Component/ComponentServiceIf.ice>
-#include <Core/Channel/ChannelServiceIf.ice>
module Hydra
{
@@ -40,34 +40,45 @@ module V1
* callback methods. It might be more appropriate in the future to parallel these
* methods, but allow for additional information to be passed as arguments.
*/
- interface CallManager extends Channel::V1::SignalCallback
+ interface CallManager
{
};
/**
- * A Bridge manages the assocation between multiple eps participating in
+ * A Bridge manages the assocation between multiple endpoints participating in
* a call.
*/
interface Bridge
{
- void addEndpoint(Channel::V1::SessionEndpoint ep);
+ /**
+ * Adds an endpoint to the bridge. In addition to simply adding the endpoint to a
+ * list of endpoints participating in the bridge, the bridge object may
+ * perform additional operations including, but not limited to, setting
+ * up transcoding and resampling adapters.
+ *
+ * @param ep The new endpoint to be added to the bridge.
+ * @throws EndpointAlreadyRegistered thrown when the endpoint
+ */
+ void addEndpoint(Endpoint::V1::BaseEndpoint ep);
void removeEndpoint(Endpoint::V1::EndpointId id);
- Channel::V1::SessionEndpointSeq listEndpoints();
+ Endpoint::V1::EndpointSeq listEndpoints();
+ void shutdown();
+ void destroy();
};
interface BridgeEvents
{
- void epAdded(Channel::V1::SessionEndpoint ep);
- void epRemoved(Channel::V1::SessionEndpoint ep);
+ void epAdded(Endpoint::V1::BaseEndpoint ep);
+ void epRemoved(Endpoint::V1::BaseEndpoint ep);
void shuttingDown();
void stopped();
};
interface BridgeHook
{
- bool onAddEndpoint(Channel::V1::SessionEndpoint ep);
- bool onRemoveEndpoint(Channel::V1::SessionEndpoint ep);
- bool onListEndpoints(Channel::V1::SessionEndpointSeq input, out Channel::V1::SessionEndpointSeq output);
+ bool onAddEndpoint(Endpoint::V1::BaseEndpoint ep);
+ bool onRemoveEndpoint(Endpoint::V1::BaseEndpoint ep);
+ bool onListEndpoints(Endpoint::V1::EndpointSeq input, out Endpoint::V1::EndpointSeq output);
bool onShutdown();
bool onShutdownComplete();
bool onDestroy();
@@ -75,14 +86,14 @@ module V1
interface BridgeFactoryHook
{
- bool onCreateBridge(Channel::V1::SessionEndpoint adminEndpoint, Channel::V1::SessionEndpointSeq eps);
+ bool onCreateBridge(Endpoint::V1::BaseEndpoint adminEndpoint, Endpoint::V1::EndpointSeq eps);
bool onShutdown();
bool onShutdownCompleted();
};
interface BridgeFactory extends System::Component::V1::ComponentService
{
- Bridge* createBridge(Channel::V1::SessionEndpoint adminEndpoint, Channel::V1::SessionEndpointSeq eps,
+ Bridge* createBridge(Endpoint::V1::BaseEndpoint adminEndpoint, Endpoint::V1::EndpointSeq eps,
CallManager* manager);
};
};
diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index 80b1a22..0b26c10 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -7,8 +7,5 @@ add_subdirectory(Endpoint)
# Slice definitions for Routing functionality
add_subdirectory(Routing)
-# Slice definitions for Channels
-add_subdirectory(Channel)
-
# Slice definitions for Bridging components
add_subdirectory(Bridging)
diff --git a/Core/Channel/CMakeLists.txt b/Core/Channel/CMakeLists.txt
deleted file mode 100644
index f45f939..0000000
--- a/Core/Channel/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# Compile Channel API
-hydra_compile_slice(ChannelServiceIf.ice lib "ChannelService API" Core)
diff --git a/Core/Channel/ChannelServiceIf.ice b/Core/Channel/ChannelServiceIf.ice
deleted file mode 100644
index e4cc572..0000000
--- a/Core/Channel/ChannelServiceIf.ice
+++ /dev/null
@@ -1,78 +0,0 @@
-#pragma once
-
-#include <Core/Endpoint/EndpointIf.ice>
-#include <System/Component/ComponentServiceIf.ice>
-#include <Media/MediaI.ice>
-
-module Hydra
-{
-module Core
-{
-module Channel
-{
-["suppress"]
-module V1
-{
- const string Version = "V1";
-
- ["preserve"]
- class SessionInfo
- {
- Endpoint::V1::EndpointId caller;
- Endpoint::V1::EndpointId destination;
- string currentState;
- string role;
- long startTime;
- long connectedTime;
- };
-
- sequence<SessionInfo> SessionInfoSeq;
-
- class ResponseCode
- {
- int isdnCode;
- };
-
- interface SignalCallback
- {
- void ring(Endpoint::V1::EndpointId ep);
- void connected(Endpoint::V1::EndpointId ep);
- void terminated(Endpoint::V1::EndpointId ep, ResponseCode response);
- void busy(Endpoint::V1::EndpointId ep);
- void congestion(Endpoint::V1::EndpointId ep, ResponseCode response);
- void hold(Endpoint::V1::EndpointId ep);
- void unhold(Endpoint::V1::EndpointId ep);
- void flash(Endpoint::V1::EndpointId ep);
- void progress(Endpoint::V1::EndpointId ep, ResponseCode response);
- };
-
- interface SignalCommands
- {
- bool call(Endpoint::V1::EndpointId caller, Endpoint::V1::EndpointId destination, SignalCallback callback);
- void terminate(Endpoint::V1::EndpointId caller);
- };
-
- class SessionEndpoint extends Endpoint::V1::BaseEndpoint
- {
- SignalCommands* command;
- SignalCallback* callback;
- Media::V1::Session* mediaSession;
- };
-
- /**
- * A ChannelService is a session-oriented ep manager.
- *
- */
- interface ChannelService extends System::Component::V1::ComponentService
- {
- SessionInfoSeq listCurrentSessions();
- SessionEndpoint getEndpoint(Endpoint::V1::EndpointId id);
- };
-
- sequence<SessionEndpoint> SessionEndpointSeq;
-
-}; // End of V1
-}; // End of Channel
-}; // End of Core
-}; // End of Hydra
-
diff --git a/Core/Endpoint/EndpointIf.ice b/Core/Endpoint/EndpointIf.ice
index 3c65f9b..d3edb34 100644
--- a/Core/Endpoint/EndpointIf.ice
+++ b/Core/Endpoint/EndpointIf.ice
@@ -1,5 +1,7 @@
#pragma once
+#include <Ice/BuiltinSequences.ice>
+
module Hydra
{
module Core
@@ -31,6 +33,11 @@ module V1
sequence<BaseEndpoint> EndpointSeq;
+ interface EndpointManager
+ {
+ EndpointSeq getManagedEndpoints();
+ Ice::StringSeq getManagedEndpointSpecification();
+ };
// TBD... only implemented minimum need for Routing Service.
diff --git a/Core/Routing/RoutingIf.ice b/Core/Routing/RoutingIf.ice
index d8334c8..e3e1732 100644
--- a/Core/Routing/RoutingIf.ice
+++ b/Core/Routing/RoutingIf.ice
@@ -1,6 +1,6 @@
#pragma once
-#include "Core/Endpoint/EndpointIf.ice"
+#include <Core/Endpoint/EndpointIf.ice>
module Hydra
{
diff --git a/Media/CMakeLists.txt b/Media/CMakeLists.txt
index d2091ea..9101e24 100644
--- a/Media/CMakeLists.txt
+++ b/Media/CMakeLists.txt
@@ -1 +1 @@
-hydra_compile_slice(MediaI.ice lib "Slice Defined API" Core)
+hydra_compile_slice(MediaIf.ice lib "Slice Defined API" Core)
diff --git a/Media/MediaI.ice b/Media/MediaIf.ice
similarity index 100%
rename from Media/MediaI.ice
rename to Media/MediaIf.ice
diff --git a/Session/CMakeLists.txt b/Session/CMakeLists.txt
new file mode 100644
index 0000000..946aa22
--- /dev/null
+++ b/Session/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Compile Session Oriented API
+hydra_compile_slice(SessionIf.ice lib "Sessions API" Session)
diff --git a/Session/SessionIf.ice b/Session/SessionIf.ice
new file mode 100644
index 0000000..ad3e156
--- /dev/null
+++ b/Session/SessionIf.ice
@@ -0,0 +1,65 @@
+#pragma once
+
+#include <Core/Endpoint/EndpointIf.ice>
+#include <System/Time/TimeIf.ice>
+#include <System/Component/ComponentServiceIf.ice>
+#include <Core/Endpoint/EndpointIf.ice>
+#include <Media/MediaIf.ice>
+
+module Hydra
+{
+module Session
+{
+module V1
+{
+ class SessionInfo
+ {
+ Core::Endpoint::V1::EndpointId caller;
+ Core::Endpoint::V1::EndpointId destination;
+ string currentState;
+ string role;
+ System::Time::V1::TimeMarker startTime;
+ long connectedTime;
+ };
+
+ sequence<SessionInfo> SessionInfoSeq;
+
+ class ResponseCode
+ {
+ int isdnCode;
+ };
+
+ interface SignalCallback
+ {
+ void ring(Core::Endpoint::V1::EndpointId ep);
+ void connected(Core::Endpoint::V1::EndpointId ep);
+ void terminated(Core::Endpoint::V1::EndpointId ep, ResponseCode response);
+ void busy(Core::Endpoint::V1::EndpointId ep);
+ void congestion(Core::Endpoint::V1::EndpointId ep, ResponseCode response);
+ void hold(Core::Endpoint::V1::EndpointId ep);
+ void unhold(Core::Endpoint::V1::EndpointId ep);
+ void flash(Core::Endpoint::V1::EndpointId ep);
+ void progress(Core::Endpoint::V1::EndpointId ep, ResponseCode response);
+ };
+
+ interface SignalCommands
+ {
+ bool call(Core::Endpoint::V1::EndpointId caller, Core::Endpoint::V1::EndpointId destination, SignalCallback callback);
+ void terminate(Core::Endpoint::V1::EndpointId caller);
+ };
+
+ class SessionEndpoint extends Core::Endpoint::V1::BaseEndpoint
+ {
+ SignalCommands* command;
+ SignalCallback* callback;
+ Media::V1::Session* mediaSession;
+ };
+
+ interface SessionManager extends System::Component::V1::ComponentService
+ {
+ SessionInfoSeq listCurrentSessions();
+ };
+
+}; // End of V1
+}; // End of Session
+}; // End of Hydra
diff --git a/System/CMakeLists.txt b/System/CMakeLists.txt
index b688aa9..526c3fe 100644
--- a/System/CMakeLists.txt
+++ b/System/CMakeLists.txt
@@ -1,3 +1,5 @@
# Slice definitions for Component functionality
add_subdirectory(Component)
+# Slice definitions for Time services functionality
+add_subdirectory(Time)
diff --git a/System/Time/CMakeLists.txt b/System/Time/CMakeLists.txt
new file mode 100644
index 0000000..e0f10ae
--- /dev/null
+++ b/System/Time/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Compile Time API
+hydra_compile_slice(TimeIf.ice lib "Time services API" System)
diff --git a/System/Time/TimeIf.ice b/System/Time/TimeIf.ice
new file mode 100644
index 0000000..c9aa376
--- /dev/null
+++ b/System/Time/TimeIf.ice
@@ -0,0 +1,19 @@
+#pragma once
+
+module Hydra
+{
+module System
+{
+module Time
+{
+module V1
+{
+ class TimeMarker
+ {
+ long markTime;
+ float scale;
+ };
+}; // End of V1
+}; // End of Time
+}; // End of System
+}; // End of Hydra
-----------------------------------------------------------------------
--
hydra/slice.git
More information about the asterisk-scf-commits
mailing list