Saturday, 15 May 2010

c# - Properties and onchange events. Need to find a proper design pattern -



c# - Properties and onchange events. Need to find a proper design pattern -

so made socket communication library. , part of iconnection

public enum connectionstate { notconnected, connecting, connected, authenticated, disconnecting, disconnected } public interface iconnection { connectionstate state { get; } event action connected; event action disconnected; event action authenticated; event action authenticationfailed; // 2 methods core of question void onauthenticated(); void onauthenticationfailed(); bool send(byte[] data); void connect(); void close(); }

of course of study iconnection provides info connection state , able fire connected/disconnected events holds socket. there no doubt.

now, users of iconnection know when becomes authenticated. example, server might hear events, , 1 time connection authenticated - send client's initial configuration data. or client might hear events , decide start communication or retry authentication process.

but. problem is, authentication process exists in protocol layer. iconnection has no thought such layer exists. protocol layer uses iconnection send serialized byte[] message other party.

so, iconnection able alter it's state , inform subscribers on auth process had implement 2 methods

void onauthenticated(); void onauthenticationfailed();

which are, called protocol layer authentication process code.

i sense i'm doing wrong here. , since work alone, thoughts much appreciated.

i ended moving core part of protocol authentication, keep-alive service , basic message types used everywhere communication assembly.

so iconnection auth process aware of core protocol.

c# architecture

No comments:

Post a Comment