
    }
    bool operator!=(const RoomInput& o) const { return!(*this == o); }
};

struct RoomData {
    const static int ROOM_FORMAT_VERSION;

    std::vector<uint8_t> data;

    std::vector<uint8_t> exportSnesData() const;
};

std::shared_ptr<const RoomData>
compileRoom(const RoomInput& input, const ExternalFileList<RoomInput>& roomsList,
            const Resources::CompiledScenesData& compiledScenes, const Entity::CompiledEntityRomData& entityRomData, const RoomSettings& roomSettings,
            const Scripting::GameStateData& gameStateData, const Scripting::BytecodeMapping& bytecodeData,
            const Project::DataStore<MetaTiles::MetaTileTilesetData>& metaTilesData,
            ErrorList& err);
}
Oh Readers.
I wish that I had a picture to compliment the festivities of the past weekend, but I don't. We had family over for an early Christmas get together. My mom's side of the family came and we had dinner and exchanged gifts. We had the pleasure of my GREAT, great grandmothers company. She will be 90 in 3 months. She is still going strong in mind and body. However, she showed her age when kind of forgetting exactly who Andy was and kind of sort of hit on him. Its true and its serious, but can I be jealous of my great, great grandmother? She is pretty darn sassy.
This is how it went.
GG(Great Grandma) "Oh are you one of those Lovelady boys?"
Hubs "Yes mam, My granddaddy is your age"
GG "Oh, well, my you are handsome! I knew you had to be a Lovelady boy being as good-lookin as you are"
Hubs "Well, thank you..."
GG "Well have you ever seen my house?"
Hubs " Yes mam, I have seen the outside of it"
GG "Well, you'll have to come see the inside..." (Really! What does that mean??)
Hubs "Maybe Kirbey will have to bring me by there some time"
GG " Well, you know I need a ride home tonight..."
and one more clip of their dialogue..
GG "Did you know I had two sons?"
Hubs "Yes mam I did"
GG "Did you know they were nine years apart?"
Hubs "No mam, I sure didn't know that"
GG "Well, people say I must have been busy, but I don't think I was busy enough!"
Thats all I've got for you today.
Have a LOVELY Christmas!
2 comments:
Grandparents say the funniest things! :)
HAHAHA!! That is great stuff!!Around 15,000 people leave the UK Armed Forces every year,[1] having developed highly specialist and sought-after skills during their Forces career. Yet, after serving their country, many find it hard to recognise what could attract them to an employer now they are a civilian.
RFEA – The Forces Employment Charity, has carried out new research[2] which shows veterans are often too critical of themselves – lacking confidence in the skills their military experience has equipped them with and underestimating their potential as a result.
This can lead to some individuals instantly disqualifying themselves from employment opportunities in which they could well have thrived.
Meanwhile, a third (33%) of those involved in making hiring decisions said that they would value additional information regarding the transferable skills and attributes that veterans can bring to the non-military workforce. Promisingly, 1 in 4 (25%) also stated that they would like more information on how hiring veterans can make good business sense and improve diversity in the workforce.
[2] Research carried out by OnePoll from 21.10.2021 – 28.10.21. It surveyed 1000 UK employed adults who have input into hiring decisions in their organisation, plus 200 UK veterans who are either employed or seeking employment.<commit_before>/**
 * $Revision: $
 * $Date: $
 *
 * Copyright (C) 2007-2009 Jive Software. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.jivesoftware.openfire.session;

import org.dom4j.Element;
import org.dom4j.tree.DefaultElement;
import org.jivesoftware.openfire.SessionManager;
import org.jivesoftware.openfire.privacy.PrivacyList;
import org.jivesoftware.openfire.privacy.PrivacyListManager;
import org.jivesoftware.openfire.session.ClientSession;
import org.jivesoftware.openfire.session.ClientSessionInfo;
import org.jivesoftware.openfire.user.UserNotFoundException;
import org.jivesoftware.util.cache.Cache;
import org.jivesoftware.util.cache.ClusterTask;
import org.jivesoftware.util.cache.ExternalizableUtil;
import org.xmpp.packet.JID;
import org.xmpp.packet.Packet;
import org.xmpp.packet.Presence;

import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;

/**
 * Surrogate for client sessions hosted in some remote cluster node.
 *
 * @author <NAME>
 */
public class RemoteClientSession extends RemoteSession implements ClientSession {

    private long initialized = -1;

    public RemoteClientSession(byte[] nodeID, JID address) {
        super(nodeID, address);
    }

    public PrivacyList getActiveList() {
        Cache<String, ClientSessionInfo> cache = SessionManager.getInstance().getSessionInfoCache();
        ClientSessionInfo sessionInfo = cache.get(getAddress().toString());
        if (sessionInfo!= null && sessionInfo.getActiveList()!= null) {
            return PrivacyListManager.getInstance().getPrivacyList(address.getNode(), sessionInfo.getActiveList());
        }
        return null;
    }

    public void setActiveList(PrivacyList activeList) {
        // Highly unlikely that a list is change to a remote session but still possible
        doClusterTask(new SetPrivacyListTask(address, true, activeList));
    }

    public PrivacyList getDefaultList() {
        Cache<String, ClientSessionInfo> cache = SessionManager.getInstance().getSessionInfoCache();
        ClientSessionInfo sessionInfo = cache.get(getAddress().toString());
        if (sessionInfo!= null && sessionInfo.getDefaultList()!= null) {
            return PrivacyListManager.getInstance().getPrivacyList(address.getNode(), sessionInfo.getDefaultList());
        }
        return null;
    }

    public void setDefaultList(PrivacyList defaultList) {
        // Highly unlikely that a list is change to a remote session but still possible
        doClusterTask(new SetPrivacyListTask(address, false, defaultList));
    }

    public String getUsername() throws UserNotFoundException {
        return address.getNode();
    }

    public boolean isAnonymousUser() {
        return SessionManager.getInstance().isAnonymousRoute(getAddress());
    }

    public boolean isInitialized() {
        if (initialized == -1) {
            Presence presence = getPresence();
            if (presence!= null && presence.isAvailable()) {
                // Optimization to avoid making a remote call
                initialized = 1;
            }
            else {
                ClusterTask task = getRemoteSessionTask(RemoteSessionTask.Operation.isInitialized);
                initialized = (Boolean) doSynchronousClusterTask(task)? 1 : 0;
            }
        }
        return initialized == 1;
    }

    public void setInitialized(boolean isInit) {
        doClusterTask(new SetInitializedTask(address, isInit));
    }

    public boolean canFloodOfflineMessages() {
        // Code copied from LocalClientSession to avoid remote calls
        if(isOfflineFloodStopped()) {
            return false;
        }
        String username = getAddress().getNode();
        for (ClientSession session : SessionManager.getInstance().getSessions(username)) {
            if (session.isOfflineFloodStopped()) {
                return false;
            }
        }
