OTAgreement::OTAgreement(const OTIdentifier & SERVER_ID,			const OTIdentifier & ASSET_ID,
						 const OTIdentifier & SENDER_ACCT_ID,		const OTIdentifier & SENDER_USER_ID,
						 const OTIdentifier & RECIPIENT_ACCT_ID,	const OTIdentifier & RECIPIENT_USER_ID) :
			OTCronItem(SERVER_ID, ASSET_ID, SENDER_ACCT_ID, SENDER_USER_ID)
{
	InitAgreement();
	
	SetRecipientAcctID(RECIPIENT_ACCT_ID);
	SetRecipientUserID(RECIPIENT_USER_ID);
}
// the framework will call this at the right time.
//
void OTAgreement::Release()
{
    Release_Agreement();
    
    // -----------------------
    
	ot_super::Release(); // since I've overridden the base class (OTCronItem), so I call it now...
	
    // -----------------------

	// Then I call this to re-initialize everything
	InitAgreement();
}
// the framework will call this at the right time.
void OTAgreement::Release()
{
	// If there were any dynamically allocated objects, clean them up here.
	m_RECIPIENT_ACCT_ID.Release();	
	m_RECIPIENT_USER_ID.Release();
	
	m_strConsideration.Release();
	
	OTCronItem::Release(); // since I've overridden the base class, I call it now...
	
	// Then I call this to re-initialize everything
	InitAgreement();
}
OTAgreement::OTAgreement(const OTIdentifier & SERVER_ID, const OTIdentifier & ASSET_ID) :
			OTCronItem(SERVER_ID, ASSET_ID)
{
	InitAgreement();
}
OTAgreement::OTAgreement() : OTCronItem()
{
	InitAgreement();
}
OTAgreement::OTAgreement(const OTIdentifier & SERVER_ID, const OTIdentifier & ASSET_ID) :
			ot_super(SERVER_ID, ASSET_ID)
{
	InitAgreement();
}
OTAgreement::OTAgreement() : ot_super()
{
	InitAgreement();
}