Beispiel #1
0
        static void Main(string[] args)
        {
            QueueAdapter <int> queue = new QueueAdapter <int>();

            queue.Enqueue(10);
            queue.Enqueue(20);
            queue.Enqueue(30);
            Console.WriteLine("After three Enqueue 10, 20 and 30");
            foreach (var item in queue)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("Before Dequeue count is ==> " + queue.Count());
            queue.Dequeue();
            queue.Dequeue();
            Console.WriteLine("After Dequeue count is ==> " + queue.Count());

            Console.WriteLine("Again two Enqueue with 20 and 30");
            queue.Enqueue(20);
            queue.Enqueue(30);

            foreach (var item in queue)
            {
                Console.WriteLine(item);
            }
        }
Beispiel #2
0
        public MutexQueue([NotNull] TQueue queue, [NotNull] ProducerConsumerQueueOptions <T> options, CancellationToken token = default(CancellationToken))
            : base(options, token)
        {
            bool   createdNew;
            string name = Name.ToNullIfEmpty()?.LeftMax(Win32.MAX_PATH);

            if (name == null)
            {
                _mutex = new Mutex(false, null, out createdNew);
            }
            else
            {
                try
                {
                    _mutex     = Mutex.OpenExisting(name);
                    createdNew = false;
                }
                catch (WaitHandleCannotBeOpenedException)
                {
                    _mutex = new Mutex(false, name, out createdNew);
                }
            }

            IsOwner      = createdNew;
            _queue       = new QueueAdapter <TQueue, T>(queue);
            _allWorkDone = new ManualResetEvent(false);

            new Thread(Consume)
            {
                IsBackground = IsBackground,
                Priority     = Priority
            }.Start();
        }
Beispiel #3
0
        public override void Run()
        {
            var command = Command;

            if (command == null && !string.IsNullOrWhiteSpace(PluginName))
            {
                var plugin = PluginAssembly.LoadFrom(PluginName);
                if (!string.IsNullOrWhiteSpace(CommandClass))
                {
                    command = plugin.CreateCommandFromClass(CommandClass);
                }
                else if (!string.IsNullOrWhiteSpace(CommandVerb))
                {
                    command = plugin.CreateCommandFromVerb(CommandVerb);
                }
            }

            if (command == null)
            {
                throw new CommandFailedException("Did not publish command. Could not load command from plugin.");
            }

            if (Arguments != null)
            {
                Parser.Default.ParseArguments(Arguments.ToList().Select(x => $"--{x}").ToArray(), command);
            }

            QueueAdapter.Make(UseSecondaryQueue, QueueSettings, MailSettings).Publish(command);
        }
Beispiel #4
0
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View view = inflater.Inflate(Resource.Layout.LonelyRecycler, container, false);

        instance = this;
        ListView = view.FindViewById <RecyclerView>(Resource.Id.recycler);
        ListView.SetLayoutManager(new LinearLayoutManager(Application.Context));
        adapter = new QueueAdapter();
        ListView.SetAdapter(adapter);
        adapter.ItemClick     += ListView_ItemClick;
        adapter.ItemLongCLick += ListView_ItemLongCLick;
        ListView.SetItemAnimator(new DefaultItemAnimator());
        ListView.AddItemDecoration(new CurrentItemDecoration(adapter));
        ListView.AddOnItemTouchListener(this);
        ListView.ScrollChange += Scroll;

        ItemTouchHelper.Callback callback = new ItemTouchCallback(adapter, true);
        itemTouchHelper = new ItemTouchHelper(callback);
        itemTouchHelper.AttachToRecyclerView(ListView);

        ListView.ScrollToPosition(MusicPlayer.CurrentID());

        if (MusicPlayer.UseCastPlayer)
        {
            Snackbar snackBar = Snackbar.Make(ListView, "Queue management with chromecast is currently in beta, expect some bugs.", (int)ToastLength.Short);
            snackBar.View.FindViewById <TextView>(Resource.Id.snackbar_text).SetTextColor(Color.White);
            snackBar.Show();
        }
        return(view);
    }
        public override void Run()
        {
            var queue = QueueAdapter.Make(UseSecondaryQueue, QueueSettings, MailSettings);

            Enumerable.Range(0, Limit)
            .ToList()
            .ForEach(x => queue.RepublishFailedMessages());
        }
Beispiel #6
0
        public ComDependencies(PdfCreatorAdapter pdfCreatorAdapter, QueueAdapter queueAdapter)
        {
            PdfCreatorAdapter = pdfCreatorAdapter;
            QueueAdapter      = queueAdapter;

            // This is a dummy to maintain an active reference to the wrapper assembly
            var t = typeof(ComWrapper.PdfCreatorObj);
        }
Beispiel #7
0
 public WaitAndPulseQueue([NotNull] TQueue queue, [NotNull] ProducerConsumerQueueOptions <T> options, CancellationToken token = default(CancellationToken))
     : base(options, token)
 {
     _queue            = new QueueAdapter <TQueue, T>(queue);
     _workStartedEvent = new AutoResetEvent(false);
     _countdown        = new CountdownEvent(1);
     _workers          = new Thread[Threads];
 }
        public void Dispatch()
        {
            if (QueueAdapter == null)
            {
                QueueAdapter = QueueAdapter.Make(true, QueueSettings, MailSettings);
            }

            QueueAdapter.Publish(Command);
        }
Beispiel #9
0
        public Queue()
        {
            var builder      = new ComDependencyBuilder();
            var dependencies = builder.ComDependencies;

            _queueAdapter           = dependencies.QueueAdapter;
            _printJobAdapterFactory = _queueAdapter.PrintJobAdapterFactory;
            _jobInfoQueue           = _queueAdapter.JobInfoQueue;
        }
Beispiel #10
0
        public override void Run()
        {
            if (From < 0)
            {
                throw new ArgumentException("--from cannot be negative");
            }
            if (To < 0)
            {
                throw new ArgumentException("--to cannot be negative");
            }
            if (To < From)
            {
                throw new ArgumentException("--from cannot be greater than --to");
            }

            if (PendingQueue == false && FailedQueue == false && InProgressQueue == false)
            {
                throw new CommandFailedException("Must specify at least one queue to peek in. Use -h to see available options.");
            }
            var queue = QueueAdapter.Make(UseSecondaryQueue, QueueSettings, MailSettings);

            try
            {
                if (PendingQueue)
                {
                    PrintMessages(queue.PeekPendingMessages(From, To), "Pending");
                }
            }
            catch (Exception exception)
            {
                Log.Warn(exception);
            }

            try
            {
                if (InProgressQueue)
                {
                    PrintMessages(queue.PeekInProgressMessages(From, To), "In-progress");
                }
            }
            catch (Exception exception)
            {
                Log.Warn(exception);
            }

            try
            {
                if (FailedQueue)
                {
                    PrintMessages(queue.PeekInProgressMessages(From, To), "In-progress");
                }
            }
            catch (Exception exception)
            {
                Log.Warn(exception);
            }
        }
Beispiel #11
0
 public void PrintQueueLengths(QueueAdapter queue)
 {
     Warning($"{queue.QueueName} Queue:");
     queue.GetQueueLengths().ToList().ForEach(x => {
         InfoText(x.Key.PadLeft(15));
         Line(x.Value.ToString().PadLeft(10));
     });
     Newline();
 }
Beispiel #12
0
 public TaskGroupQueue([NotNull] TQueue queue, [NotNull] ProducerConsumerQueueOptions <T> options, CancellationToken token = default(CancellationToken))
     : base(options, token)
 {
     _queue     = new QueueAdapter <TQueue, T>(queue);
     _countdown = new CountdownEvent(1);
     new Thread(Consume)
     {
         IsBackground = IsBackground,
         Priority     = Priority
     }.Start();
 }
 public SemaphoreSlimQueue([NotNull] TQueue queue, [NotNull] ProducerConsumerQueueOptions <T> options, CancellationToken token = default(CancellationToken))
     : base(options, token)
 {
     _queue       = new QueueAdapter <TQueue, T>(queue);
     _allWorkDone = new ManualResetEvent(false);
     _semaphore   = new SemaphoreSlim(Threads);
     new Thread(Consume)
     {
         IsBackground = IsBackground,
         Priority     = Priority
     }.Start();
 }
        public void PeekShouldPeekSourceQueue()
        {
            // arrange
            var source = new Queue<object>();
            var target = new QueueAdapter<object>( source );

            // act
            target.Enqueue( new object() );

            // assert
            Assert.Equal( source.Peek(), target.Peek() );
        }
Beispiel #15
0
 public override void Run()
 {
     if (PendingQueue == false && FailedQueue == false && InProgressQueue == false)
         throw new CommandFailedException("Must specify at least one queue to clear. Use -h to see available options.");
     var queue = QueueAdapter.Make(UseSecondaryQueue, QueueSettings, MailSettings);
     if (PendingQueue)
         Info($"Pending: {queue.ClearPendingQueue().ToString()}");
     if (InProgressQueue)
         Info($"In-progress: {queue.ClearInProgressQueue().ToString()}");
     if (FailedQueue)
         Info($"Failed: {queue.ClearFailedQueue().ToString()}");
 }
Beispiel #16
0
        static void Main(string[] args)
        {
            QueueAdapter <int> queue = new QueueAdapter <int>();

            queue.Enqueue(10);
            queue.Enqueue(20);
            queue.Enqueue(30);
            queue.PrintQueue();
            queue.Dequeue();
            Console.WriteLine("List After Dequeue");
            queue.PrintQueue();
            Console.ReadLine();
        }
Beispiel #17
0
        public static void DoListnning(QueueHost host)
        {
            var adapter = new QueueAdapter()
            {
                Source  = host,
                IsAsync = true,
                //Interval = 100,
                ConnectTimeout    = 5000,
                ReadTimeout       = 180000,
                WorkerCount       = 1,
                EnableDynamicWait = true,
                QueueAction       = (message) =>
                {
                    Console.WriteLine("State:{0},Arrived:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}", message.MessageState, message.ArrivedTime.ToString("yyyy-MM-dd HH:mm:ss.fff"), message.Host, message.Label, message.Identifier, message.Duration);

                    var    body  = message.GetBody();
                    string sbody = body == null ? "null" : body.ToString();
                    Console.WriteLine("body: " + sbody);
                },
                FaultAction = (message) =>
                {
                    Console.WriteLine(message);
                }
            };

            QueueListener listener = new QueueListener(adapter, 100);
            string        logpath  = NetlogSettings.GetDefaultPath("qlistener");

            listener.Logger = new Logger(logpath);
            //listener.ErrorOcurred += Listener_ErrorOcurred;
            //listener.MessageReceived += Listener_MessageReceived;
            listener.Start();

            //QueueApi api = new QueueApi(host);
            //api.ReceiveCompleted += api_ReceiveCompleted;

            ////api.Listener(10000, message_ReceiveCompleted);
            //bool KeepAlive = true;
            //int connectTimeout=10000;

            //    while (KeepAlive)
            //    {
            //        api.Receive(connectTimeout,message_ReceiveCompleted);
            //        Thread.Sleep(100);
            //    }



            //Console.WriteLine("QueueListener finished...");
            //Console.ReadLine();
        }
        public void CopyToShouldCopySourceQueue()
        {
            // arrange
            var expected = new[] { new object(), new object(), new object() };
            var source = new Queue<object>( expected );
            var target = new QueueAdapter<object>( source );
            var actual = new object[3];

            // act
            target.CopyTo( actual, 0 );

            // assert
            Assert.True( actual.SequenceEqual( expected ) );
        }
        public void ClearShouldClearSourceQueue()
        {
            // arrange
            var source = new Queue<object>();
            var target = new QueueAdapter<object>( source );

            target.Enqueue( new object() );

            // act
            target.Clear();

            // assert
            Assert.Equal( 0, source.Count );
            Assert.Equal( 0, target.Count );
        }
Beispiel #20
0
        static void AddMiramarAdapter(IMessageQueueFactory queueFactory)
        {
            var queueAdapter = new QueueAdapter(queueFactory)
            {
                Name   = "miramar",
                Layout = "${message} ${onexception:${newline}${exception:format=message,method,tostring}}"
            };

            var logConfiguration = LogManager.Configuration;

            logConfiguration.AddTarget("Queue", queueAdapter);
            logConfiguration.LoggingRules.Add(new LoggingRule("Client-*", LogLevel.Info, queueAdapter));

            LogManager.Configuration = logConfiguration;
        }
        public void DequeueShouldDequeueSourceQueue()
        {
            // arrange
            var source = new Queue<object>();
            var target = new QueueAdapter<object>( source );

            target.Enqueue( new object() );

            var expected = source.Peek();

            // act
            var actual = target.Dequeue();

            // assert
            Assert.Equal( expected, actual );
        }
Beispiel #22
0
        /// <summary>
        /// The main function of the the tester program.
        /// </summary>
        public static void Main()
        {
            var playerState = new MockPlayerState();
            var nowPlaying  = new MockNowPlaying();
            var player      = new MockPlayer(playerState, nowPlaying);
            var library     = new MockLibrary();

            var libraryApiAdapter    = new LibraryApiAdapter(library);
            var nowPlayingApiAdapter = new NowPlayingApiAdapter(nowPlaying, player);
            var outputApiAdapter     = new MockOutputApiAdapter();
            var playerApiAdapter     = new MockPlayerApiAdapter(playerState, player);
            var queueAdapter         = new QueueAdapter();
            var trackApiAdapter      = new TrackApiAdapter(player);
            var baseStoragePath      = Path.GetTempPath();

            var dependencies = new MusicBeeDependencies(
                libraryApiAdapter,
                nowPlayingApiAdapter,
                outputApiAdapter,
                playerApiAdapter,
                queueAdapter,
                trackApiAdapter,
                null,
                baseStoragePath,
                "1.0.0");

            var remoteBootstrap      = new RemoteBootstrap();
            var musicBeeRemotePlugin = remoteBootstrap.BootStrap(dependencies);

            musicBeeRemotePlugin.Start();

            while (true)
            {
                Console.WriteLine(Resources.Input);
                var line = Console.ReadLine();
                if (line != "q!")
                {
                    continue;
                }

                musicBeeRemotePlugin.Terminate();
                remoteBootstrap.Dispose();
                Console.WriteLine(Resources.Quitting);
                break;
            }
        }
        private static void AdapterDemo()
        {
            QueueAdapter client = new QueueAdapter();

            client.Push("A");
            client.Push("B");
            client.Push("C");
            client.Push("D");
            client.Push("E");
            Console.WriteLine("FIFO output");
            Console.WriteLine("{0}", client.Pop());
            Console.WriteLine("{0}", client.Pop());
            Console.WriteLine("{0}", client.Pop());
            Console.WriteLine("{0}", client.Pop());
            Console.WriteLine("{0}", client.Pop());
            Console.ReadLine();
        }
Beispiel #24
0
        public Queue()
        {
            try
            {
                var builder      = new ComDependencyBuilder();
                var dependencies = builder.ComDependencies;

                _queueAdapter           = dependencies.QueueAdapter;
                _printJobAdapterFactory = _queueAdapter.PrintJobAdapterFactory;
                _jobInfoQueue           = _queueAdapter.JobInfoQueue;
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                throw;
            }
        }
Beispiel #25
0
        public override void Run()
        {
            var queue = QueueAdapter.Make(UseSecondaryQueue, QueueSettings, MailSettings);
            ICommandEnvelope commandEnvelope;

            while (ShouldConsumeAll)
            {
                try
                {
                    commandEnvelope = queue.Consume();
                    if (commandEnvelope == null)
                    {
                        Thread.Sleep(5000);
                    }
                }
                catch (Exception exception)
                {
                    Error(exception.Message);
                }
            }

            if (ShouldConsumeAll)
            {
                return;
            }

            for (var i = 0; i < Count; i++)
            {
                try
                {
                    commandEnvelope = queue.Consume();
                    if (commandEnvelope == null)
                    {
                        return;
                    }
                }
                catch (Exception exception)
                {
                    Error(exception.Message);
                }
            }
        }
Beispiel #26
0
        public SemaphoreQueue([NotNull] TQueue queue, [NotNull] ProducerConsumerQueueOptions <T> options, CancellationToken token = default(CancellationToken))
            : base(options, token)
        {
            bool   createdNew;
            string name = Name.ToNullIfEmpty()?.LeftMax(Win32.MAX_PATH);

            if (name == null)
            {
                _semaphore = new Semaphore(Threads, Threads, null, out createdNew);
            }
            else
            {
                try
                {
                    _semaphore = Semaphore.OpenExisting(name);
                    createdNew = false;
                }
                catch (WaitHandleCannotBeOpenedException)
                {
                    _semaphore = new Semaphore(Threads, Threads, name, out createdNew);
                }
            }

            if (createdNew && options is SemaphoreQueueOptions <T> {
                Security : { }
            } semaphoreQueueOptions)
            {
                // see https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore.openexisting for examples
                _semaphore.SetAccessControl(semaphoreQueueOptions.Security);
            }

            IsOwner      = createdNew;
            _queue       = new QueueAdapter <TQueue, T>(queue);
            _allWorkDone = new ManualResetEvent(false);
            new Thread(Consume)
            {
                IsBackground = IsBackground,
                Priority     = Priority
            }.Start();
        }
Beispiel #27
0
        public override void Run()
        {
            var settings = InEngineSettings.Make();
            var queue    = QueueAdapter.Make(true, settings.Queue, settings.Mail);

            queue.ClearPendingQueue();
            queue.Publish(new Echo()
            {
                VerbatimText = "Core echo command."
            });
            new Length {
                QueueSettings = settings.Queue,
                MailSettings  = settings.Mail,
            }.Run();
            new Peek {
                PendingQueue  = true,
                QueueSettings = settings.Queue,
                MailSettings  = settings.Mail,
            }.Run();


            Enqueue.Command(() => Console.WriteLine("Core lambda command."))
            .Dispatch();
            Enqueue.Command(() => new Echo {
                VerbatimText = "Core echo command in a lambda command."
            }.Run())
            .Dispatch();
            Enqueue.Command(new AlwaysFail())
            .WriteOutputTo("queueWriteTest-TheFileShouldNotExist.txt")
            .WithRetries(4)
            .Dispatch();

            Enqueue.Commands(new[] {
                new Echo {
                    VerbatimText = "Chain Link 1",
                    MailSettings = settings.Mail,
                },
                new Echo {
                    VerbatimText = "Chain Link 2",
                    MailSettings = settings.Mail,
                },
            }).Dispatch();

            Enqueue.Commands(new List <AbstractCommand> {
                new Echo {
                    VerbatimText = "Chain Link A",
                    MailSettings = settings.Mail,
                },
                new AlwaysFail(),
                new Echo {
                    VerbatimText = "Chain Link C",
                    MailSettings = settings.Mail,
                },
            }).Dispatch();

            Enqueue.Commands(new List <AbstractCommand> {
                new Echo {
                    VerbatimText = "Chain Link A",
                    MailSettings = settings.Mail,
                },
                new AlwaysFail(),
                new Echo {
                    VerbatimText = "Chain Link C",
                    MailSettings = settings.Mail,
                },
            }).Dispatch();

            Enqueue.Commands(Enumerable.Range(0, 10).Select(x => new AlwaysSucceed() as AbstractCommand).ToList())
            .Dispatch();

            var queueWriteIntegrationTest  = "queueWriteIntegrationTest.txt";
            var queueAppendIntegrationTest = "queueAppendIntegrationTest.txt";

            File.Delete(queueWriteIntegrationTest);
            File.Delete(queueAppendIntegrationTest);
            Enqueue.Command(new Echo {
                VerbatimText = "Core echo command.",
                MailSettings = settings.Mail,
            })
            .PingAfter("http://www.google.com")
            .PingBefore("http://www.google.com")
            .EmailOutputTo("*****@*****.**")
            .WriteOutputTo(queueWriteIntegrationTest)
            .AppendOutputTo(queueAppendIntegrationTest)
            .Dispatch();
        }
		public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState)
		{
			var rootView = inflater.Inflate (Resource.Layout.fragment_list, container, false);

			skipPrevious = rootView.FindViewById<ImageButton> (Resource.Id.skip_previous);
			skipPrevious.Enabled = false;
			skipPrevious.SetOnClickListener (buttonListener);

			skipNext = rootView.FindViewById<ImageButton> (Resource.Id.skip_next);
			skipNext.Enabled = false;
			skipNext.SetOnClickListener (buttonListener);

			playPause = rootView.FindViewById<ImageButton> (Resource.Id.play_pause);
			playPause.Enabled = true;
			playPause.SetOnClickListener (buttonListener);

			queueAdapter = new QueueAdapter (Activity);

			var listViewClickListener = new ListViewClickListener ();
			listViewClickListener.OnItemClickImpl = (parent, view, position, id) => {
				var item = queueAdapter.GetItem (position);
				transportControls.SkipToQueueItem (item.QueueId);
			};

			var listView = rootView.FindViewById<ListView> (Resource.Id.list_view);
			listView.Adapter = queueAdapter;
			listView.Focusable = true;
			listView.OnItemClickListener = listViewClickListener;

			mediaBrowser = new MediaBrowser (Activity,
				new ComponentName (Activity, Java.Lang.Class.FromType (typeof(MusicService))),
				connectionCallback, null);

			return rootView;
		}
Beispiel #29
0
        /// <summary>
        /// Initiates searching routine.
        /// </summary>
        /// <param name="initial">Initial set of waves to propagate (e.g. <see cref="Initialize4x2D{TWave}"/>).</param>
        /// <param name="map">Map to navigate (e.g. <see cref="GridMap"/>).</param>
        /// <param name="queue">Queue to store and order waves between iterations (e.g. <see cref="QueueAdapter{TWave}"/>).</param>
        /// <returns>Waves that satisfy their respective <see cref="IWaveBehaviour{TWave}.AcceptanceCondition"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown if both <paramref name="map"/> and <see cref="DefaultMap"/> are nulls, or <paramref name="initial"/> is null.</exception>
        public IEnumerable <TWave> Search(IInitializationStrategy <TWave> initial, IMap <TWave> map, IProcessingQueue <TWave> queue)
        {
            _iterations = 0;
            _waves      = 0;

            map   = map ?? DefaultMap;
            queue = queue ?? DefaultProcessingQueue;

            {
                var errors = new List <string>(2);
                if (map == null)
                {
                    errors.Add(nameof(map));
                }
                if (initial == null)
                {
                    errors.Add(nameof(initial));
                }
                if (errors.Count > 0)
                {
                    throw new ArgumentNullException(string.Join(", ", errors));
                }
            }

            if (queue == null)
            {
                queue = new QueueAdapter <TWave>();
                Debug.WriteLine("ECHO: Processing queue is not set. QueueAdapter<" + nameof(TWave) + "> (breadth-first search) will be used.");
            }
            else
            {
                queue.Clear();
            }

            {
                var waves = initial.Execute();
                if (waves == null || waves.Length == 0)
                {
                    yield break;
                }
                for (int i = 0; i < waves.Length; i++)
                {
                    queue.Enqueue(waves[i]);
                }
            }

            while (queue.Count > 0)
            {
                var wave = queue.Dequeue();

                _iterations++;
                _waves = queue.Count;
                Debug.WriteLine($"ECHO: iteration {_iterations}, waves {_waves}, processing {wave};");

                Vector3 location;
                if (!map.Navigate(wave, out location))
                {
                    continue;
                }

                wave.Relocate(location);
                wave.Update?.Execute(wave);

                if (wave.FadeCondition?.Check(wave) == true)
                {
                    continue;
                }

                if (wave.AcceptanceCondition?.Check(wave) == true)
                {
                    yield return(wave);

                    continue;
                }

                var waves = wave.Propagation?.Execute(wave);
                if (waves != null)
                {
                    for (var i = 0; i < waves.Length; i++)
                    {
                        if (waves[i] == null)
                        {
                            continue;
                        }
                        queue.Enqueue(waves[i]);
                    }
                }

                queue.Enqueue(wave);
            }
        }
 public ComDependencies(PdfCreatorAdapter pdfCreatorAdapter, QueueAdapter queueAdapter)
 {
     PdfCreatorAdapter = pdfCreatorAdapter;
     QueueAdapter      = queueAdapter;
 }
 public IQueueLifeCycleBuilder ToSecondaryQueue()
 {
     QueueAdapter = QueueAdapter.Make(true, QueueSettings, MailSettings);
     return(this);
 }
 public IQueueLifeCycleBuilder ToPrimaryQueue()
 {
     QueueAdapter = QueueAdapter.Make(false, QueueSettings, MailSettings);
     return(this);
 }
Beispiel #33
0
 public override async Task Execute()
 {
     var stepConfig   = this._StepConfig;
     var queueAdapter = new QueueAdapter(stepConfig.QueueName, stepConfig.ConnectionString);
     await queueAdapter.SendAtOnce(stepConfig.MessageContents);
 }
Beispiel #34
0
 public override void Run()
 {
     PrintQueueLengths(QueueAdapter.Make(false, QueueSettings, MailSettings));
     PrintQueueLengths(QueueAdapter.Make(true, QueueSettings, MailSettings));
 }
Beispiel #35
0
        /// <summary>
        /// Initializes the MusicBee Remote plugin.
        /// </summary>
        /// <param name="apiInterfacePtr">The API interface of MusicBee.</param>
        /// <returns>The plugin info.</returns>
        public PluginInfo Initialise(IntPtr apiInterfacePtr)
        {
            _api = default;
            _api.Initialise(apiInterfacePtr);

            _about.PluginInfoVersion = PluginInfoVersion;
            _about.Name              = "MusicBee Remote: Plugin";
            _about.Description       = "Remote Control for server to be used with android application.";
            _about.Author            = "Konstantinos Paparas (aka Kelsos)";
            _about.TargetApplication = "MusicBee Remote";

            var version        = Assembly.GetExecutingAssembly().GetName().Version;
            var currentVersion = version.ToString();

            // current only applies to artwork, lyrics or instant messenger name that appears in the provider drop down selector or target Instant Messenger
            _about.Type                 = PluginType.General;
            _about.VersionMajor         = Convert.ToInt16(version.Major);
            _about.VersionMinor         = Convert.ToInt16(version.Minor);
            _about.Revision             = Convert.ToInt16(version.Build);
            _about.MinInterfaceVersion  = MinInterfaceVersion;
            _about.MinApiRevision       = MinApiRevision;
            _about.ReceiveNotifications = ReceiveNotificationFlags.PlayerEvents;

            if (_api.ApiRevision < MinApiRevision)
            {
                return(_about);
            }

            // Initialize the required adapters for the plugin to operate.
            var libraryApiAdapter    = new LibraryApiAdapter(_api);
            var nowPlayingApiAdapter = new NowPlayingApiAdapter(_api);
            var outputApiAdapter     = new OutputApiAdapter(_api);
            var playerApiAdapter     = new PlayerApiAdapter(_api);
            var queueAdapter         = new QueueAdapter(_api);
            var trackApiAdapter      = new TrackApiAdapter(_api);
            var invokeHandler        = new InvokeHandler(_api);
            var baseStoragePath      = _api.Setting_GetPersistentStoragePath();

            var dependencies = new MusicBeeDependencies(
                libraryApiAdapter,
                nowPlayingApiAdapter,
                outputApiAdapter,
                playerApiAdapter,
                queueAdapter,
                trackApiAdapter,
                invokeHandler,
                baseStoragePath,
                currentVersion);

            _bootstrap            = new RemoteBootstrap();
            _musicBeeRemotePlugin = _bootstrap.BootStrap(dependencies);

            const string menuItemDescription = "Information Panel of the MusicBee Remote";

            _api.MB_AddMenuItem("mnuTools/MusicBee Remote: Settings", menuItemDescription, MenuItemClicked);

#if DEBUG
            // Experimental feature only supported on debug
            AddPartyMode();
#endif

            _musicBeeRemotePlugin.Start();

            return(_about);
        }