anchor.diff:      ok ->
         receive
           {worker_answer, MessageId, {ok, DaoAns}} -> {ok, DaoAns};
  +        {worker_answer, MessageId, {error, file_not_found}} -> {error, file_not_found};
           Ans2 ->
             lager:error([{mod, ?MODULE}], "Error: wrong dao answer for: " ++ LogMessage ++ ", file: ~s, answer: ~p", [File, Ans2]),
             {error, "Error: wrong dao answer for: " ++ LogMessage}
  
positive.code: -include("communication_protocol_pb.hrl").
  
  -define(LOCATION_VALIDITY, 60*15).
  
  %% TODO zrobić okresowe sprawdzanie drskryptorów i usuwanie przestarzałych z bazy
  %% potrzebna w dao funkcja listująca wszystkie deskryptory
  
  %% TODO dodać mechanizm cachowania uuidów, które mogą być wielokrotnie użyte w krótkim czasie
  
  %% ====================================================================
  %% API functions
  
negative.code: 
  create_children_list([File | Rest], Ans) ->
    FileDesc = File#veil_document.record,
    create_children_list(Rest, [FileDesc#file.name | Ans]).
  
  get_file(ProtocolVersion, File, FuseID) ->
    Pid = self(),
    Ans = gen_server:call(?Dispatcher_Name, {dao, ProtocolVersion, Pid, 1, {vfs, get_file, [File]}}),
    wait_for_dao_ans(Ans, File, 1, "get_file").