github.com/cs3org/reva/v2@v2.27.7/pkg/siteacc/data/storage.go (about) 1 // Copyright 2018-2020 CERN 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this filePath except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // 15 // In applying this license, CERN does not waive the privileges and immunities 16 // granted to it by virtue of its status as an Intergovernmental Organization 17 // or submit itself to any jurisdiction. 18 19 package data 20 21 // Storage defines the interface for sites and accounts storages. 22 type Storage interface { 23 // ReadSites reads all stored sites into the given data object. 24 ReadSites() (*Sites, error) 25 // WriteSites writes all stored sites from the given data object. 26 WriteSites(sites *Sites) error 27 28 // SiteAdded is called when a site has been added. 29 SiteAdded(site *Site) 30 // SiteUpdated is called when a site has been updated. 31 SiteUpdated(site *Site) 32 // SiteRemoved is called when a site has been removed. 33 SiteRemoved(site *Site) 34 35 // ReadAccounts reads all stored accounts into the given data object. 36 ReadAccounts() (*Accounts, error) 37 // WriteAccounts writes all stored accounts from the given data object. 38 WriteAccounts(accounts *Accounts) error 39 40 // AccountAdded is called when an account has been added. 41 AccountAdded(account *Account) 42 // AccountUpdated is called when an account has been updated. 43 AccountUpdated(account *Account) 44 // AccountRemoved is called when an account has been removed. 45 AccountRemoved(account *Account) 46 }