public class RollingFileMessageWriter extends Object implements MessageWriter
the message writer MUST be assigned a rolling policy, and MAY be assigned a cleanup policy. Note that the cleanup policy will only be triggered when the rolling policy triggers a file update.
Also note that the RollingFileMessageWriter is NOT thread safe. So
if you need to write to the message writer from multiple threads, you
will either have to synchronize the calls yourself, or use the
QueuedMessageWriter
.
Modifier and Type | Class and Description |
---|---|
static interface |
RollingFileMessageWriter.CleanupPolicy
Interface for cleanup policy implementations.
|
static interface |
RollingFileMessageWriter.CurrentFileUpdater
Interface for calling back to the rolling file message writen when a file roll
is supposed to happen.
|
static interface |
RollingFileMessageWriter.RollingPolicy
Interface for rolling policy implementations.
|
Constructor and Description |
---|
RollingFileMessageWriter(File directory,
Serializer serializer,
String currentName,
RollingFileMessageWriter.RollingPolicy rollingPolicy)
Create a rolling file message writer without a cleanup policy.
|
RollingFileMessageWriter(File directory,
Serializer serializer,
String currentName,
RollingFileMessageWriter.RollingPolicy rollingPolicy,
RollingFileMessageWriter.CleanupPolicy cleanupPolicy)
Create a rolling file message writer.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
int |
separator()
Write an entry separator to the writer.
|
<Message extends PMessage<Message,Field>,Field extends PField> |
write(Message message)
Write a providence message to the writer.
|
<Message extends PMessage<Message,Field>,Field extends PField> |
write(PServiceCall<Message,Field> call)
Write a providence service call to the writer.
|
public RollingFileMessageWriter(@Nonnull File directory, @Nonnull Serializer serializer, @Nonnull String currentName, @Nonnull RollingFileMessageWriter.RollingPolicy rollingPolicy)
directory
- The directory to place the message files into.serializer
- The message serializer to use.currentName
- The name of the current file symbolic link.rollingPolicy
- The rolling policy.public RollingFileMessageWriter(@Nonnull File directory, @Nonnull Serializer serializer, @Nonnull String currentName, @Nonnull RollingFileMessageWriter.RollingPolicy rollingPolicy, @Nullable RollingFileMessageWriter.CleanupPolicy cleanupPolicy)
directory
- The directory to place the message files into.serializer
- The message serializer to use.currentName
- The name of the current file symbolic link.rollingPolicy
- The rolling policy.cleanupPolicy
- Optional cleanup policy.public <Message extends PMessage<Message,Field>,Field extends PField> int write(Message message) throws IOException
MessageWriter
write
in interface MessageWriter
Message
- The message type.Field
- The field type.message
- The message to write.IOException
- If write failed.public <Message extends PMessage<Message,Field>,Field extends PField> int write(PServiceCall<Message,Field> call) throws IOException
MessageWriter
write
in interface MessageWriter
Message
- The message type embedded in the call.Field
- The field type embedded in the call.call
- The service call to write.IOException
- If write failed.public int separator() throws IOException
MessageWriter
separator
in interface MessageWriter
IOException
- If write failed.public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
Copyright © 2015–2017 morimekta.net. All rights reserved.