Beispiel #1
0
	public bool Serialize(InputData data)
	{
		// 기존 데이터를 클리어합니다.
		Clear();
		
		// 각 요소를 차례로 시리얼라이즈합니다.
		bool ret = true;
		ret &= Serialize(data.count);	
		ret &= Serialize(data.flag);

		MouseSerializer mouse = new MouseSerializer();
		
		for (int i = 0; i < data.datum.Length; ++i) {
			mouse.Clear();
			bool ans = mouse.Serialize(data.datum[i]);
			if (ans == false) {
				return false;
			}
			
			byte[] buffer = mouse.GetSerializedData();
			ret &= Serialize(buffer, buffer.Length);
		}
		
		return ret;
	}
Beispiel #2
0
    public bool Serialize(InputData data)
    {
        // 기존 데이터를 클리어합니다.
        Clear();

        // 각 요소를 차례로 시리얼라이즈합니다.
        bool ret = true;

        ret &= Serialize(data.count);
        ret &= Serialize(data.flag);

        MouseSerializer mouse = new MouseSerializer();

        for (int i = 0; i < data.datum.Length; ++i)
        {
            mouse.Clear();
            bool ans = mouse.Serialize(data.datum[i]);
            if (ans == false)
            {
                return(false);
            }

            byte[] buffer = mouse.GetSerializedData();
            ret &= Serialize(buffer, buffer.Length);
        }

        return(ret);
    }
Beispiel #3
0
    public bool Deserialize(byte[] data, ref InputData serialized)
    {
        // 디시리얼라이즈할 데이터를 설정합니다.
        bool ret = SetDeserializedData(data);

        if (ret == false)
        {
            return(false);
        }

        // 데이터 요소별로 디시리얼라이즈합니다.
        ret &= Deserialize(ref serialized.count);
        ret &= Deserialize(ref serialized.flag);

        // 디시리얼라이즈 후의 버퍼 크기를 구합니다.
        MouseSerializer mouse = new MouseSerializer();
        MouseData       md    = new MouseData();

        mouse.Serialize(md);
        byte[] buf  = mouse.GetSerializedData();
        int    size = buf.Length;

        serialized.datum = new MouseData[serialized.count];
        for (int i = 0; i < serialized.count; ++i)
        {
            serialized.datum[i] = new MouseData();
        }

        for (int i = 0; i < serialized.count; ++i)
        {
            byte[] buffer = new byte[size];

            // mouseData의11프레임분의 데이터를 추출합니다.
            bool ans = Deserialize(ref buffer, size);
            if (ans == false)
            {
                return(false);
            }

            ret &= mouse.Deserialize(buffer, ref md);
            if (ret == false)
            {
                return(false);
            }

            serialized.datum[i] = md;
        }

        return(ret);
    }
Beispiel #4
0
	public bool Deserialize(byte[] data, ref InputData serialized)
	{
		// 디시리얼라이즈할 데이터를 설정합니다.
		bool ret = SetDeserializedData(data);
		if (ret == false) {
			return false;
		}
		
		// 데이터 요소별로 디시리얼라이즈합니다.
		ret &= Deserialize(ref serialized.count);
		ret &= Deserialize(ref serialized.flag);

		// 디시리얼라이즈 후의 버퍼 크기를 구합니다.
		MouseSerializer mouse = new MouseSerializer();
		MouseData md = new MouseData();
		mouse.Serialize(md);
		byte[] buf= mouse.GetSerializedData();
		int size = buf.Length;
		
		serialized.datum = new MouseData[serialized.count];
		for (int i = 0; i < serialized.count; ++i) {
			serialized.datum[i] = new MouseData();
		}
		
		for (int i = 0; i < serialized.count; ++i) {
			byte[] buffer = new byte[size];
			
			// mouseData의11프레임분의 데이터를 추출합니다.
			bool ans = Deserialize(ref buffer, size);
			if (ans == false) {
				return false;
			}

			ret &= mouse.Deserialize(buffer, ref md);
			if (ret == false) {
				return false;
			}
			
			serialized.datum[i] = md;
		}
		
		return ret;
	}