#include "CredentialsCacheInternal.h" #include "ClassicInterface.h" #include "ClassicProtocol.h" CCIClassicInterface::CCIClassicInterface ( CCIUInt32 inEventID, const AppleEvent* inEvent, AppleEvent* outReply): mEventID (inEventID), mEvent (inEvent), mReply (outReply) { } CCIClassicInterface::~CCIClassicInterface () { } void CCIClassicInterface::AddDiffsToReply ( CCIHandleBuffer& ioBuffer, CCIUInt32 inServerID, CCIUInt32 inSeqNo) { CCIResult err = __CredentialsCacheInternalGetDiffs (inServerID, inSeqNo, ioBuffer.GetHandle ()); if (err != ccNoError) { CCIDebugThrow_ (CCIException (err)); } ioBuffer.UpdateSize (); ioBuffer.SetOffset (GetHandleSize (ioBuffer.GetHandle ())); } void CCIClassicInterface::AddInitialDiffsToReply ( CCIHandleBuffer& ioBuffer, CCIUInt32 inServerID) { CCIResult err = __CredentialsCacheInternalGetInitialDiffs (ioBuffer.GetHandle (), inServerID); if (err != ccNoError) { CCIDebugThrow_ (CCIException (err)); } ioBuffer.UpdateSize (); ioBuffer.SetOffset (GetHandleSize (ioBuffer.GetHandle ())); } void CCIClassicInterface::ExtractMessage () { DescType type; Size size; OSErr err = AEGetParamPtr (mEvent, ccClassic_Key_Message, typeWildCard, &type, NULL, 0, &size); if (err != noErr) { CCIDebugThrow_ (CCIException (ccErrNoMem)); } Handle message = NewHandle (size); if (message == NULL) { CCIDebugThrow_ (CCIException (ccErrNoMem)); } HLock (message); err = AEGetParamPtr (mEvent, ccClassic_Key_Message, typeWildCard, &type, *message, size, &size); if (err != noErr) { CCIDebugThrow_ (CCIException (ccErrNoMem)); } HUnlock (message); mReceiveBuffer.AdoptHandle (message); } void CCIClassicInterface::PrepareReply () { Handle reply = mSendBuffer.GetHandle (); HLock (reply); OSErr err = AEPutParamPtr (mReply, ccClassic_Key_Message, typeWildCard, *reply, GetHandleSize (reply)); HUnlock (reply); } void CCIClassicInterface::CheckServerID ( CCIUInt32 inServerID) { cc_uint32 correct = 0; CCIResult err = __CredentialsCacheInternalCheckServerID (inServerID, &correct); if (err != ccNoError) { CCIDebugThrow_ (CCIException (err)); } if (!correct) { CCIDebugThrow_ (CCIException (ccClassic_Err_YellowServerRestarted)); } }