Example #1
0
File: delete.c Project: unizeto/bmd
long DeleteDocFromDatabase(	void *hDB,
				bmdDatagram_t *bmdJSRequest,
				char *CryptoObjectNr,
				char *location_id,
				server_request_data_t *req)
{
	/************************/
	/* walidacja parametrow */
	/************************/
	if (hDB==NULL)			{	BMD_FOK(BMD_ERR_PARAM1);	}
	if (CryptoObjectNr==NULL)	{	BMD_FOK(BMD_ERR_PARAM2);	}

	/*****************************/
	/* usuwaie danych z archiwum */
	/*****************************/
	DeleteTimestamps(hDB, CryptoObjectNr, location_id);
	DeleteDVCS(hDB, CryptoObjectNr, location_id);
	DeleteSignatures(hDB, CryptoObjectNr, location_id);
	DeleteCorespondingDocs(hDB, bmdJSRequest, CryptoObjectNr, location_id,req);
	DeleteLinks(hDB, CryptoObjectNr, req);

	if (_GLOBAL_bmd_configuration->enable_delete_history==0)
	{
		if (_GLOBAL_bmd_configuration->messaging_plugin_conf.bmd_messaging_plugin_delete_action_register)
		{
			_GLOBAL_bmd_configuration->messaging_plugin_conf.bmd_messaging_plugin_delete_action_register(hDB, CryptoObjectNr, location_id);
		}
	}

	BMD_FOK(DeleteCryptoObjects(hDB, bmdJSRequest, CryptoObjectNr, location_id,req));

	return BMD_OK;
}
void
SVNListBase::RefreshContent()
{
	if (itsProcess != NULL)
		{
		JProcess* p = itsProcess;
		itsProcess  = NULL;

		p->Kill();
		delete p;

		DeleteLinks();
		}
	else
		{
		itsSavedSelection->CleanOut();
		JTableSelection& s = GetTableSelection();
		JTableSelectionIterator iter(&s);
		JPoint cell;
		while (iter.Next(&cell))
			{
			const JString* line = itsLineList->NthElement(cell.y);
			itsSavedSelection->InsertSorted(new JString(ExtractRelativePath(*line)));
			}
		}

	itsDisplayState = SaveDisplayState();
	itsLineList->CleanOut();

	int outFD, errFD;
	JError err = JNoError();
	if ((GetDirector())->HasPath())
		{
		err = JProcess::Create(&itsProcess, GetPath(), itsCmd,
							   kJIgnoreConnection, NULL,
							   kJCreatePipe, &outFD,
							   kJCreatePipe, &errFD);
		}
	else	// working with URL
		{
		err = JProcess::Create(&itsProcess, itsCmd,
							   kJIgnoreConnection, NULL,
							   kJCreatePipe, &outFD,
							   kJCreatePipe, &errFD);
		}

	if (err.OK())
		{
		itsProcess->ShouldDeleteWhenFinished();
		ListenTo(itsProcess);
		(GetDirector())->RegisterActionProcess(this, itsProcess, itsRefreshRepoFlag,
											   itsRefreshStatusFlag, itsReloadOpenFilesFlag);

		SetConnection(outFD, errFD);
		}
	else
		{
		err.ReportIfError();
		}
}
SVNListBase::~SVNListBase()
{
	if (itsProcess != NULL)
		{
		StopListening(itsProcess);
		itsProcess->Kill();
		}
	delete itsProcess;

	DeleteLinks();

	JXDeleteObjectTask<JBroadcaster>::Delete(itsLineList);
	delete itsErrorList;
	delete itsSavedSelection;
}
void
SVNListBase::ReceiveGoingAway
	(
	JBroadcaster* sender
	)
{
	if (sender == itsProcess)
		{
		itsProcess = NULL;
		DeleteLinks();

		DisplayErrors();
		if (itsDisplayState.vMax > 0)
			{
			RestoreDisplayState(itsDisplayState);
			}
		}
	else
		{
		JXStringList::ReceiveGoingAway(sender);
		}
}