12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using LibPeer.Protocols.Mx2;
- using LibPeer.Networks;
- namespace LibPeer.Protocols.Aip {
- internal class InstanceInformation {
- public InstanceReference instance_reference { get; private set; }
- public PeerInfo[] connection_methods { get; private set; }
- public InstanceInformation(InstanceReference instance, PeerInfo[] methods) {
- instance_reference = instance;
- connection_methods = methods;
- }
- public void serialise(OutputStream stream) throws IOError, Error {
- var dos = new DataOutputStream(stream);
- dos.byte_order = DataStreamByteOrder.BIG_ENDIAN;
- // Write instance reference
- instance_reference.serialise(dos);
-
- // Write number of connection methods
- dos.put_byte((uint8)connection_methods.length);
- // Write connection methods
- foreach (var method in connection_methods) {
- method.serialise(dos);
- }
- }
- public InstanceInformation.from_stream(InputStream stream) throws IOError, Error {
- var dis = new DataInputStream(stream);
- dis.byte_order = DataStreamByteOrder.BIG_ENDIAN;
- // Read the instance reference
- instance_reference = new InstanceReference.from_stream(dis);
- // Read number of connection methods
- var method_count = dis.read_byte();
- // Read conneciton methods
- connection_methods = new PeerInfo[method_count];
- for (int i = 0; i < method_count; i++) {
- connection_methods[i] = PeerInfo.deserialise(stream);
- }
- }
- }
- }
|