35 lines
1.0 KiB
Java
35 lines
1.0 KiB
Java
package ru.serega6531.packmate.service;
|
|
|
|
import lombok.Getter;
|
|
import org.pcap4j.core.PcapNativeException;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import ru.serega6531.packmate.model.enums.SubscriptionMessageType;
|
|
import ru.serega6531.packmate.model.pojo.SubscriptionMessage;
|
|
import ru.serega6531.packmate.pcap.PcapWorker;
|
|
|
|
@Service
|
|
public class PcapService {
|
|
|
|
@Getter
|
|
private boolean started = false;
|
|
|
|
private final SubscriptionService subscriptionService;
|
|
private final PcapWorker worker;
|
|
|
|
@Autowired
|
|
public PcapService(SubscriptionService subscriptionService, PcapWorker worker) {
|
|
this.subscriptionService = subscriptionService;
|
|
this.worker = worker;
|
|
}
|
|
|
|
public synchronized void start() throws PcapNativeException {
|
|
if(!started) {
|
|
started = true;
|
|
subscriptionService.broadcast(new SubscriptionMessage(SubscriptionMessageType.PCAP_STARTED, null));
|
|
worker.start();
|
|
}
|
|
}
|
|
|
|
}
|