MIF 3.0.1 README
Retired DISLab
변경된 점
- BlackboardMonitor에 post함수가 추가되었습니다.
- 기존 update 함수와 사용방식은 동일합니다.
- post 함수의 경우 해당 필드가 존재하지 않더라도 subscribe 한 어플리케이션에 알림을 보냅니다.
- 필드가 존재할 경우 블랙보드에 값을 기록합니다. 그 후 update와는 다르게 이전 값과 비교해서 변함이 없더라도 알림을 보냅니다.
- BlackboardMonitor에 exists함수가 추가되었습니다.
- 해당 오브젝트와 필드가 만들어져 있는지 확인합니다. true일 경우 존재하고, false일경우 존재하지 않습니다.
- Exception 처리방식을 변경했습니다.
- 이제 BlackboardMonitor, AgentMonitor의 함수를 사용하실 때 기존과 같이 RemoteException에 대해 try-catch를 써줄 필요가 없습니다.(기존 써두신 것들은 지워주셔야 합니다.)
- 블랙보드와 연결되지 않은상태라면 BlackboardNotConnectedException과 함께 어플리케이션이 종료됩니다.
- 해당 필드가 존재하지 않는 상태에서 update, get 등을 수행할 경우 FieldNotFoundException과 함께 어플리케이션이 종료됩니다.
- 이 변경점들 때문에 소스코드를 수정해야 합니다.
- 기존 Card Library를 사용한 어플리케이션의 requestCard함수가 callAgent로 바뀌었습니다.
- requestCode를 넣을 수 있도록 변경되었습니다. 요청에 의해 추가된 부분으로 requestCode를 넣어 보낼 경우 결과또한 같은 requestCode로 보내어 집니다.
- requestCode를 사용하지 않으신다면 수정하지 않아도 됩니다.
- 기존 Card Library의 onReceiveCard가 onAgentReply로 변경되었습니다.
- Card Library를 사용하신다면 반드시 변경해줘야 합니다.
- requestCode가 필요없으시면서 변경을 편하게 하시려면 onAgentReply함수 안에 'onReceiveCard(agent, agentData);' 와 같이 바로 기존의 함수로 연결하시면 되겠습니다. 두 번째 인자가 requestCode 입니다.
- 기존 Agent의 onRequestCard의 마지막에 Blackboard.getInstance().sendResult(...)로 카드프로그램에 결과를 보냈었던 것이 단순히 sendResult(..)로 변경되었습니다. 이에 따라 보내는 측에서는 requestCode를 생각하지 않아도자동으로 발송됩니다.
- 코드를 수정해 줘야 합니다.
- 기존 한 어플리케이션에서는 예를들어 subscribe를 3번 부를 경우 unsubscribe도 3번 해야 해제가 되었습니다. 현재는 같은 값에 대한 subscribe는 한 번의 unsubscribe로 바로 해제 가능합니다.