コード例 #1
0
        public static IConnection ReadConnection(Chunk connectionChunk, IEnvironment environment)
        {
            if (connectionChunk.Name == "Connection")
            {
                string sourceActor = connectionChunk.GetValue("SourceActor", string.Empty);
                string targetActor = connectionChunk.GetValue("TargetActor", string.Empty);
                string sourcePlug  = connectionChunk.GetValue("SourcePlug", string.Empty);
                string targetPlug  = connectionChunk.GetValue("TargetPlug", string.Empty);

                if (sourceActor != string.Empty &&
                    targetActor != string.Empty &&
                    sourcePlug != string.Empty &&
                    targetPlug != string.Empty)
                {
                    IConnection newConnection = Utility.Connect(environment,
                                                                sourceActor,
                                                                sourcePlug,
                                                                targetActor,
                                                                targetPlug);

                    if (newConnection == null)
                    {
                        // Error connection not possible.
                        return(null);
                    }
                    else
                    {
                        environment.Add(newConnection);
                        return(newConnection);
                    }
                }
            }

            return(null);
        }
コード例 #2
0
        public static IConnection Connect(IEnvironment environment,
                                          string sourceActorName,
                                          string sourcePlugName,
                                          string targetActorName,
                                          string targetPlugName)
        {
            IActor sourceActor = environment[sourceActorName];
            IActor targetActor = environment[targetActorName];

            if (sourceActor != null && targetActor != null)
            {
                IOutputPlug[] outputPlugs = sourceActor.GetOutputPlugs(targetActor, null);

                IOutputPlug sourcePlug = null;

                foreach (IOutputPlug op in outputPlugs)
                {
                    if (op.Name == sourcePlugName)
                    {
                        sourcePlug = op;
                        break;
                    }
                }

                if (sourcePlug != null)
                {
                    IInputPlug[] inputPlugs = targetActor.GetInputPlugs(sourceActor, sourcePlug);
                    foreach (IInputPlug ip in inputPlugs)
                    {
                        if (ip.Name == targetPlugName)
                        {
                            // Found everything.
                            IConnection connection = sourcePlug.Connect(ip);

                            if (connection != null)
                            {
                                environment.Add(connection);
                                return(connection);
                            }
                        }
                    }
                }
            }
            return(null);
        }
コード例 #3
0
        public static IConnection Connect(  IEnvironment environment,
            string sourceActorName,
            string sourcePlugName,
            string targetActorName,
            string targetPlugName)
        {
            IActor sourceActor = environment[sourceActorName];
            IActor targetActor = environment[targetActorName];

            if (sourceActor != null && targetActor != null)
            {
                IOutputPlug[] outputPlugs = sourceActor.GetOutputPlugs(targetActor, null);

                IOutputPlug sourcePlug = null;

                foreach (IOutputPlug op in outputPlugs)
                {
                    if (op.Name == sourcePlugName)
                    {
                        sourcePlug = op;
                        break;
                    }
                }

                if ( sourcePlug != null )
                {
                    IInputPlug[] inputPlugs = targetActor.GetInputPlugs(sourceActor, sourcePlug);
                    foreach (IInputPlug ip in inputPlugs)
                    {
                        if (ip.Name == targetPlugName)
                        {
                            // Found everything.
                            IConnection connection = sourcePlug.Connect(ip);

                            if (connection != null)
                            {
                                environment.Add(connection);
                                return connection;
                            }
                        }
                    }
                }
            }
            return null;
        }
コード例 #4
0
 public virtual bool Initialize(IEnvironment environment)
 {
     if (environment != null)
     {
         bool success = environment.Add(this);
         if (success)
         {
             this.actorEnvironment = environment;
             return(true);
         }
         else
         {
             log.Warning("Actor name already in environment: {0}", this.Name);
         }
     }
     else
     {
         log.Warning("No environment to register this actor [{0}].", this.Name);
     }
     return(false);
 }
コード例 #5
0
        public static IConnection ReadConnection( Chunk connectionChunk,IEnvironment environment )
        {
            if (connectionChunk.Name == "Connection")
            {
                string sourceActor = connectionChunk.GetValue("SourceActor", string.Empty);
                string targetActor = connectionChunk.GetValue("TargetActor", string.Empty);
                string sourcePlug = connectionChunk.GetValue("SourcePlug", string.Empty);
                string targetPlug = connectionChunk.GetValue("TargetPlug", string.Empty);

                if (sourceActor != string.Empty &&
                        targetActor != string.Empty &&
                        sourcePlug != string.Empty &&
                        targetPlug != string.Empty)
                {
                    IConnection newConnection = Utility.Connect(environment,
                                            sourceActor,
                                            sourcePlug,
                                            targetActor,
                                            targetPlug);

                    if (newConnection == null)
                    {
                        // Error connection not possible.
                        return null;
                    }
                    else
                    {
                        environment.Add(newConnection);
                        return newConnection;
                    }
                }
            }

            return null;
        }