// Path: Redis-Synyed-common/src/main/java/com/wmz7year/synyed/exception/RedisRDBException.java
// public class RedisRDBException extends Exception {
// 	private static final long serialVersionUID = -8089839086790389424L;
// 	private Throwable nestedThrowable = null;
// 
// 	public RedisRDBException() {
// 		super();
// 	}
// 
// 	public RedisRDBException(String msg) {
// 		super(msg);
// 	}
// 
// 	public RedisRDBException(Throwable nestedThrowable) {
// 		super(nestedThrowable);
// 		this.nestedThrowable = nestedThrowable;
// 	}
// 
// 	public RedisRDBException(String msg, Throwable nestedThrowable) {
// 		super(msg, nestedThrowable);
// 		this.nestedThrowable = nestedThrowable;
// 	}
// 
// 	/*
// 	 * @see java.lang.Throwable#printStackTrace()
// 	 */
// 	@Override
// 	public void printStackTrace() {
// 		super.printStackTrace();
// 		if (nestedThrowable != null) {
// 			nestedThrowable.printStackTrace();
// 		}
// 	}
// 
// 	/*
// 	 * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)
// 	 */
// 	@Override
// 	public void printStackTrace(PrintStream ps) {
// 		super.printStackTrace(ps);
// 		if (nestedThrowable != null) {
// 			nestedThrowable.printStackTrace(ps);
// 		}
// 	}
// 
// 	/*
// 	 * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)
// 	 */
// 	@Override
// 	public void printStackTrace(PrintWriter pw) {
// 		super.printStackTrace(pw);
// 		if (nestedThrowable != null) {
// 			nestedThrowable.printStackTrace(pw);
// 		}
// 	}
// }
// 
// Path: Redis-Synyed-common/src/main/java/com/wmz7year/synyed/parser/entry/RedisDB.java
// public class RedisDB {
// 	/**
// 	 * 数据库编号
// 	 */
// 	private int num;
// 	/**
// 	 * rdb中的命令列表
// 	 */
// 	private List<RedisCommand> command = new ArrayList<RedisCommand>();
// 
// 	public RedisDB(int num) {
// 		this.num = num;
// 	}
// 
// 	public int getNum() {
// 		return num;
// 	}
// 
// 	public void setNum(int num) {
// 		this.num = num;
// 	}
// 
// 	/**
// 	 * 添加redis命令的方法<br>
// 	 * 将命令对象添加到命令集合中
// 	 * 
// 	 * @param rdbCommand
// 	 *            redis命令对象
// 	 */
// 	public void addCommand(RedisRDBCommand rdbCommand) {
// 		command.addAll(rdbCommand.getCommands());
// 	}
// 
// 	/**
// 	 * 获取rdb中所有需要同步的命令列表的方法
// 	 * 
// 	 * @return redis命令列表集合
// 	 */
// 	public List<RedisCommand> getCommands() {
// 		return this.command;
// 	}
// 
// }


import java.util.Collection;
import com.wmz7year.synyed.exception.RedisRDBException;
import com.wmz7year.synyed.parser.entry.RedisDB;
package com.wmz7year.synyed.parser;



/**
 * Redis rdb文件解析器<br>
 * 用于首次SYNC到redis时 redis把rdb文件内容发送过来解析成redis命令时使用<br>
 * 每个版本的格式都不同，实现类针对不同的版本进行
 * 
 * @Title: RDBParser.java
 * @Package com.wmz7year.synyed.parser
 * @author jiangwei (ydswcy513@gmail.com)
 * @date 2015年12月14日 下午1:54:22
 * @version V1.0
 */
public interface RDBParser {

	/**
	 * 获取rdb格式版本的方法<br>
	 * rdb的格式版本信息为头内容的9个字节数据REDIS****
	 * 
	 * @return rdb内容版本
	 */
	public String gerVersion();

	/**
	 * 执行解析的方法<br>
	 * 
	 * @param rdbContent
	 *            rdb文件内容
	 * @throws RedisRDBException
	 *             当解析过程中发生错误抛出该异常
	 */
// Path: Redis-Synyed-common/src/main/java/com/wmz7year/synyed/exception/RedisRDBException.java
// public class RedisRDBException extends Exception {
// 	private static final long serialVersionUID = -8089839086790389424L;
// 	private Throwable nestedThrowable = null;
// 
// 	public RedisRDBException() {
// 		super();
// 	}
// 
// 	public RedisRDBException(String msg) {
// 		super(msg);
// 	}
// 
// 	public RedisRDBException(Throwable nestedThrowable) {
// 		super(nestedThrowable);
// 		this.nestedThrowable = nestedThrowable;
// 	}
// 
// 	public RedisRDBException(String msg, Throwable nestedThrowable) {
// 		super(msg, nestedThrowable);
// 		this.nestedThrowable = nestedThrowable;
// 	}
// 
// 	/*
// 	 * @see java.lang.Throwable#printStackTrace()
// 	 */
// 	@Override
// 	public void printStackTrace() {
// 		super.printStackTrace();
// 		if (nestedThrowable != null) {
// 			nestedThrowable.printStackTrace();
// 		}
// 	}
// 
// 	/*
// 	 * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)
// 	 */
// 	@Override
// 	public void printStackTrace(PrintStream ps) {
// 		super.printStackTrace(ps);
// 		if (nestedThrowable != null) {
// 			nestedThrowable.printStackTrace(ps);
// 		}
// 	}
// 
// 	/*
// 	 * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)
// 	 */
// 	@Override
// 	public void printStackTrace(PrintWriter pw) {
// 		super.printStackTrace(pw);
// 		if (nestedThrowable != null) {
// 			nestedThrowable.printStackTrace(pw);
// 		}
// 	}
// }
// 
// Path: Redis-Synyed-common/src/main/java/com/wmz7year/synyed/parser/entry/RedisDB.java
// public class RedisDB {
// 	/**
// 	 * 数据库编号
// 	 */
// 	private int num;
// 	/**
// 	 * rdb中的命令列表
// 	 */
// 	private List<RedisCommand> command = new ArrayList<RedisCommand>();
// 
// 	public RedisDB(int num) {
// 		this.num = num;
// 	}
// 
// 	public int getNum() {
// 		return num;
// 	}
// 
// 	public void setNum(int num) {
// 		this.num = num;
// 	}
// 
// 	/**
// 	 * 添加redis命令的方法<br>
// 	 * 将命令对象添加到命令集合中
// 	 * 
// 	 * @param rdbCommand
// 	 *            redis命令对象
// 	 */
// 	public void addCommand(RedisRDBCommand rdbCommand) {
// 		command.addAll(rdbCommand.getCommands());
// 	}
// 
// 	/**
// 	 * 获取rdb中所有需要同步的命令列表的方法
// 	 * 
// 	 * @return redis命令列表集合
// 	 */
// 	public List<RedisCommand> getCommands() {
// 		return this.command;
// 	}
// 
// }


// Path: Redis-Synyed-common/src/main/java/com/wmz7year/synyed/parser/RDBParser.java
import java.util.Collection;
import com.wmz7year.synyed.exception.RedisRDBException;
import com.wmz7year.synyed.parser.entry.RedisDB;

package com.wmz7year.synyed.parser;



/**
 * Redis rdb文件解析器<br>
 * 用于首次SYNC到redis时 redis把rdb文件内容发送过来解析成redis命令时使用<br>
 * 每个版本的格式都不同，实现类针对不同的版本进行
 * 
 * @Title: RDBParser.java
 * @Package com.wmz7year.synyed.parser
 * @author jiangwei (ydswcy513@gmail.com)
 * @date 2015年12月14日 下午1:54:22
 * @version V1.0
 */
public interface RDBParser {

	/**
	 * 获取rdb格式版本的方法<br>
	 * rdb的格式版本信息为头内容的9个字节数据REDIS****
	 * 
	 * @return rdb内容版本
	 */
	public String gerVersion();

	/**
	 * 执行解析的方法<br>
	 * 
	 * @param rdbContent
	 *            rdb文件内容
	 * @throws RedisRDBException
	 *             当解析过程中发生错误抛出该异常
	 */
	public void parse(byte[] rdbContent) throws RedisRDBException;