public AsyncReply <bool> Trigger(ResourceTrigger trigger)
        {
            if (trigger == ResourceTrigger.Initialize)
            {
                TCPSocket listener;

                if (ip != null)
                {
                    listener = new TCPSocket(new IPEndPoint(IPAddress.Parse(ip), port));
                }
                else
                {
                    listener = new TCPSocket(new IPEndPoint(IPAddress.Any, port));
                }

                Start(listener, timeout, clock);
            }
            else if (trigger == ResourceTrigger.Terminate)
            {
                Stop();
            }
            else if (trigger == ResourceTrigger.SystemReload)
            {
                Trigger(ResourceTrigger.Terminate);
                Trigger(ResourceTrigger.Initialize);
            }

            return(new AsyncReply <bool>(true));
        }
Exemple #2
0
    public AsyncReply <bool> Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)
        {
            TCPSocket listener;


            if (IP != null)
            {
                listener = new TCPSocket(new IPEndPoint(IPAddress.Parse(IP), Port));
            }
            else
            {
                listener = new TCPSocket(new IPEndPoint(IPAddress.Any, Port));
            }

            Start(listener);
        }
        else if (trigger == ResourceTrigger.Terminate)
        {
            Stop();
        }
        else if (trigger == ResourceTrigger.SystemReload)
        {
            Trigger(ResourceTrigger.Terminate);
            Trigger(ResourceTrigger.Initialize);
        }
        else if (trigger == ResourceTrigger.SystemInitialized)
        {
            Instance.Children <TCPFilter>().Then(x => filters = x);
        }

        return(new AsyncReply <bool>(true));
    }
Exemple #3
0
        public override AsyncReply <bool> Trigger(ResourceTrigger trigger)
        {
            this.RootPath = RootPath ?? "Web";
            this.UpPath   = UpPath ?? "Up";

            return(new AsyncReply <bool>(true));
        }
Exemple #4
0
    async AsyncReply <bool> IResource.Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)
        {
            var address = IP == null ? IPAddress.Any : IPAddress.Parse(IP);

            udp = new UdpClient(new IPEndPoint(address, Port));

            receiver = new Thread(Receiving);
            receiver.Start();
        }
        else if (trigger == ResourceTrigger.Terminate)
        {
            if (receiver != null)
            {
                receiver.Abort();
            }
        }
        else if (trigger == ResourceTrigger.SystemInitialized)
        {
            filters = await Instance.Children <UDPFilter>();
        }

        return(true);
    }
Exemple #5
0
    public AsyncReply <bool> Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)
        {
            Create();
        }

        return(new AsyncReply <bool>(true));
    }
    /// <summary>
    /// Resource interface.
    /// </summary>
    /// <param name="trigger"></param>
    /// <returns></returns>
    public AsyncReply <bool> Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)
        {
            this.Instance.PropertyModified += this.PropertyModified;
        }

        // do nothing.
        return(new AsyncReply <bool>(true));
    }
Exemple #7
0
 public virtual AsyncReply <bool> Trigger(ResourceTrigger trigger)
 {
     if (trigger == ResourceTrigger.Initialize)
     {
         return(new AsyncReply <bool>(this.Create()));
     }
     else
     {
         return(new AsyncReply <bool>(true));
     }
 }
Exemple #8
0
    public AsyncReply <bool> Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)// SystemInitialized && DbContext != null)
        {
            if (Getter == null)
            {
                throw new Exception("Getter is not set for the store.");
            }
            //  DbContextProvider = () => Activator.CreateInstance(Options.Options.ContextType, Options.Options) as DbContext;


            ReloadModel();

            initialized = true;
        }

        return(new AsyncReply <bool>(true));
    }
Exemple #9
0
        /*
         * protected override void SessionEnded(NetworkSession session)
         * {
         *  // verify wether there are no active connections related to the session
         *
         *  foreach (HTTPConnection c in Connections)//.Values)
         *  {
         *      if (c.Session == session)
         *      {
         *          session.Refresh();
         *          return;
         *      }
         *  }
         *
         *  foreach (Instance instance in Instance.Children)
         *  {
         *      var f = (HTTPFilter)instance.Resource;
         *      f.SessionExpired((HTTPSession)session);
         *  }
         *
         *  base.SessionEnded((HTTPSession)session);
         *  //Sessions.Remove(Session.ID);
         *  //Session.Dispose();
         * }
         */

        /*
         * public int TTL
         * {
         *  get
         *  {
         *      return Timeout;// mTimeout;
         *  }
         * }
         */


        public AsyncReply <bool> Trigger(ResourceTrigger trigger)
        {
            if (trigger == ResourceTrigger.Initialize)
            {
                //var ip = (IPAddress)Instance.Attributes["ip"];
                //var port = (int)Instance.Attributes["port"];
                //var ssl = (bool)Instance.Attributes["ssl"];
                //var cert = (string)Instance.Attributes["certificate"];

                //if (ip == null) ip = IPAddress.Any;

                ISocket   listener;
                IPAddress ipAdd;

                if (ip == null)
                {
                    ipAdd = IPAddress.Any;
                }
                else
                {
                    ipAdd = IPAddress.Parse(ip);
                }

                // if (ssl)
                //    listener = new SSLSocket(new IPEndPoint(ipAdd, port), new X509Certificate2(certificate));
                // else
                listener = new TCPSocket(new IPEndPoint(ipAdd, port));

                Start(listener,
                      timeout,
                      clock);
            }
            else if (trigger == ResourceTrigger.Terminate)
            {
                Stop();
            }
            else if (trigger == ResourceTrigger.SystemReload)
            {
                Trigger(ResourceTrigger.Terminate);
                Trigger(ResourceTrigger.Initialize);
            }

            return(new AsyncReply <bool>(true));
        }
Exemple #10
0
        public AsyncReply <bool> Trigger(ResourceTrigger trigger)
        {
            if (trigger == ResourceTrigger.Initialize)
            {
                var filter = new BsonDocument();

                var list = resourcesCollection.Find(filter).ToList();

                Console.WriteLine(list.Count);

                // if (list.Count == 0)
                //   return new AsyncBag<IResource>(new IResource[0]);

                var bag = new AsyncBag <IResource>();

                for (var i = 0; i < list.Count; i++)
                {
                    Console.WriteLine("Loading {0}/{1}", i, list.Count);
                    bag.Add(Get("id/" + list[i]["_id"].AsObjectId.ToString()));
                }

                bag.Seal();

                var rt = new AsyncReply <bool>();

                bag.Then((x) => { rt.Trigger(true); });

                return(rt);
            }
            else if (trigger == ResourceTrigger.Terminate)
            {
                // save all resources
                foreach (var resource in resources.Values)
                {
                    SaveResource(resource);
                }

                return(new AsyncReply <bool>(true));
            }
            else
            {
                return(new AsyncReply <bool>(true));
            }
        }
Exemple #11
0
        public bool Trigger(ResourceTrigger trigger)
        {
            if (trigger == ResourceTrigger.Initialize)
            {
                var address = ip == null ? IPAddress.Any : IPAddress.Parse(ip);

                Udp      = new UdpClient(new IPEndPoint(address, (int)port));
                Receiver = new Thread(Receiving);
                Receiver.Start();
            }
            else if (trigger == ResourceTrigger.Terminate)
            {
                if (Receiver != null)
                {
                    Receiver.Abort();
                }
            }
            return(true);
        }
Exemple #12
0
    public AsyncReply <bool> Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)
        {
            /*
             * foreach (var resource in Instance.Children<IResource>())
             * {
             *
             *  if (resource is PacketFilter)
             *  {
             *      filters.Add(resource as PacketFilter);
             *  }
             *  else if (resource is PacketSource)
             *  {
             *      sources.Add(resource as PacketSource);
             *  }
             * }
             */
            foreach (var src in sources)
            {
                src.OnNewPacket += PacketReceived;
                src.Open();
            }
        }
        else if (trigger == ResourceTrigger.Terminate)
        {
            //            foreach (var src in sources)
            //              src.Close();
        }
        else if (trigger == ResourceTrigger.SystemReload)
        {
            foreach (var src in sources)
            {
                src.Close();
                src.Open();
            }
        }

        return(new AsyncReply <bool>(true));
    }
Exemple #13
0
    public AsyncReply <bool> Trigger(ResourceTrigger trigger)
    {
        if (trigger == ResourceTrigger.Initialize)
        {
            var collectionName = Collection ?? "resources";
            var dbName         = Database ?? "Esiur";
            client   = new MongoClient(Connection ?? "mongodb://localhost");
            database = client.GetDatabase(dbName);

            resourcesCollection = this.database.GetCollection <BsonDocument>(collectionName);


            count = (int)resourcesCollection.CountDocuments(x => true);


            // return new AsyncReply<bool>(true);


            /*
             * var filter = new BsonDocument();
             *
             * var list = resourcesCollection.Find(filter).ToList();
             *
             *
             * // if (list.Count == 0)
             * //   return new AsyncBag<IResource>(new IResource[0]);
             *
             * var bag = new AsyncBag<IResource>();
             *
             * for(var i = 0; i < list.Count; i++)
             * {
             *  Console.WriteLine("Loading {0}/{1}", i, list.Count);
             *  bag.Add(Get("id/" + list[i]["_id"].AsObjectId.ToString()));
             * }
             *
             * bag.Seal();
             *
             * var rt = new AsyncReply<bool>();
             *
             * bag.Then((x) => {
             *
             * // storeChildren.AddRange(x);
             *  rt.Trigger(true);
             *
             * });
             *
             * return rt;
             */

            return(new AsyncReply <bool>(true));
        }
        else if (trigger == ResourceTrigger.Terminate)
        {
            // save all resources
            foreach (var resource in resources.Values)
            {
                if (resource.IsAlive)
                {
                    SaveResource(resource.Target as IResource);
                }
            }

            return(new AsyncReply <bool>(true));
        }
        else
        {
            return(new AsyncReply <bool>(true));
        }
    }
Exemple #14
0
 public abstract AsyncReply <bool> Trigger(ResourceTrigger trigger);
Exemple #15
0
 /// <summary>
 /// Resource interface.
 /// </summary>
 /// <param name="trigger"></param>
 /// <returns></returns>
 public AsyncReply <bool> Trigger(ResourceTrigger trigger)
 {
     // do nothing.
     return(new AsyncReply <bool>(true));
 }
Exemple #16
0
 public AsyncReply <bool> Trigger(ResourceTrigger trigger)
 {
     return(new AsyncReply <bool>(true));
 }
Exemple #17
0
 public bool Trigger(ResourceTrigger trigger)
 {
     return(true);
 }