// Path: impl/src/main/java/io/perfmark/impl/MarkHolder.java
// public abstract class MarkHolder {
// 
//   public static final int NO_MAX_MARKS = -1;
// 
//   public abstract void start(long gen, String taskName, String tagName, long tagId, long nanoTime);
// 
//   public abstract void start(long gen, String taskName, long nanoTime);
// 
//   public abstract void start(long gen, String taskName, String subTaskName, long nanoTime);
// 
//   public abstract void link(long gen, long linkId);
// 
//   public abstract void stop(long gen, long nanoTime);
// 
//   public abstract void stop(long gen, String taskName, String tagName, long tagId, long nanoTime);
// 
//   public abstract void stop(long gen, String taskName, long nanoTime);
// 
//   public abstract void stop(long gen, String taskName, String subTaskName, long nanoTime);
// 
//   public abstract void event(long gen, String eventName, String tagName, long tagId, long nanoTime);
// 
//   public abstract void event(long gen, String eventName, long nanoTime);
// 
//   public abstract void event(long gen, String eventName, String subEventName, long nanoTime);
// 
//   public abstract void attachTag(long gen, String tagName, long tagId);
// 
//   public abstract void attachKeyedTag(long gen, String name, String value);
// 
//   public abstract void attachKeyedTag(long gen, String name, long value0);
// 
//   public abstract void attachKeyedTag(long gen, String name, long value0, long value1);
// 
//   public abstract void resetForTest();
// 
//   public abstract List<Mark> read(boolean concurrentWrites);
// 
//   public int maxMarks() {
//     return NO_MAX_MARKS;
//   }
// 
//   protected MarkHolder() {}
// }
// 
// Path: impl/src/main/java/io/perfmark/impl/MarkHolderProvider.java
// public abstract class MarkHolderProvider {
// 
//   protected MarkHolderProvider() {}
// 
//   /**
//    * To be removed in 0.26.0
//    *
//    * @return the new MarkHolder for the current thread.
//    */
//   @Deprecated
//   public MarkHolder create() {
//     throw new UnsupportedOperationException();
//   }
// 
//   /**
//    * Creates a new MarkHolder.  Mark holders are always mutated by the thread that created them, (e.g. THIS thread),
//    * but may be read by other threads.
//    *
//    * @param markHolderId the Unique ID associated with the Mark Holder.   This exists as a work around to Java's
//    *                     thread ID, which does not guarantee they will not be reused.
//    * @return the new MarkHolder for the current thread.
//    * @since 0.24.0
//    */
//   public MarkHolder create(long markHolderId) {
//     return create();
//   }
// }


import io.perfmark.impl.MarkHolder;
import io.perfmark.impl.MarkHolderProvider;
/*
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.perfmark.java6;


final class SecretSynchronizedMarkHolderProvider {

  public static final class SynchronizedMarkHolderProvider extends MarkHolderProvider {

    public SynchronizedMarkHolderProvider() {}

    @Override
    @SuppressWarnings("deprecation")
// Path: impl/src/main/java/io/perfmark/impl/MarkHolder.java
// public abstract class MarkHolder {
// 
//   public static final int NO_MAX_MARKS = -1;
// 
//   public abstract void start(long gen, String taskName, String tagName, long tagId, long nanoTime);
// 
//   public abstract void start(long gen, String taskName, long nanoTime);
// 
//   public abstract void start(long gen, String taskName, String subTaskName, long nanoTime);
// 
//   public abstract void link(long gen, long linkId);
// 
//   public abstract void stop(long gen, long nanoTime);
// 
//   public abstract void stop(long gen, String taskName, String tagName, long tagId, long nanoTime);
// 
//   public abstract void stop(long gen, String taskName, long nanoTime);
// 
//   public abstract void stop(long gen, String taskName, String subTaskName, long nanoTime);
// 
//   public abstract void event(long gen, String eventName, String tagName, long tagId, long nanoTime);
// 
//   public abstract void event(long gen, String eventName, long nanoTime);
// 
//   public abstract void event(long gen, String eventName, String subEventName, long nanoTime);
// 
//   public abstract void attachTag(long gen, String tagName, long tagId);
// 
//   public abstract void attachKeyedTag(long gen, String name, String value);
// 
//   public abstract void attachKeyedTag(long gen, String name, long value0);
// 
//   public abstract void attachKeyedTag(long gen, String name, long value0, long value1);
// 
//   public abstract void resetForTest();
// 
//   public abstract List<Mark> read(boolean concurrentWrites);
// 
//   public int maxMarks() {
//     return NO_MAX_MARKS;
//   }
// 
//   protected MarkHolder() {}
// }
// 
// Path: impl/src/main/java/io/perfmark/impl/MarkHolderProvider.java
// public abstract class MarkHolderProvider {
// 
//   protected MarkHolderProvider() {}
// 
//   /**
//    * To be removed in 0.26.0
//    *
//    * @return the new MarkHolder for the current thread.
//    */
//   @Deprecated
//   public MarkHolder create() {
//     throw new UnsupportedOperationException();
//   }
// 
//   /**
//    * Creates a new MarkHolder.  Mark holders are always mutated by the thread that created them, (e.g. THIS thread),
//    * but may be read by other threads.
//    *
//    * @param markHolderId the Unique ID associated with the Mark Holder.   This exists as a work around to Java's
//    *                     thread ID, which does not guarantee they will not be reused.
//    * @return the new MarkHolder for the current thread.
//    * @since 0.24.0
//    */
//   public MarkHolder create(long markHolderId) {
//     return create();
//   }
// }


// Path: java6/src/main/java/io/perfmark/java6/SecretSynchronizedMarkHolderProvider.java
import io.perfmark.impl.MarkHolder;
import io.perfmark.impl.MarkHolderProvider;

/*
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.perfmark.java6;


final class SecretSynchronizedMarkHolderProvider {

  public static final class SynchronizedMarkHolderProvider extends MarkHolderProvider {

    public SynchronizedMarkHolderProvider() {}

    @Override
    @SuppressWarnings("deprecation")
    public MarkHolder create() {