Introduce a new client listener interface for the Java agent
[lttng-ust.git] / liblttng-ust-java-agent / java / lttng-ust-agent-common / org / lttng / ust / agent / AbstractLttngAgent.java
index 64b33b6c596d96a5a80dfb04b9d064c46a541fdc..c3fc339bc628b09234e1ed41962f2197fb221b8f 100644 (file)
@@ -28,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.lttng.ust.agent.client.ILttngTcpClientListener;
 import org.lttng.ust.agent.client.LttngTcpSessiondClient;
 
 /**
@@ -37,7 +38,8 @@ import org.lttng.ust.agent.client.LttngTcpSessiondClient;
  * @param <T>
  *            The type of logging handler that should register to this agent
  */
-public abstract class AbstractLttngAgent<T extends ILttngHandler> implements ILttngAgent<T> {
+public abstract class AbstractLttngAgent<T extends ILttngHandler>
+               implements ILttngAgent<T>, ILttngTcpClientListener {
 
        private static final String WILDCARD = "*";
        private static final int INIT_TIMEOUT = 3; /* Seconds */
@@ -134,14 +136,14 @@ public abstract class AbstractLttngAgent<T extends ILttngHandler> implements ILt
                }
                String rootClientThreadName = "Root sessiond client started by agent: " + this.getClass().getSimpleName();
 
-               rootSessiondClient = new LttngTcpSessiondClient(this, true);
+               rootSessiondClient = new LttngTcpSessiondClient(this, getDomain().value(), true);
                rootSessiondClientThread = new Thread(rootSessiondClient, rootClientThreadName);
                rootSessiondClientThread.setDaemon(true);
                rootSessiondClientThread.start();
 
                String userClientThreadName = "User sessiond client started by agent: " + this.getClass().getSimpleName();
 
-               userSessiondClient = new LttngTcpSessiondClient(this, false);
+               userSessiondClient = new LttngTcpSessiondClient(this, getDomain().value(), false);
                userSessiondClientThread = new Thread(userSessiondClient, userClientThreadName);
                userSessiondClientThread.setDaemon(true);
                userSessiondClientThread.start();
@@ -186,15 +188,7 @@ public abstract class AbstractLttngAgent<T extends ILttngHandler> implements ILt
 
        }
 
-       /**
-        * Callback for the TCP clients to notify the agent that a request for
-        * enabling an event was sent from the session daemon.
-        *
-        * @param eventName
-        *            The name of the event that was requested to be enabled.
-        * @return Since we do not track individual sessions, right now this command
-        *         cannot fail. It will always return true.
-        */
+       @Override
        public boolean eventEnabled(String eventName) {
                if (eventName.equals(WILDCARD)) {
                        enabledWildcards.incrementAndGet();
@@ -210,15 +204,7 @@ public abstract class AbstractLttngAgent<T extends ILttngHandler> implements ILt
                return incrementEventCount(eventName, enabledEvents);
        }
 
-       /**
-        * Callback for the TCP clients to notify the agent that a request for
-        * disabling an event was sent from the session daemon.
-        *
-        * @param eventName
-        *            The name of the event that was requested to be disabled.
-        * @return True if the command completed successfully, false if we should
-        *         report an error (event was not enabled, etc.)
-        */
+       @Override
        public boolean eventDisabled(String eventName) {
                if (eventName.equals(WILDCARD)) {
                        int newCount = enabledWildcards.decrementAndGet();
@@ -239,6 +225,20 @@ public abstract class AbstractLttngAgent<T extends ILttngHandler> implements ILt
                return decrementEventCount(eventName, enabledEvents);
        }
 
+       @Override
+       public Iterable<String> listEnabledEvents() {
+               List<String> events = new LinkedList<String>();
+
+               if (enabledWildcards.get() > 0) {
+                       events.add(WILDCARD);
+               }
+               for (String prefix : enabledEventPrefixes.keySet()) {
+                       events.add(new String(prefix + WILDCARD));
+               }
+               events.addAll(enabledEvents.keySet());
+               return events;
+       }
+
        @Override
        public boolean isEventEnabled(String eventName) {
                /* If at least one session enabled the "*" wildcard, send the event */
@@ -260,20 +260,6 @@ public abstract class AbstractLttngAgent<T extends ILttngHandler> implements ILt
                return false;
        }
 
-       @Override
-       public Iterable<String> listEnabledEvents() {
-               List<String> events = new LinkedList<String>();
-
-               if (enabledWildcards.get() > 0) {
-                       events.add(WILDCARD);
-               }
-               for (String prefix : enabledEventPrefixes.keySet()) {
-                       events.add(new String(prefix + WILDCARD));
-               }
-               events.addAll(enabledEvents.keySet());
-               return events;
-       }
-
        private static boolean incrementEventCount(String eventName, Map<String, Integer> eventMap) {
                synchronized (eventMap) {
                        Integer count = eventMap.get(eventName);
This page took 0.025242 seconds and 5 git commands to generate.