4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen#ifndef SHARED_STORAGE_H
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen#define SHARED_STORAGE_H
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenstruct shared_storage {
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen struct mail_storage storage;
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen union mailbox_list_module_context list_module_ctx;
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen const char *ns_prefix_pattern;
d29e35631075b8c172ce781b85fd1cdaf0a400fdTimo Sirainen const char *location, *unexpanded_location;
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
708efcd8581258763289b95cde119ca9423641d8Timo Sirainen const char *storage_class_name;
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen};
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
f7fe4f81c0887196a1f938d83ae1cdba03cfad85Josef 'Jeff' Sipek#define SHARED_STORAGE(s) container_of(s, struct shared_storage, storage)
f7fe4f81c0887196a1f938d83ae1cdba03cfad85Josef 'Jeff' Sipek
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenstruct mailbox_list *shared_mailbox_list_alloc(void);
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
c4c9be10781e1a16b3b001dc6b0461c4640da101Timo Sirainen/* Returns -1 = error, 0 = user doesn't exist, 1 = ok */
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainenint shared_storage_get_namespace(struct mail_namespace **_ns,
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen const char **_name);
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen#endif