#ifndef DBOX_FOLDER_H

#define DBOX_FOLDER_H

#define EXTERNLEN 4096

#include <profile.h>
#include <userdb.h>

class folderpt:public pt
 {
 public:
  virtual void setfilename();
  virtual bool add();
  virtual bool del();

  folderpt():pt() { }
  folderpt(const char *_name):pt(_name) { }
 };

bool zcfoldercharisok(char ch);

bool mailfolderalias(std::string &folder_owner, std::string &subfolder);
bool get_subfolder(const std::string &folder_owner, 
                   const std::string &mailbox_name,
                   std::string &subfolder);
                  
struct folder_grantst
 {
 public:
  bool del, lookup, read, write, keepseen,
       insert, create, administer;
  void clear();
 };
                  
void get_folder_grants(const std::string &folder_owner,
                       const std::string &subfolder,
                       userpt &who_up, grouppt &who_gp,
                       folder_grantst &grants);

bool check_reserved(const char *name);
void makeexternfilename(std::string &filename,
                        const std::string &hint,
                        const std::string &directory);
 
#endif


syntax highlighted by Code2HTML, v. 0.9.1