--- a/src/proto2/NetworkPacket.cc Tue Nov 18 22:58:50 2008 +0000
+++ b/src/proto2/NetworkPacket.cc Thu Nov 20 19:25:56 2008 +0000
@@ -10,13 +10,13 @@
void NetworkPacket::check_write_size (size_t item_size) {
if (offset + item_size > buf_size)
- throw CL_Error("not enough space to write");
+ throw NetworkPacketError("not enough space to write");
}
void NetworkPacket::check_read_size (size_t item_size) {
if (offset + item_size > data_size)
- throw CL_Error("not enough data to read");
+ throw NetworkPacketError("not enough data to read");
}
template <typename T> T NetworkPacket::read_val (void) {
@@ -47,29 +47,40 @@
data_size += sizeof(T);
}
-uint32_t NetworkPacket::read_uint32 (void) const {
+uint32_t NetworkPacket::read_uint32 (void) {
return ntohl(read_val<uint32_t>());
}
-uint16_t NetworkPacket::read_uint16 (void) const {
+uint16_t NetworkPacket::read_uint16 (void) {
return ntohs(read_val<uint16_t>());
}
-uint8_t NetworkPacket::read_uint8 (void) const {
+uint8_t NetworkPacket::read_uint8 (void) {
return read_val<uint8_t>();
}
-int32_t NetworkPacket::read_int32 (void) const {
+int32_t NetworkPacket::read_int32 (void) {
return ntohl(read_val<int32_t>());
}
-int16_t NetworkPacket::read_int16 (void) const {
+int16_t NetworkPacket::read_int16 (void) {
return ntohs(read_val<int16_t>());
}
-int8_t NetworkPacket::read_int8 (void) const {
+int8_t NetworkPacket::read_int8 (void) {
return read_val<int8_t>();
}
+
+float NetworkPacket::read_float32 (void) {
+ /* XXX */
+}
+
+Vector NetworkPacket::read_vector (void) {
+ float fx = read_float32();
+ float fy = read_float32();
+
+ return Vector(fx, fy);
+}
void NetworkPacket::write_uint32 (uint32_t val) {
write_val<uint32_t>(htonl(val));
@@ -94,8 +105,17 @@
void NetworkPacket::write_int8 (int8_t val) {
write_val<int8_t>(val);
}
+
+void write_float32 (float val) {
+ /* XXX: */
+}
-void write_packet (const NetworkPacket &pkt) {
+void NetworkPacket::write_vector (const Vector &vec) {
+ write_float32(vec.x);
+ write_float32(vec.y);
+}
+
+void NetworkPacket::write_packet (const NetworkPacket &pkt) {
// check buffer size
check_write_size(pkt.get_data_size());
@@ -106,3 +126,4 @@
offset += pkt.get_data_size();
data_size += pkt.get_data_size();
}
+