123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package com.dianping.cat.message.internal;
- import io.netty.buffer.ByteBuf;
- import io.netty.buffer.ByteBufAllocator;
- import java.nio.charset.Charset;
- import com.dianping.cat.message.Message;
- import com.dianping.cat.message.spi.codec.PlainTextMessageCodec;
- public abstract class AbstractMessage implements Message {
- private String m_type;
- private String m_name;
- private String m_status = "unset";
- private long m_timestampInMillis;
- private CharSequence m_data;
- private boolean m_completed;
- public AbstractMessage(String type, String name) {
- m_type = String.valueOf(type);
- m_name = String.valueOf(name);
- m_timestampInMillis = MilliSecondTimer.currentTimeMillis();
- }
- @Override
- public void addData(String keyValuePairs) {
- if (m_data == null) {
- m_data = keyValuePairs;
- } else if (m_data instanceof StringBuilder) {
- ((StringBuilder) m_data).append('&').append(keyValuePairs);
- } else {
- StringBuilder sb = new StringBuilder(m_data.length() + keyValuePairs.length() + 16);
- sb.append(m_data).append('&');
- sb.append(keyValuePairs);
- m_data = sb;
- }
- }
- @Override
- public void addData(String key, Object value) {
- if (m_data instanceof StringBuilder) {
- ((StringBuilder) m_data).append('&').append(key).append('=').append(value);
- } else {
- String str = String.valueOf(value);
- int old = m_data == null ? 0 : m_data.length();
- StringBuilder sb = new StringBuilder(old + key.length() + str.length() + 16);
- if (m_data != null) {
- sb.append(m_data).append('&');
- }
- sb.append(key).append('=').append(str);
- m_data = sb;
- }
- }
- @Override
- public CharSequence getData() {
- if (m_data == null) {
- return "";
- } else {
- return m_data;
- }
- }
- @Override
- public String getName() {
- return m_name;
- }
- @Override
- public String getStatus() {
- return m_status;
- }
- @Override
- public long getTimestamp() {
- return m_timestampInMillis;
- }
- @Override
- public String getType() {
- return m_type;
- }
- @Override
- public boolean isCompleted() {
- return m_completed;
- }
- @Override
- public boolean isSuccess() {
- return Message.SUCCESS.equals(m_status);
- }
- public void setCompleted(boolean completed) {
- m_completed = completed;
- }
- public void setName(String name) {
- m_name = name;
- }
- @Override
- public void setStatus(String status) {
- m_status = status;
- }
- @Override
- public void setStatus(Throwable e) {
- m_status = e.getClass().getName();
- }
- public void setTimestamp(long timestamp) {
- m_timestampInMillis = timestamp;
- }
- public void setType(String type) {
- m_type = type;
- }
- @Override
- public String toString() {
- PlainTextMessageCodec codec = new PlainTextMessageCodec();
- ByteBuf buf = ByteBufAllocator.DEFAULT.buffer();
- codec.encodeMessage(this, buf);
- codec.reset();
- return buf.toString(Charset.forName("utf-8"));
- }
- }
|