powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Автоматический откат действий
9 сообщений из 34, страница 2 из 2
Автоматический откат действий
    #39753022
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blonduserCerebrum, В данном варианте в случае ошибки просто убиваешь папку со всем содержимым.а заодно домен грохаешь и дропаешь БД ))))
Cerebrumя для примера привел, чтобы народу мозг не забивать всякой работой с доменом и прочими БД
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753028
blonduser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychblonduserCerebrum, В данном варианте в случае ошибки просто убиваешь папку со всем содержимым.а заодно домен грохаешь и дропаешь БД ))))

Бессонные ночи админа плохо отразятся на авторе такого кода.
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753029
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumпробовал по всякому
Ну так же не пробовал )))
Код: plaintext
1.
operator wchar_t*() const {	return 	m_pTp;	}
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753031
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так:
Код: plaintext
1.
operator wchar_t*() && {	return 	m_pTp;	}
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753038
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще проблема в том что FuncCaller не принимает значения, а только rv-ссылки
Поэтому это не работает:
Код: plaintext
1.
FuncCaller<BOOL (__stdcall *)(LPCWSTR), TypeWrapper> fc(&DeleteFile, value);
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753085
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какое-то буйство энтерпрайз-макак в этом ITT-треде.
class Action::Invoke (хорошо хоть, что не IAction или class Ation : public IInvokable), обёртки для обёрток для строк...
UndoActions
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
class UndoActions {
	bool commited = false;
	std::vector<std::function<void()>> actions;

public:
	UndoActions(const UndoActions&) = delete;
	UndoActions(UndoActions&&)      = delete;
	// то же для оператора=
	~UndoActions()
	{
		if (commited)
			return;
		
		for (auto it = actions.rbegin(); it != actions.rend(); ++it)
			(*it)();
	}
	void Commit()
	{
		commited = true;
	}
	template<typename F>
	void Add(F&& f)
	{
		actions.emplace_back(std::forward<F>(f));
	}
};


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
BOOL test(void)
{
	UndoActions undo;

	std::path sDirPath = "dir_path";
	if (CreateDirectory(sDirPath) == FALSE)
		return FALSE;
	undo.Add([=] { RemoveDirectory(sDirPath); });
	
	std::path sFilePath = sDirPath / "filename.txt";
	if (CreateFile(sFilePath.c_str()) == FALSE)
		return FALSE;
	undo.Add([=] { DeleteFile(sFilePath.c_str()); });
	
	// ...
	
	undo.Commit();
	return TRUE;
}
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753157
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guest,

Вот, теперь мы знаем кто на работе бездельничает и ему не лень читать простыни исходников в вопросах ))
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753161
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskya.guest,

Вот, теперь мы знаем кто на работе бездельничает и ему не лень читать простыни исходников в вопросах ))
да не оскудеет форум ими!
...
Рейтинг: 0 / 0
Автоматический откат действий
    #39753174
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyВот, теперь мы знаем кто на работе бездельничает и ему не лень читать простыни исходников в вопросах )) 21773331 : "вчера, 20:24"
Не проецируй, я сверхурочно в страхе за рабочее место не работаю.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Автоматический откат действий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]