code: public void profile(IoEventType type) {
          switch (type) {
              case MESSAGE_RECEIVED :
                  profileMessageReceived = true;
                  
                  if (messageReceivedTimerWorker == null) {
                      messageReceivedTimerWorker = new TimerWorker();
                  }
                  
                  return;
                  
              case MESSAGE_SENT :
                  profileMessageSent = true;
                  
                  if (messageSentTimerWorker == null) {
                      messageSentTimerWorker = new TimerWorker();
                  }
                  
                  return;
                  
              case SESSION_CREATED :
                  profileSessionCreated = true;
                  
                  if (sessionCreatedTimerWorker == null) {
                      sessionCreatedTimerWorker = new TimerWorker();
                  }
                  
              case SESSION_OPENED :
                  profileSessionOpened = true;
                  
                  if (sessionOpenedTimerWorker == null) {
                      sessionOpenedTimerWorker = new TimerWorker();
                  }
                  
              case SESSION_IDLE :
                  profileSessionIdle = true;
                  
                  if (sessionIdleTimerWorker == null) {
                      sessionIdleTimerWorker = new TimerWorker();
                  }
                  
              case SESSION_CLOSED :
                  profileSessionClosed = true;
                  
                  if (sessionClosedTimerWorker == null) {
                      sessionClosedTimerWorker = new TimerWorker();
                  }
          }
      }
docs: Set the {@link IoEventType} to be profiled
  
  @param type The {@link IoEventType} to profile