// Path: src/main/java/org/nextrtc/signalingserver/repository/ConversationRepository.java
// public interface ConversationRepository extends Closeable {
//     Optional<Conversation> findBy(String id);
// 
//     Optional<Conversation> findBy(Member from);
// 
//     Conversation remove(String id);
// 
//     Conversation save(Conversation conversation);
// 
//     Collection<String> getAllIds();
// }
// 
// Path: src/main/java/org/nextrtc/signalingserver/repository/MemberRepository.java
// public interface MemberRepository extends Closeable{
//     Collection<String> getAllIds();
// 
//     Optional<Member> findBy(String id);
// 
//     Member register(Member member);
// 
//     void unregister(String id);
// 
// }


import lombok.extern.slf4j.Slf4j;
import org.nextrtc.signalingserver.repository.ConversationRepository;
import org.nextrtc.signalingserver.repository.MemberRepository;
import org.springframework.stereotype.Component;
import javax.inject.Inject;
import java.io.Closeable;
import java.io.IOException;
import java.util.concurrent.ScheduledExecutorService;
package org.nextrtc.signalingserver.domain;



@Slf4j
@Component
class CloseableContext implements Closeable {
    private final ScheduledExecutorService scheduler;
    private final RTCConnections connections;
    private final MemberRepository members;
// Path: src/main/java/org/nextrtc/signalingserver/repository/ConversationRepository.java
// public interface ConversationRepository extends Closeable {
//     Optional<Conversation> findBy(String id);
// 
//     Optional<Conversation> findBy(Member from);
// 
//     Conversation remove(String id);
// 
//     Conversation save(Conversation conversation);
// 
//     Collection<String> getAllIds();
// }
// 
// Path: src/main/java/org/nextrtc/signalingserver/repository/MemberRepository.java
// public interface MemberRepository extends Closeable{
//     Collection<String> getAllIds();
// 
//     Optional<Member> findBy(String id);
// 
//     Member register(Member member);
// 
//     void unregister(String id);
// 
// }


// Path: src/main/java/org/nextrtc/signalingserver/domain/CloseableContext.java
import lombok.extern.slf4j.Slf4j;
import org.nextrtc.signalingserver.repository.ConversationRepository;
import org.nextrtc.signalingserver.repository.MemberRepository;
import org.springframework.stereotype.Component;
import javax.inject.Inject;
import java.io.Closeable;
import java.io.IOException;
import java.util.concurrent.ScheduledExecutorService;

package org.nextrtc.signalingserver.domain;



@Slf4j
@Component
class CloseableContext implements Closeable {
    private final ScheduledExecutorService scheduler;
    private final RTCConnections connections;
    private final MemberRepository members;
    private final ConversationRepository conversations;