src/proto2/NetworkPacket.cc
branchno-netsession
changeset 36 785d220fc6b7
parent 33 e53f09b378f4
child 37 ed2957490bbf
--- 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();
 }
+