예제 #1
0
 internal void OnTraceComplete()
 {
     WorkerSet.FinalizeObjects();
     ConnectionSet.FinalizeObjects();
     StreamSet.FinalizeObjects();
     DatapathSet.FinalizeObjects();
 }
예제 #2
0
        private void button_add_worker_Click(object sender, EventArgs e)
        {
            if (Convert.ToString(textBox_id_worker.Text) != "" && Convert.ToString(textBox_name.Text) != "" && Convert.ToString(textBox_surrname.Text) != "" && Convert.ToString(comboBox_position.Text) != "" && Convert.ToString(textBox_city.Text) != "" && Convert.ToString(textBox_street.Text) != "" && Convert.ToString(textBox_house.Text) != "" && Convert.ToString(textBox_tmp_pass.Text) != "" && Convert.ToString(textBox_phone_number.Text) != "")
            {
                using (DataBaseDataContext db = new DataBaseDataContext())
                {
                    bool confirm = false;
                    try
                    {
                        WorkerSet worker = new WorkerSet()
                        {
                            name     = Convert.ToString(textBox_name.Text),
                            surname  = Convert.ToString(textBox_surrname.Text),
                            position = Convert.ToString(comboBox_position.Text),
                            PESEL    = Convert.ToString(textBox_id_worker.Text),

                            date_of_birth = Convert.ToDateTime(dateTimePicker_date_birth.Text),
                            city          = Convert.ToString(textBox_city.Text),
                            city_code     = Convert.ToString(textBox_code.Text),
                            street        = Convert.ToString(textBox_street.Text),
                            house         = Convert.ToString(textBox_house.Text),

                            password = Convert.ToString(textBox_tmp_pass.Text),
                            phone_nr = Convert.ToString(textBox_phone_number.Text)
                        };
                        db.WorkerSets.InsertOnSubmit(worker);
                        db.SubmitChanges();
                        confirm = true;
                    }
                    catch
                    {
                        MessageBox.Show("Bład dodania pracownika", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }



                    if (confirm)
                    {
                        MessageBox.Show("Dodano pracownika", "Potwierdzenie", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        textBox_city.Clear();
                        textBox_code.Clear();
                        textBox_house.Clear();
                        textBox_id_worker.Clear();
                        textBox_name.Clear();
                        textBox_street.Clear();
                        textBox_phone_number.Clear();
                        textBox_surrname.Clear();
                        textBox_tmp_pass.Clear();
                    }
                }
            }
            else
            {
                MessageBox.Show("Należy uzupełnić wszystkie pola", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #3
0
        private void SetupWorkerSets()
        {
            ICollection <MemoryHandler> memoryHandlers = SharlayanMemoryManager.Instance.GetHandlers();

            foreach (MemoryHandler memoryHandler in memoryHandlers)
            {
                WorkerSet workerSet = new WorkerSet(memoryHandler);
                this._workerSets.AddOrUpdate(memoryHandler.Configuration.ProcessModel.ProcessID, workerSet, (k, v) => workerSet);
            }
        }
예제 #4
0
        internal void AddEvent(QuicEvent evt)
        {
            switch (evt.ObjectType)
            {
            case QuicObjectType.Global:
                if (evt.EventId >= QuicEventId.ApiEnter &&
                    evt.EventId <= QuicEventId.ApiExitStatus)
                {
                    DataAvailableFlags |= QuicDataAvailableFlags.Api;
                }
                break;

            case QuicObjectType.Worker:
                DataAvailableFlags |= QuicDataAvailableFlags.Worker;
                WorkerSet.FindOrCreateActive(evt).AddEvent(evt, this);
                break;

            case QuicObjectType.Connection:
                DataAvailableFlags |= QuicDataAvailableFlags.Connection;
                var Conn = ConnectionSet.FindOrCreateActive(evt);
                Conn.AddEvent(evt, this);
                LastConnections[evt.ThreadId] = Conn;
                break;

            case QuicObjectType.Stream:
                DataAvailableFlags |= QuicDataAvailableFlags.Stream;
                StreamSet.FindOrCreateActive(evt).AddEvent(evt, this);
                break;

            case QuicObjectType.Datapath:
                DatapathSet.FindOrCreateActive(evt).AddEvent(evt, this);
                if (evt.EventId == QuicEventId.DatapathSend &&
                    LastConnections.TryGetValue(evt.ThreadId, out var LastConn))
                {
                    LastConn.AddEvent(evt, this);
                }
                break;

            default:
                break;
            }

            Events.Add(evt);
        }
예제 #5
0
        internal void AddEvent(QuicEvent evt)
        {
            switch (evt.ObjectType)
            {
            case QuicObjectType.Global:
                if (evt.EventId >= QuicEventId.ApiEnter &&
                    evt.EventId <= QuicEventId.ApiExitStatus)
                {
                    DataAvailableFlags |= QuicDataAvailableFlags.Api;
                }
                break;

            case QuicObjectType.Worker:
                DataAvailableFlags |= QuicDataAvailableFlags.Worker;
                WorkerSet.FindOrCreateActive(new QuicObjectKey(evt)).AddEvent(evt, this);
                break;

            case QuicObjectType.Connection:
                DataAvailableFlags |= QuicDataAvailableFlags.Connection;
                ConnectionSet.FindOrCreateActive(new QuicObjectKey(evt)).AddEvent(evt, this);
                break;

            case QuicObjectType.Stream:
                DataAvailableFlags |= QuicDataAvailableFlags.Stream;
                StreamSet.FindOrCreateActive(new QuicObjectKey(evt)).AddEvent(evt, this);
                break;

            case QuicObjectType.Datapath:
                DatapathSet.FindOrCreateActive(new QuicObjectKey(evt)).AddEvent(evt, this);
                break;

            default:
                break;
            }

            Events.Add(evt);
        }
예제 #6
0
 internal QuicWorker FindOrCreateWorker(QuicObjectKey key)
 {
     return(WorkerSet.FindOrCreateActive(key));
 }
 public Worker(WorkerSet <TLock, TState> set, int id)
 {
     _set = set;
     _id  = id;
     _rnd = new Random(id);
 }